diff --git a/module/group/config.php b/module/group/config.php
index 4c4c3f94d4..7e673df7fd 100644
--- a/module/group/config.php
+++ b/module/group/config.php
@@ -44,3 +44,5 @@ $config->group->priv->search['params']['dependPrivs'] = array('operator' => '
$config->group->priv->search['params']['desc'] = array('operator' => 'include', 'control' => 'input', 'values' => '');
$config->group->hiddenPriv = array('system-dashboard', 'store-browse', 'store-appView', 'space-getStoreAppInfo', 'system-dblist', 'system-configdomain', 'system-ossview', 'instance-ajaxStart', 'instance-ajaxStop', 'instance-upgrade');
+
+include 'packagemanager.php';
diff --git a/module/group/control.php b/module/group/control.php
index 3d31382188..865f8934a1 100644
--- a/module/group/control.php
+++ b/module/group/control.php
@@ -191,28 +191,174 @@ class group extends control
}
/**
- * Manage privleges of a group.
+ * Manage priv by package or group.
*
- * @param string $type byPackage|byGroup|byModule
- * @param int $param
- * @param string $menu
+ * @param int $groupID
+ * @param string $nav
* @param string $version
* @access public
* @return void
*/
- public function managePriv($type = 'byPackage', $param = 0, $menu = '', $version = '')
+ protected function managePrivByGroup($groupID = 0, $nav = '', $version = '')
+ {
+ $this->lang->custom->common = $this->lang->group->config;
+ if(($this->config->edition == 'max' or $this->config->edition == 'ipd') and $this->config->vision == 'rnd' and isset($this->lang->baseline)) $this->lang->baseline->common = $this->lang->group->docTemplate;
+
+ $this->group->sortResource();
+ $group = $this->group->getById($groupID);
+ $groupPrivs = $this->group->getPrivs($groupID);
+ $versionPrivs = $this->group->getPrivsAfterVersion($version);
+
+ /* Subsets . */
+ $subsets = array();
+ foreach($this->config->group->subset as $subsetName => $subset)
+ {
+ $subset->code = $subsetName;
+ $subset->allCount = 0;
+ $subset->selectCount = 0;
+
+ $subsets[$subset->code] = $subset;
+ }
+
+ $selectPrivs = $this->group->getPrivListByGroup($groupID);
+ $allPrivList = $this->group->getPrivListByNav($nav, $version);
+
+ $selectedPrivList = array();
+ $packages = array();
+
+ foreach($allPrivList as $privCode => $priv)
+ {
+ $subsetCode = $priv->subset;
+ $packageCode = $priv->package;
+ if(!isset($packages[$subsetCode])) $packages[$subsetCode] = array();
+
+ if(!isset($packages[$subsetCode][$packageCode]))
+ {
+ $package = new stdclass();
+ $package->allCount = 0;
+ $package->selectCount = 0;
+ $package->subset = zget($packageData, 'subset', 'other');
+ $package->privs = array();
+
+ $packages[$subsetCode][$packageCode] = $package;
+ }
+
+ $packages[$subsetCode][$packageCode]->privs[$privCode] = $priv;
+
+ $packages[$subsetCode][$packageCode]->allCount ++;
+ $subsets[$subsetCode]->allCount ++;
+
+ if(isset($selectPrivs[$privCode]))
+ {
+ $packages[$subsetCode][$packageCode]->selectCount ++;
+ $subsets[$subsetCode]->selectCount ++;
+ $selectedPrivList[] = $privCode;
+ }
+ }
+
+ $allPrivList = array_keys($allPrivList);
+ $relatedPrivData = $this->group->getRelatedPrivs($allPrivList, $selectedPrivList);
+
+ $this->view->title = $this->lang->company->common . $this->lang->colon . $group->name . $this->lang->colon . $this->lang->group->managePriv;
+ $this->view->position[] = $group->name;
+ $this->view->position[] = $this->lang->group->managePriv;
+
+ $this->view->allPrivList = $allPrivList;
+ $this->view->selectedPrivList = $selectedPrivList;
+ $this->view->relatedPrivData = $relatedPrivData;
+
+ $this->view->group = $group;
+ $this->view->groupPrivs = $groupPrivs;
+ $this->view->groupID = $groupID;
+ $this->view->nav = $nav;
+ $this->view->version = $version;
+ $this->view->subsets = $subsets;
+ $this->view->packages = $packages;
+ }
+
+ /**
+ * Manage priv by module.
+ *
+ * @access public
+ * @return void
+ */
+ protected function managePrivByModule()
+ {
+ $subsets = array();
+ $packages = array();
+ $privs = array();
+
+ /* Subsets in package. */
+ foreach($this->config->group->package as $packageCode => $packageData)
+ {
+ foreach($packageData->privs as $privCode => $priv)
+ {
+ list($moduleName, $methodName) = explode('-', $privCode);
+
+ if(strpos(',' . $priv['edition'] . ',', ',' . $this->config->edition . ',') === false) continue;
+ if(strpos(',' . $priv['vision'] . ',', ',' . $this->config->vision . ',') === false) continue;
+
+ /* Remove privs unused in the edition. */
+ if(!isset($this->lang->resource->$moduleName) || !isset($this->lang->resource->$moduleName->$methodName)) continue;
+
+ $subset = $packageData->subset;
+ if(!isset($subsets[$subset]))
+ {
+ $subsets[$subset] = $this->lang->$subset->common;
+ $packages[$subset] = array();
+ }
+
+ $packages[$subset][$packageCode] = isset($this->lang->group->package->$packageCode) ? $this->lang->group->package->$packageCode : $packageCode;
+
+ $privs[$privCode] = $privCode;
+ }
+ }
+
+ /* Subsets in resource but not in package. */
+ $this->group->sortResource();
+ foreach($this->lang->resource as $module => $methodList)
+ {
+ foreach($methodList as $method => $methodLang)
+ {
+ if(isset($privs["$module-$method"])) continue;
+
+ if(!isset($subsets[$module])) $subsets[$module] = isset($this->lang->$module) && isset($this->lang->$module->common) ? $this->lang->$module->common : $module;
+ $packages[$subset]['other'] = $this->lang->group->other;
+ }
+ }
+
+ $this->view->title = $this->lang->company->common . $this->lang->colon . $this->lang->group->managePriv;
+ $this->view->position[] = $this->lang->group->managePriv;
+
+ $this->view->groups = $this->group->getPairs();
+ $this->view->subsets = $subsets;
+ $this->view->packages = $packages;
+ $this->view->privs = $this->group->getPrivByParents(key($subsets));
+ }
+
+ /**
+ * Manage privleges of a group.
+ *
+ * @param string $type byPackage|byGroup|byModule
+ * @param int $param
+ * @param string $nav
+ * @param string $version
+ * @access public
+ * @return void
+ */
+ public function managePriv($type = 'byPackage', $param = 0, $nav = '', $version = '')
{
if($type == 'byGroup' or $type == 'byPackage') $groupID = $param;
$this->view->type = $type;
foreach($this->lang->resource as $moduleName => $action)
{
- if($this->group->checkMenuModule($menu, $moduleName) or ($type != 'byGroup' and $type != 'byPackage')) $this->app->loadLang($moduleName);
+ if($this->group->checkNavModule($nav, $moduleName) || ($type != 'byGroup' && $type != 'byPackage')) $this->app->loadLang($moduleName);
}
if(!empty($_POST))
{
- if($type == 'byGroup' or $type == 'byPackage') $result = $this->group->updatePrivByGroup($groupID, $menu, $version);
+ if($type == 'byGroup' || $type == 'byPackage') $result = $this->group->updatePrivByGroup($groupID, $nav, $version);
if($type == 'byModule') $result = $this->group->updatePrivByModule();
if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError()));
@@ -220,177 +366,9 @@ class group extends control
if($type == 'byModule') return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => 'parent'));
}
- if($type == 'byGroup' or $type == 'byPackage')
- {
- $this->group->sortResource();
- $group = $this->group->getById($groupID);
- $groupPrivs = $this->group->getPrivs($groupID);
+ if($type == 'byGroup' || $type == 'byPackage') $this->managePrivByGroup($groupID, $nav, $version);
+ if($type == 'byModule') $this->managePrivByModule($groupID, $nav, $version);
- $this->view->title = $this->lang->company->common . $this->lang->colon . $group->name . $this->lang->colon . $this->lang->group->managePriv;
- $this->view->position[] = $group->name;
- $this->view->position[] = $this->lang->group->managePriv;
-
- /* Join changelog when be equal or greater than this version.*/
- $realVersion = str_replace('_', '.', $version);
- $changelog = array();
- foreach($this->lang->changelog as $currentVersion => $currentChangeLog)
- {
- if(version_compare($currentVersion, $realVersion, '>=')) $changelog[] = join(',', $currentChangeLog);
- }
- $changelogs = ',' . join(',', $changelog) . ',';
-
- $this->lang->custom->common = $this->lang->group->config;
- if(($this->config->edition == 'max' or $this->config->edition == 'ipd') and $this->config->vision == 'rnd' and isset($this->lang->baseline)) $this->lang->baseline->common = $this->lang->group->docTemplate;
-
- $modules = $this->group->getPrivManagerPairs('module', $menu);
-
- $this->view->group = $group;
- $this->view->groupPrivs = $groupPrivs;
- $this->view->groupID = $groupID;
- $this->view->menu = $menu;
- $this->view->version = $version;
-
- $privs = $this->group->getPrivsListByView($menu);
- $privs = $this->group->transformPrivLang($privs);
- $privs = $this->group->getCustomPrivs($menu, $privs);
-
- $privList = $modules;
- $privMethods = array();
- $selectPrivs = array();
- $selectedPrivList = array();
- $relatedList = array();
- $groupPrivList = $this->group->getPrivListByGroup($groupID);
- foreach($privs as $priv)
- {
- if(!empty($version) and strpos($changelogs, ",{$priv->module}-{$priv->method},") === false)
- {
- unset($groupPrivList["{$priv->module}-{$priv->method}"]);
- continue;
- }
-
- if(!$this->config->inQuickon && in_array("{$priv->module}-{$priv->method}", $this->config->group->hiddenPriv)) continue;
-
- if(!isset($privList[$priv->parentCode])) $privList[$priv->parentCode] = array();
- if(!is_array($privList[$priv->parentCode])) $privList[$priv->parentCode] = array();
- if(!isset($privList[$priv->parentCode][$priv->parent])) $privList[$priv->parentCode][$priv->parent] = array();
- $privList[$priv->parentCode][$priv->parent][$priv->key] = $priv;
-
- if(!isset($privMethod[$priv->module])) $privMethod[$priv->module] = array();
- $privMethods[$priv->module][$priv->method] = $priv->method;
-
- if(!isset($selectPrivs[$priv->parentCode])) $selectPrivs[$priv->parentCode] = array();
- if(!isset($selectPrivs[$priv->parentCode][$priv->parent])) $selectPrivs[$priv->parentCode][$priv->parent] = 0;
- if(!empty($groupPrivs[$priv->module][$priv->method]))
- {
- $selectPrivs[$priv->parentCode][$priv->parent] ++;
- if(isset($priv->id))
- {
- $selectedPrivList["{$priv->module}-{$priv->method}"] = "{$priv->module}-{$priv->method}";
-
- /* New permissions for secondary development are excluded. */
- if(is_numeric($priv->id)) $relatedList["{$priv->module}-{$priv->method}"] = "{$priv->module}-{$priv->method}";
- }
- }
- }
- foreach($privList as $module => $privs)
- {
- if(!is_array($privList[$module])) unset($privList[$module]);
- }
-
- if(empty($menu) or $menu == 'general')
- {
- $unassignedModule = array_diff(array_keys(get_object_vars($this->lang->resource)), array_keys($modules));
- foreach($unassignedModule as $index => $module)
- {
- if(!$this->group->checkMenuModule($menu, $module) or isset($privList[$module])) continue;
-
- $selectPrivs[$module] = array();
- $selectPrivs[$module][0] = 0;
-
- foreach($this->lang->resource->{$module} as $method => $methodLabel)
- {
- if(isset($privMethods[$module][$method])) continue;
- if(!$this->config->inQuickon && in_array("{$module}-{$method}", $this->config->group->hiddenPriv)) continue;
-
- $privMethods[$module][$method] = $method;
-
- $privList[$module][0]["{$module}-$method"] = new stdclass();
- $privList[$module][0]["{$module}-$method"]->module = $module;
- $privList[$module][0]["{$module}-$method"]->method = $method;
- $privList[$module][0]["{$module}-$method"]->name = $this->lang->{$module}->{$methodLabel};
- $privList[$module][0]["{$module}-$method"]->action = "{$module}-{$method}";
- if(!empty($groupPrivs[$module][$method])) $selectPrivs[$module][0] ++;
- }
- }
- }
-
- $excludePrivList = array_diff(array_keys($groupPrivList), $selectedPrivList);
- $relatedPrivData = $this->group->getRelatedPrivs($relatedList, '', $excludePrivList);
-
- unset($privList['index']);
-
- $this->view->privList = $privList;
- $this->view->privMethods = $privMethods;
- $this->view->selectPrivs = $selectPrivs;
- $this->view->privPackages = $this->group->getPrivManagerPairs('package');
- $this->view->selectedPrivList = $selectedPrivList;
- $this->view->relatedPrivData = $relatedPrivData;
- $this->view->excludePrivList = $excludePrivList;
- }
- elseif($type == 'byModule')
- {
- $this->group->sortResource();
- $this->view->title = $this->lang->company->common . $this->lang->colon . $this->lang->group->managePriv;
- $this->view->position[] = $this->lang->group->managePriv;
-
- $privs = $this->group->getPrivsListByView('');
- $privs = $this->group->getCustomPrivs('', $privs);
- $modules = $this->dao->select('*')->from(TABLE_PRIVMANAGER)->where('type')->eq('module')->fetchAll('code');
- $modulePairs = $this->group->getPrivManagerPairs('module');
-
- $privArray = get_object_vars($this->lang->resource);
- $privArray = array_filter($privArray, function($modulePrivs){$modulePrivs = (array)$modulePrivs; return !empty($modulePrivs);});
- $unassignedModules = array_diff(array_keys($privArray), array_keys($modulePairs));
-
- foreach($unassignedModules as $unassignedModule)
- {
- $this->app->loadLang($unassignedModule);
- $modulePairs[$unassignedModule] = isset($this->lang->{$unassignedModule}->common) ? $this->lang->{$unassignedModule}->common : $unassignedModule;
- }
-
- $packageGroup = array();
- foreach($modulePairs as $moduleCode => $moduleLang)
- {
- $modulePackages = $this->group->getPrivManagerPairs('package', $moduleCode);
- $unassignedPrivs = $this->group->getUnassignedPrivsByModule($moduleCode);
- $packageGroup[$moduleCode] = isset($modules[$moduleCode]) ? $modulePackages : array();
- $unassignedPrivPackages = isset($modules[$moduleCode]) ? $modules[$moduleCode]->id : 0;
- $packageGroup[$moduleCode] = $packageGroup[$moduleCode] + array($unassignedPrivPackages => $this->lang->group->other);
- }
-
- $hasPrivModule = array();
- foreach($privs as $privKey => $priv)
- {
- if(!isset($modulePairs[$priv->module])) $modulePairs[$priv->module] = isset($this->lang->{$priv->module}->common) ? $this->lang->{$priv->module}->common : $priv->module;
-
- $hasPrivModule[] = $priv->parentCode;
- }
- $emptyPrivModules = array_diff(array_keys($modulePairs), $hasPrivModule);
- foreach($emptyPrivModules as $emptyPrivModule) unset($modulePairs[$emptyPrivModule]);
-
- $indexPrivs = $this->group->getPrivByParent(isset($packageGroup['index']) ? array_keys($packageGroup['index']) : $modules['index']->id);
- $indexPrivs = $this->group->transformPrivLang($indexPrivs);
- foreach($indexPrivs as $privID => $priv)
- {
- $indexPrivs["{$priv->module}-{$priv->method}"] = $priv->name;
- unset($indexPrivs[$privID]);
- }
-
- $this->view->groups = $this->group->getPairs();
- $this->view->modulePairs = $modulePairs;
- $this->view->packageGroup = $packageGroup;
- $this->view->indexPrivs = $indexPrivs;
- }
$this->display();
}
@@ -1056,50 +1034,16 @@ class group extends control
/**
* AJAX: Get privs by parents.
*
- * @param string $module
- * @param string $parentType
- * @param string $parentList
+ * @param string $selectedSubset
+ * @param string $selectedPackages
* @access public
* @return bool
*/
- public function ajaxGetPrivByParents($module, $parentType, $parentList)
+ public function ajaxGetPrivByParents($selectedSubset, $selectedPackages)
{
- $menu = isset($this->lang->navGroup->$module) ? $this->lang->navGroup->$module : $module;
- $privList = array();
- if($parentType == 'module')
- {
- $privs = $this->group->getPrivByModule($parentList);
- foreach($privs as $moduleID => $packages)
- {
- foreach($packages as $packageID => $packagePrivs)
- {
- foreach($packagePrivs as $privID => $packagePriv)
- {
- $privList["{$packagePriv->module}-{$packagePriv->method}"] = $packagePriv;
- }
- }
- }
- }
- elseif($parentType == 'package')
- {
- $privList = $this->group->getPrivByParent(trim($parentList, ','));
- foreach($privList as $privID => $priv)
- {
- $privList["{$priv->module}-{$priv->method}"] = $priv;
- unset($privList[$privID]);
- }
- }
+ $privs = $this->group->getPrivByParents($selectedSubset, $selectedPackages);
- $privList = $this->group->getCustomPrivs($menu, $privList);
- foreach($privList as $privKey => $priv)
- {
- if((isset($priv->parentCode) and $priv->parentCode != $module) or (strpos($parentList, ",{$priv->parent},") === false and $parentType == 'package')) unset($privList[$privKey]);
-
- if(!$this->config->inQuickon && in_array($privKey, $this->config->group->hiddenPriv)) unset($privList[$privKey]);
- }
- $privList = $this->group->transformPrivLang($privList, true);
-
- return print(html::select('actions[]', $privList, '', "multiple='multiple' class='form-control'"));
+ return print(html::select('actions[]', $privs, '', "multiple='multiple' class='form-control'"));
}
/**
@@ -1110,10 +1054,11 @@ class group extends control
*/
public function ajaxGetRelatedPrivs()
{
- $privList = zget($_POST, 'privList');
- $recommedSelect = zget($_POST, 'recommedSelect');
- $excludePrivList = zget($_POST, 'excludePrivList');
- $privList = $this->group->getRelatedPrivs($privList, '', $excludePrivList, $recommedSelect);
- return print(json_encode($privList));
+ $allPrivList = zget($_POST, 'allPrivList');
+ $selectedPrivList = zget($_POST, 'selectPrivList');
+ $recommendSelect = zget($_POST, 'recommendSelect');
+ $result = $this->group->getRelatedPrivs(explode(',', $allPrivList), explode(',', $selectedPrivList), explode(',', $recommendSelect));
+
+ return print(json_encode($result));
}
}
diff --git a/module/group/js/managepriv.js b/module/group/js/managepriv.js
index 71bba978fa..7b386b740e 100644
--- a/module/group/js/managepriv.js
+++ b/module/group/js/managepriv.js
@@ -16,7 +16,7 @@ function setModulePackages(module)
$('#packageBox select').val(''); // Unselect all select.
$("select[data-module='" + module + "']").removeClass('hidden'); // Show the action control for current module.
- updatePrivList('module', module);
+ updatePrivList(module, '');
}
/**
@@ -29,9 +29,10 @@ function setActions()
{
$('#actionBox select').val('');
- var hasSelectedPackage = ',' + $('#packageBox select').not('.hidden').val().join(',') + ',';
+ var selectedModule = $('#module').val();
+ var selectedPackages = ',' + $('#packageBox select').not('.hidden').val().join(',') + ',';
- updatePrivList('package', hasSelectedPackage);
+ updatePrivList(selectedModule, selectedPackages);
}
@@ -48,15 +49,14 @@ function setNoChecked()
/**
* Update the action box when module or package selected.
*
- * @param string parentType module|package
- * @param string parentList
+ * @param string selectedModule
+ * @param string selectedPackages
* @access public
* @return void
*/
-function updatePrivList(parentType, parentList)
+function updatePrivList(selectedModule, selectedPackages)
{
- var selectedModule = $('#module').val();
- $.get(createLink('group', 'ajaxGetPrivByParents', 'module=' + selectedModule + '&parentType=' + parentType + '&parentList=' + parentList), function(data)
+ $.get(createLink('group', 'ajaxGetPrivByParents', 'module=' + selectedModule + '&packages=' + selectedPackages), function(data)
{
$('#actions').replaceWith(data);
})
@@ -136,9 +136,9 @@ function initRecomendTree(data)
initialState: 'expand',
itemCreator: function($li, item)
{
- var index = item.relationPriv ? recommedSelect.indexOf(item.relationPriv.toString()) : -1;
- if(item.relationPriv === undefined) item.relationPriv = '';
- $li.append('
= 0 ? 'checked="checked"' : '') + 'data-has-children="' + (item.children ? !!item.children.length : false) + '"' + (item.children ? '' : 'data-type="recommend" data-privid="' + item.privID + '" data-relationpriv="' + item.relationPriv + '"') + 'type="checkbox" name="recommendPrivs[]" value="' + item.relationPriv + '" title="' + item.title + '" id="recommendPrivs[' + item.module + ']' + item.method + '" data-module="' + item.module + '" data-method="' + item.method + '">
');
+ var privID = item.module + '-' + item.method;
+ var index = recommendSelect.indexOf(privID);
+ $li.append('= 0 ? 'checked="checked"' : '') + 'data-has-children="' + (item.children ? !!item.children.length : false) + '"' + (item.children ? '' : 'data-type="recommend" data-privid="' + privID + '" data-relationpriv="' + privID + '"') + 'type="checkbox" name="recommendPrivs[]" value="' + privID + '" title="' + item.title + '" id="recommendPrivs[' + item.module + ']' + item.method + '" data-module="' + item.module + '" data-method="' + item.method + '">
');
}
});
$('.menuTree.recommend i.list-toggle').remove();
@@ -159,7 +159,8 @@ function initDependTree(data)
initialState: 'expand',
itemCreator: function($li, item)
{
- $li.append('');
+ var privID = item.module + '-' + item.method;
+ $li.append('');
}
});
$('.menuTree.depend i.list-toggle').remove();
@@ -190,7 +191,7 @@ function updatePrivTree(privList)
url: createLink('group', 'ajaxGetRelatedPrivs'),
dataType: 'json',
method: 'post',
- data: {"privList" : privList.toString(), "recommedSelect": recommedSelect.toString(), "excludePrivList": Object.values(excludePrivList).toString()},
+ data: {"selectPrivList": privList.toString(), "recommendSelect": recommendSelect.toString(), "allPrivList": Object.values(allPrivList).toString()},
success: function(data)
{
if(data.depend == undefined || data.depend.length == 0)
@@ -385,10 +386,10 @@ function recommendChange($item, checked)
if(priv && index < 0 && checked) selectedPrivList.push(priv);
if(priv && index > -1 && !checked) selectedPrivList.splice(index, 1);
- index = recommedSelect.indexOf(priv);
+ index = recommendSelect.indexOf(priv);
- if(priv && index < 0 && checked) recommedSelect.push(priv);
- if(priv && index > -1 && !checked) recommedSelect.splice(index, 1);
+ if(priv && index < 0 && checked) recommendSelect.push(priv);
+ if(priv && index > -1 && !checked) recommendSelect.splice(index, 1);
}
}
@@ -413,7 +414,7 @@ $(function()
selectedPrivList = Object.values(selectedPrivList);
- recommedSelect = new Array();
+ recommendSelect = new Array();
relatedPrivData = $.parseJSON(relatedPrivData);
initDependTree(relatedPrivData.depend);
diff --git a/module/group/lang/en.php b/module/group/lang/en.php
index 948cd6a68b..22ff42cf5c 100644
--- a/module/group/lang/en.php
+++ b/module/group/lang/en.php
@@ -203,4 +203,384 @@ $lang->group->versions['1_2'] = 'ZenTao1.2';
$lang->group->versions['1_1'] = 'ZenTao1.1';
$lang->group->versions['1_0_1'] = 'ZenTao1.0.1';
+$lang->group->package = new stdclass();
+$lang->group->package->browseTodo = 'Browse Todo';
+$lang->group->package->manageTodo = 'Manage Todo';
+$lang->group->package->deleteTodo = 'Delete Todo';
+$lang->group->package->importTodo = 'Import Todo';
+$lang->group->package->manageContact = 'Manage Contact';
+$lang->group->package->profile = 'Profile';
+$lang->group->package->preference = 'Preference';
+$lang->group->package->browseProgram = 'Browse Program';
+$lang->group->package->manageProgram = 'Manage Program';
+$lang->group->package->deleteProgram = 'Delete Program';
+$lang->group->package->invest = 'Invest';
+$lang->group->package->accessible = 'Accessible';
+$lang->group->package->whitelist = 'Whitelist';
+$lang->group->package->stakeholder = 'Stakeholder';
+$lang->group->package->my = 'My';
+$lang->group->package->browseProduct = 'Browse Product';
+$lang->group->package->manageProductLine = 'Manage Product Line';
+$lang->group->package->createProduct = 'Create Product';
+$lang->group->package->importProduct = 'Import Product';
+$lang->group->package->productWhitelist = 'Product Whitelist';
+$lang->group->package->branch = 'Branch';
+$lang->group->package->browseStory = 'Browse Story';
+$lang->group->package->manageStory = 'Manage Story';
+$lang->group->package->importStory = 'Import Story';
+$lang->group->package->deleteStory = 'Delete Story';
+$lang->group->package->reviewStory = 'Review Story';
+$lang->group->package->deleteProduct = 'Delete Product';
+$lang->group->package->browseRequirement = 'Browse Requirement';
+$lang->group->package->manageRequirement = 'Manage Requirement';
+$lang->group->package->importRequirement = 'Import Requirement';
+$lang->group->package->deleteRequirement = 'Delete Requirement';
+$lang->group->package->reviewRequirement = 'Review Requirement';
+$lang->group->package->browseProductPlan = 'Browse Product Plan';
+$lang->group->package->manageProductPlan = 'Manage Product Plan';
+$lang->group->package->deleteProductPlan = 'Delete Product Plan';
+$lang->group->package->browseRelease = 'Browse Release';
+$lang->group->package->manageRelease = 'Manage Release';
+$lang->group->package->importRelease = 'Import Release';
+$lang->group->package->deleteRelease = 'Delete Release';
+$lang->group->package->releaseNotify = 'Release Notify';
+$lang->group->package->projectPlan = 'Project Plan';
+$lang->group->package->manageProjectStory = 'Manage Project Story';
+$lang->group->package->browseProject = 'Browse Project';
+$lang->group->package->manageProject = 'Manage Project';
+$lang->group->package->importProject = 'Import Project';
+$lang->group->package->projectTeam = 'Project Team';
+$lang->group->package->deleteProject = 'Delete Project';
+$lang->group->package->projectWhitelist = 'Project Whitelist';
+$lang->group->package->browseExecution = 'Browse Execution';
+$lang->group->package->manageExecution = 'Manage Execution';
+$lang->group->package->deleteExecution = 'Delete Execution';
+$lang->group->package->importExecution = 'Import Execution';
+$lang->group->package->executionWhitelist = 'Execution Whitelist';
+$lang->group->package->gantt = 'Gantt';
+$lang->group->package->browseTask = 'Browse Task';
+$lang->group->package->manageTask = 'Manage Task';
+$lang->group->package->deleteTask = 'Delete Task';
+$lang->group->package->importTask = 'Import Task';
+$lang->group->package->executionTeam = 'Execution Team';
+$lang->group->package->kanban = 'Kanban';
+$lang->group->package->groupView = 'Group View';
+$lang->group->package->burndown = 'Burndown';
+$lang->group->package->cfd = 'Cfd';
+$lang->group->package->manageExecutionStory = 'Manage Execution Story';
+$lang->group->package->manageExecutionEffort = 'Manage Execution Effort';
+$lang->group->package->manageBuild = 'Manage Build';
+$lang->group->package->deleteBuild = 'Delete Build';
+$lang->group->package->browseStoryLib = 'Browse Story Lib';
+$lang->group->package->manageStoryLib = 'Manage Story Lib';
+$lang->group->package->deleteStoryLib = 'Delete Story Lib';
+$lang->group->package->reviewStoryLib = 'Review Story Lib';
+$lang->group->package->browseIssueLib = 'Browse Issue Lib';
+$lang->group->package->manageIssueLib = 'Manage Issue Lib';
+$lang->group->package->deleteIssueLib = 'Delete Issue Lib';
+$lang->group->package->reviewIssue = 'Review Issue';
+$lang->group->package->browseRiskLib = 'Browse Risk Lib';
+$lang->group->package->manageRiskLib = 'Manage Risk Lib';
+$lang->group->package->deleteRiskLib = 'Delete Risk Lib';
+$lang->group->package->reivewRisk = 'Reivew Risk';
+$lang->group->package->browseOpportunityLib = 'Browse Opportunity Lib';
+$lang->group->package->manageOpportunityLib = 'Manage Opportunity Lib';
+$lang->group->package->deleteOpportunityLib = 'Delete Opportunity Lib';
+$lang->group->package->reviewOpportunity = 'Review Opportunity';
+$lang->group->package->browsePracticeLib = 'Browse Practice Lib';
+$lang->group->package->managePracticeLib = 'Manage Practice Lib';
+$lang->group->package->deletePracticeLib = 'Delete Practice Lib';
+$lang->group->package->reviewPractice = 'Review Practice';
+$lang->group->package->browseComponentLib = 'Browse Component Lib';
+$lang->group->package->manageComponentLib = 'Manage Component Lib';
+$lang->group->package->deleteComponentLib = 'Delete Component Lib';
+$lang->group->package->reviewComponent = 'Review Component';
+$lang->group->package->browseCaseLib = 'Browse Case Lib';
+$lang->group->package->manageCaseLib = 'Manage Case Lib';
+$lang->group->package->deleteCaseLib = 'Delete Case Lib';
+$lang->group->package->importCaseLib = 'Import Case Lib';
+$lang->group->package->importToCaseLib = 'Import To Case Lib';
+$lang->group->package->officeApproval = 'Office Approval';
+$lang->group->package->attend = 'Attend';
+$lang->group->package->officeSetting = 'Office Setting';
+$lang->group->package->dataPermission = 'Data Permission';
+$lang->group->package->leave = 'Leave';
+$lang->group->package->makeup = 'Makeup';
+$lang->group->package->overtime = 'Overtime';
+$lang->group->package->lieu = 'Lieu';
+$lang->group->package->holiday = 'Holiday';
+$lang->group->package->exportOffice = 'Export Office';
+$lang->group->package->browseFeedback = 'Browse Feedback';
+$lang->group->package->manageFeedback = 'Manage Feedback';
+$lang->group->package->importFeedback = 'Import Feedback';
+$lang->group->package->manageFeedback = 'Manage Feedback';
+$lang->group->package->faq = 'Faq';
+$lang->group->package->browseTicket = 'Browse Ticket';
+$lang->group->package->manageTicket = 'Manage Ticket';
+$lang->group->package->importTicket = 'Import Ticket';
+$lang->group->package->deleteFeedback = 'Delete Feedback';
+$lang->group->package->deleteTIcket = 'Delete T Icket';
+$lang->group->package->feedbackPriv = 'Feedback Priv';
+$lang->group->package->browseCourse = 'Browse Course';
+$lang->group->package->manageTrainCourse = 'Manage Train Course';
+$lang->group->package->system = 'Platform';
+$lang->group->package->host = 'Host';
+$lang->group->package->serverRoom = 'Server Room';
+$lang->group->package->account = 'Account';
+$lang->group->package->domain = 'Domain';
+$lang->group->package->service = 'Service';
+$lang->group->package->deployPlan = 'Deploy Plan';
+$lang->group->package->deployScope = 'Deploy Scope';
+$lang->group->package->deployStep = 'Deploy Step';
+$lang->group->package->deployCase = 'Deploy Case';
+$lang->group->package->qaIndex = 'Qa Index';
+$lang->group->package->browseBug = 'Browse Bug';
+$lang->group->package->manageBug = 'Manage Bug';
+$lang->group->package->deleteBug = 'Delete Bug';
+$lang->group->package->importBug = 'Import Bug';
+$lang->group->package->browseCase = 'Browse Case';
+$lang->group->package->manageCase = 'Manage Case';
+$lang->group->package->importCase = 'Import Case';
+$lang->group->package->deleteCase = 'Delete Case';
+$lang->group->package->reviewCase = 'Review Case';
+$lang->group->package->browseTesttask = 'Browse Testtask';
+$lang->group->package->manageTesttask = 'Manage Testtask';
+$lang->group->package->deleteTesttask = 'Delete Testtask';
+$lang->group->package->unitTest = 'Unit Test';
+$lang->group->package->testsuite = 'Testsuite';
+$lang->group->package->manageTestsuite = 'Manage Testsuite';
+$lang->group->package->deleteTestsuite = 'Delete Testsuite';
+$lang->group->package->browseTestreport = 'Browse Testreport';
+$lang->group->package->manageTestreport = 'Manage Testreport';
+$lang->group->package->deleteTestreport = 'Delete Testreport';
+$lang->group->package->importTestreport = 'Import Testreport';
+$lang->group->package->browseZAHost = 'Browse Z A Host';
+$lang->group->package->manageZAHost = 'Manage Z A Host';
+$lang->group->package->deleteZAHost = 'Delete Z A Host';
+$lang->group->package->image = 'Image';
+$lang->group->package->browseZANode = 'Browse Z A Node';
+$lang->group->package->manageZANode = 'Manage Z A Node';
+$lang->group->package->importZANode = 'Import Z A Node';
+$lang->group->package->snapshot = 'Snapshot';
+$lang->group->package->companyTeam = 'Company Team';
+$lang->group->package->companyCalendar = 'Company Calendar';
+$lang->group->package->companyEffort = 'Company Effort';
+$lang->group->package->companyDynamic = 'Company Dynamic';
+$lang->group->package->companySetting = 'Company Setting';
+$lang->group->package->companyDataPermission = 'Company Data Permission';
+$lang->group->package->programPlan = 'Program Plan';
+$lang->group->package->browseDesign = 'Browse Design';
+$lang->group->package->manageDesign = 'Manage Design';
+$lang->group->package->deleteDesign = 'Delete Design';
+$lang->group->package->manageReview = 'Manage Review';
+$lang->group->package->manageIssue = 'Manage Issue';
+$lang->group->package->projectSetting = 'Project Setting';
+$lang->group->package->browseProjectRelease = 'Browse Project Release';
+$lang->group->package->projectWeekly = 'Project Weekly';
+$lang->group->package->projectMilestone = 'Project Milestone';
+$lang->group->package->researchPlan = 'Research Plan';
+$lang->group->package->researchReport = 'Research Report';
+$lang->group->package->budget = 'Budget';
+$lang->group->package->workEstimation = 'Work Estimation';
+$lang->group->package->durationEstimation = 'Duration Estimation';
+$lang->group->package->browseIssue = 'Browse Issue';
+$lang->group->package->manageIssue = 'Manage Issue';
+$lang->group->package->importIssue = 'Import Issue';
+$lang->group->package->deleteIssue = 'Delete Issue';
+$lang->group->package->importIssueLib = 'Import Issue Lib';
+$lang->group->package->browseRisk = 'Browse Risk';
+$lang->group->package->manageRisk = 'Manage Risk';
+$lang->group->package->importRisk = 'Import Risk';
+$lang->group->package->deleteRisk = 'Delete Risk';
+$lang->group->package->importRiskLib = 'Import Risk Lib';
+$lang->group->package->browseOpportunity = 'Browse Opportunity';
+$lang->group->package->manageOpportunity = 'Manage Opportunity';
+$lang->group->package->deleteOpportunity = 'Delete Opportunity';
+$lang->group->package->importOpportunityLib = 'Import Opportunity Lib';
+$lang->group->package->importOpportunity = 'Import Opportunity';
+$lang->group->package->pssp = 'Pssp';
+$lang->group->package->measrecord = 'Measrecord';
+$lang->group->package->manageAuditPlan = 'Manage Audit Plan';
+$lang->group->package->nc = 'Nc';
+$lang->group->package->meeting = 'Meeting';
+$lang->group->package->trainPlan = 'Train Plan';
+$lang->group->package->gapAnalysis = 'Gap Analysis';
+$lang->group->package->workflowField = 'Workflow Field';
+$lang->group->package->workflowAction = 'Workflow Action';
+$lang->group->package->workflowLayout = 'Workflow Layout';
+$lang->group->package->workflowCondition = 'Workflow Condition';
+$lang->group->package->workflowLinkage = 'Workflow Linkage';
+$lang->group->package->workflowHook = 'Workflow Hook';
+$lang->group->package->workflowLabel = 'Workflow Label';
+$lang->group->package->workflowReport = 'Workflow Report';
+$lang->group->package->workflowDatasource = 'Workflow Datasource';
+$lang->group->package->workflowRule = 'Workflow Rule';
+$lang->group->package->workflow = 'Workflow';
+$lang->group->package->downloadCode = 'Download Code';
+$lang->group->package->dev = 'Dev';
+$lang->group->package->browseCodeIssue = 'Review List';
+$lang->group->package->editor = 'Editor';
+$lang->group->package->serverLink = 'Server Link';
+$lang->group->package->browseMR = 'MR List';
+$lang->group->package->managePriv = 'Manage Priv';
+$lang->group->package->dept = 'Dept';
+$lang->group->package->group = 'Group';
+$lang->group->package->user = 'User';
+$lang->group->package->extension = 'Extension';
+$lang->group->package->message = 'Message';
+$lang->group->package->mail = 'Mail';
+$lang->group->package->webhook = 'Webhook';
+$lang->group->package->gitlab = 'Gitlab';
+$lang->group->package->sms = 'Sms';
+$lang->group->package->gogs = 'Gogs';
+$lang->group->package->gitea = 'Gitea';
+$lang->group->package->sonarqube = 'Sonarqube';
+$lang->group->package->repoRules = 'Repo Rules';
+$lang->group->package->browseJob = 'PipeLine List';
+$lang->group->package->manageJob = 'Manage PipeLine';
+$lang->group->package->manageMR = 'Manage MR';
+$lang->group->package->backup = 'Backup';
+$lang->group->package->trash = 'Trash';
+$lang->group->package->security = 'Security';
+$lang->group->package->cron = 'Cron';
+$lang->group->package->ldap = 'Ldap';
+$lang->group->package->chat = 'Chat';
+$lang->group->package->jenkins = 'Jenkins';
+$lang->group->package->systemSetting = 'System Setting';
+$lang->group->package->search = 'Search';
+$lang->group->package->comment = 'Comment';
+$lang->group->package->module = 'Module';
+$lang->group->package->file = 'File';
+$lang->group->package->commonEffort = 'Common Effort';
+$lang->group->package->docTemplate = 'Doc Template';
+$lang->group->package->importStoryLib = 'Import Story Lib';
+$lang->group->package->projectStakeholder = 'Project Stakeholder';
+$lang->group->package->projectBuild = 'Project Build';
+$lang->group->package->importCaseLib = 'Import Case Lib';
+$lang->group->package->commonSetting = 'Common Setting';
+$lang->group->package->stageSetting = 'Stage Setting';
+$lang->group->package->classify = 'Classify';
+$lang->group->package->cmcl = 'Cmcl';
+$lang->group->package->auditcl = 'Auditcl';
+$lang->group->package->reviewcl = 'Reviewcl';
+$lang->group->package->process = 'Process';
+$lang->group->package->activity = 'Activity';
+$lang->group->package->zoutput = 'Zoutput';
+$lang->group->package->custom = 'Custom';
+$lang->group->package->cmcl = 'Cmcl';
+$lang->group->package->measurement = 'Measurement';
+$lang->group->package->usercl = 'Usercl';
+$lang->group->package->meetingroom = 'Meetingroom';
+$lang->group->package->sqlBuilder = 'Sql Builder';
+$lang->group->package->designSetting = 'Design Setting';
+$lang->group->package->kanbanSpace = 'Kanban Space';
+$lang->group->package->deleteKanbanSpace = 'Delete Kanban Space';
+$lang->group->package->browseKanban = 'Browse Kanban';
+$lang->group->package->manageKanban = 'Manage Kanban';
+$lang->group->package->deleteKanban = 'Delete Kanban';
+$lang->group->package->deleteZANode = 'Delete Z A Node';
+$lang->group->package->autotesting = 'Autotesting';
+$lang->group->package->executionTesting = 'Execution Testing';
+$lang->group->package->manageEffort = 'Manage Effort';
+$lang->group->package->projectTesting = 'Project Testing';
+$lang->group->package->track = 'Track';
+$lang->group->package->workflowRelation = 'Workflow Relation';
+$lang->group->package->template = 'Template';
+$lang->group->package->table = 'Table';
+$lang->group->package->automation = 'Automation';
+$lang->group->package->git = 'Git';
+$lang->group->package->subversion = 'Subversion';
+$lang->group->package->ping = 'Ping';
+$lang->group->package->review = 'Review';
+$lang->group->package->manageProjectRelease = 'Manage Project Release';
+$lang->group->package->deleteProjectRelease = 'Delete Project Release';
+$lang->group->package->importProjectRelease = 'Import Project Release';
+$lang->group->package->projectReleaseNotify = 'Project Release Notify';
+$lang->group->package->gantt = 'Gantt';
+$lang->group->package->executionRelation = 'Execution Relation';
+$lang->group->package->browseBuild = 'Browse Build';
+$lang->group->package->browseExecutionStory = 'Browse Execution Story';
+$lang->group->package->manageCard = 'Manage Card';
+$lang->group->package->browseProjectStory = 'Browse Project Story';
+$lang->group->package->chckAuditPlan = 'Chck Audit Plan';
+$lang->group->package->reviewAssess = 'Review Assess';
+$lang->group->package->reviewAudit = 'Review Audit';
+$lang->group->package->dimension = 'Dimension';
+$lang->group->package->browseScreen = 'Browse Screen';
+$lang->group->package->manageScreen = 'Manage Screen';
+$lang->group->package->deleteScreen = 'Delete Screen';
+$lang->group->package->screenDataPermission = 'Screen Data Permission';
+$lang->group->package->browsePivot = 'Browse Pivot';
+$lang->group->package->designPivot = 'Design Pivot';
+$lang->group->package->exportPivot = 'Export Pivot';
+$lang->group->package->pivotDataPermission = 'Pivot Data Permission';
+$lang->group->package->browseChart = 'Browse Chart';
+$lang->group->package->designChart = 'Design Chart';
+$lang->group->package->exportChart = 'Export Chart';
+$lang->group->package->browseDataview = 'Browse Dataview';
+$lang->group->package->manageDataview = 'Manage Dataview';
+$lang->group->package->deleteDataview = 'Delete Dataview';
+$lang->group->package->browseDoc = 'Browse Doc';
+$lang->group->package->manageDoc = 'Manage Doc';
+$lang->group->package->deleteDoc = 'Delete Doc';
+$lang->group->package->exportDoc = 'Export Doc';
+$lang->group->package->browseAPI = 'Browse API';
+$lang->group->package->manageAPI = 'Manage API';
+$lang->group->package->exportAPI = 'Export API';
+$lang->group->package->deleteAPI = 'Delete API';
+$lang->group->package->callAPI = 'Call API';
+$lang->group->package->scene = 'Scene';
+$lang->group->package->executionTree = 'Execution Tree';
+$lang->group->package->taskEffort = 'Task Effort';
+$lang->group->package->taskCalendar = 'Task Calendar';
+$lang->group->package->code = 'Code';
+$lang->group->package->repo = 'Repository';
+$lang->group->package->browseDemandPool = 'Browse Demand Pool';
+$lang->group->package->browseCharter = 'Browse Charter';
+$lang->group->package->manageDemandPool = 'Manage Demand Pool';
+$lang->group->package->manageCharter = 'Manage Charter';
+$lang->group->package->reviewCharter = 'Review Charter';
+$lang->group->package->browseDemand = 'Browse Demand';
+$lang->group->package->manageDemand = 'Manage Demand';
+$lang->group->package->reviewDemand = 'Review Demand';
+$lang->group->package->importDemand = 'Import Demand';
+$lang->group->package->deleteDemand = 'Delete Demand';
+$lang->group->package->admin = 'Admin';
+$lang->group->package->browseRoadmap = 'Browse Roadmap';
+$lang->group->package->manageRoadmap = 'Manage Roadmap';
+$lang->group->package->deleteRoadmap = 'Delete Roadmap';
+$lang->group->package->deleteDemandPool = 'Delete Demand Pool';
+$lang->group->package->exportDatatable = 'Export Datatable';
+$lang->group->package->ai = 'AI';
+$lang->group->package->executePrompt = 'Execute Prompts';
+$lang->group->package->manageLLM = 'Manage Models';
+$lang->group->package->browsePrompt = 'Browse Prompts';
+$lang->group->package->managePrompt = 'Manage and Design Prompts';
+$lang->group->package->publishPrompt = 'Publish and Unpublish Prompts';
+$lang->group->package->deletePrompt = 'Delete Prompts';
+$lang->group->package->dashboard = 'Dashboard';
+$lang->group->package->resource = 'Resource';
+$lang->group->package->manageServiceProvider = 'Provider';
+$lang->group->package->manageCity = 'City';
+$lang->group->package->manageCPU = 'Cpu Brand';
+$lang->group->package->manageOS = 'OS Version';
+$lang->group->package->browseRepo = 'Repo List';
+$lang->group->package->manageRepo = 'Manage Repository';
+$lang->group->package->deleteRepo = 'Delete Repository';
+$lang->group->package->browseCode = 'Code View';
+$lang->group->package->manageCode = 'Manage Code';
+$lang->group->package->CodeIssule = 'Review';
+$lang->group->package->manageCodeIssue = 'Manage Review';
+$lang->group->package->deleteCodeIssue = 'Delete Review';
+$lang->group->package->deleteMR = 'Delete MR';
+$lang->group->package->deleteJob = 'Delete PipeLine';
+$lang->group->package->artifactrepo = 'Artifact Repo';
+$lang->group->package->browseArtifactrepo = 'Artifact Repo List';
+$lang->group->package->manageArtifactrepo = 'Manage Artifact Repo';
+$lang->group->package->deleteArtifactrepo = 'Delete Artifact Repo';
+$lang->group->package->browseInstance = 'Application List';
+$lang->group->package->browseInstance = 'Manage Application';
+$lang->group->package->trainPracticeLib = 'Practice Library';
+$lang->group->package->other = 'Other';
+
include (dirname(__FILE__) . '/resource.php');
diff --git a/module/group/lang/zh-cn.php b/module/group/lang/zh-cn.php
index f19cc75529..f3acb6a051 100644
--- a/module/group/lang/zh-cn.php
+++ b/module/group/lang/zh-cn.php
@@ -203,4 +203,384 @@ $lang->group->versions['1_2'] = '禅道1.2';
$lang->group->versions['1_1'] = '禅道1.1';
$lang->group->versions['1_0_1'] = '禅道1.0.1';
+$lang->group->package = new stdclass();
+$lang->group->package->browseTodo = '浏览待办';
+$lang->group->package->manageTodo = '创建维护待办';
+$lang->group->package->deleteTodo = '删除待办';
+$lang->group->package->importTodo = '导入导出待办';
+$lang->group->package->manageContact = '维护联系人';
+$lang->group->package->profile = '个人档案';
+$lang->group->package->preference = '个性化设置';
+$lang->group->package->browseProgram = '浏览项目集';
+$lang->group->package->manageProgram = '创建维护项目集';
+$lang->group->package->deleteProgram = '删除项目集';
+$lang->group->package->invest = '投入人员';
+$lang->group->package->accessible = '可访问人员';
+$lang->group->package->whitelist = '维护白名单';
+$lang->group->package->stakeholder = '维护干系人';
+$lang->group->package->my = '浏览地盘';
+$lang->group->package->browseProduct = '浏览产品';
+$lang->group->package->manageProductLine = '创建维护产品线';
+$lang->group->package->createProduct = '创建维护产品';
+$lang->group->package->importProduct = '导入导出产品';
+$lang->group->package->productWhitelist = '白名单管理';
+$lang->group->package->branch = '分支管理';
+$lang->group->package->browseStory = '浏览研发需求';
+$lang->group->package->manageStory = '创建维护研发需求';
+$lang->group->package->importStory = '导入导出研发需求';
+$lang->group->package->deleteStory = '删除研发需求';
+$lang->group->package->reviewStory = '评审研发需求';
+$lang->group->package->deleteProduct = '删除产品';
+$lang->group->package->browseRequirement = '浏览用户需求';
+$lang->group->package->manageRequirement = '创建维护用户需求';
+$lang->group->package->importRequirement = '导入导出用户需求';
+$lang->group->package->deleteRequirement = '删除用户需求';
+$lang->group->package->reviewRequirement = '评审用户需求';
+$lang->group->package->browseProductPlan = '浏览产品计划';
+$lang->group->package->manageProductPlan = '创建维护产品计划';
+$lang->group->package->deleteProductPlan = '删除产品计划';
+$lang->group->package->browseRelease = '浏览发布';
+$lang->group->package->manageRelease = '创建维护发布';
+$lang->group->package->importRelease = '导入导出发布';
+$lang->group->package->deleteRelease = '删除发布';
+$lang->group->package->releaseNotify = '发布通知';
+$lang->group->package->projectPlan = '项目计划';
+$lang->group->package->manageProjectStory = '维护项目研发需求';
+$lang->group->package->browseProject = '浏览项目';
+$lang->group->package->manageProject = '创建维护项目';
+$lang->group->package->importProject = '导入导出项目';
+$lang->group->package->projectTeam = '团队权限';
+$lang->group->package->deleteProject = '删除项目';
+$lang->group->package->projectWhitelist = '项目白名单';
+$lang->group->package->browseExecution = '浏览执行';
+$lang->group->package->manageExecution = '创建维护执行';
+$lang->group->package->deleteExecution = '删除执行';
+$lang->group->package->importExecution = '导入导出执行';
+$lang->group->package->executionWhitelist = '执行白名单';
+$lang->group->package->gantt = '执行甘特图';
+$lang->group->package->browseTask = '浏览任务';
+$lang->group->package->manageTask = '创建维护任务';
+$lang->group->package->deleteTask = '删除任务';
+$lang->group->package->importTask = '导入导出任务';
+$lang->group->package->executionTeam = '执行团队';
+$lang->group->package->kanban = '看板';
+$lang->group->package->groupView = '分组视图';
+$lang->group->package->burndown = '燃尽图';
+$lang->group->package->cfd = '累积流图';
+$lang->group->package->manageExecutionStory = '维护执行研发需求';
+$lang->group->package->manageExecutionEffort = '维护执行日志';
+$lang->group->package->manageBuild = '创建维护版本';
+$lang->group->package->deleteBuild = '删除版本';
+$lang->group->package->browseStoryLib = '浏览需求库';
+$lang->group->package->manageStoryLib = '创建维护需求库';
+$lang->group->package->deleteStoryLib = '删除需求库';
+$lang->group->package->reviewStoryLib = '评审需求库';
+$lang->group->package->browseIssueLib = '浏览问题库';
+$lang->group->package->manageIssueLib = '创建编辑问题库';
+$lang->group->package->deleteIssueLib = '删除问题库';
+$lang->group->package->reviewIssue = '审批问题';
+$lang->group->package->browseRiskLib = '浏览风险库';
+$lang->group->package->manageRiskLib = '创建维护风险库';
+$lang->group->package->deleteRiskLib = '删除风险库';
+$lang->group->package->reivewRisk = '审批风险';
+$lang->group->package->browseOpportunityLib = '浏览机会库';
+$lang->group->package->manageOpportunityLib = '创建维护机会库';
+$lang->group->package->deleteOpportunityLib = '删除机会库';
+$lang->group->package->reviewOpportunity = '审批机会';
+$lang->group->package->browsePracticeLib = '浏览最佳实践库';
+$lang->group->package->managePracticeLib = '创建维护最佳实践库';
+$lang->group->package->deletePracticeLib = '删除最佳实践库';
+$lang->group->package->reviewPractice = '审批最佳实践';
+$lang->group->package->browseComponentLib = '浏览组件库';
+$lang->group->package->manageComponentLib = '创建维护组件库';
+$lang->group->package->deleteComponentLib = '删除组件库';
+$lang->group->package->reviewComponent = '审批组件';
+$lang->group->package->browseCaseLib = '浏览用例库';
+$lang->group->package->manageCaseLib = '创建维护用例库';
+$lang->group->package->deleteCaseLib = '删除用例库';
+$lang->group->package->importCaseLib = '导入导出用例库';
+$lang->group->package->importToCaseLib = '导入到用例库';
+$lang->group->package->officeApproval = '办公审批';
+$lang->group->package->attend = '个人考勤';
+$lang->group->package->officeSetting = '办公设置';
+$lang->group->package->dataPermission = '数据权限';
+$lang->group->package->leave = '个人请假';
+$lang->group->package->makeup = '个人补班';
+$lang->group->package->overtime = '个人加班';
+$lang->group->package->lieu = '个人调休';
+$lang->group->package->holiday = '节假日';
+$lang->group->package->exportOffice = '办公导出';
+$lang->group->package->browseFeedback = '浏览反馈';
+$lang->group->package->manageFeedback = '创建维护反馈';
+$lang->group->package->importFeedback = '导入导出反馈';
+$lang->group->package->manageFeedback = '处理反馈';
+$lang->group->package->faq = 'FAQ';
+$lang->group->package->browseTicket = '浏览工单';
+$lang->group->package->manageTicket = '创建维护工单';
+$lang->group->package->importTicket = '导入导出工单';
+$lang->group->package->deleteFeedback = '删除反馈';
+$lang->group->package->deleteTIcket = '删除工单';
+$lang->group->package->feedbackPriv = '设置反馈权限';
+$lang->group->package->browseCourse = '课程';
+$lang->group->package->manageTrainCourse = '后台管理';
+$lang->group->package->system = '平台';
+$lang->group->package->host = '主机管理';
+$lang->group->package->serverRoom = '机房管理';
+$lang->group->package->account = '账号管理';
+$lang->group->package->domain = '域名管理';
+$lang->group->package->service = '服务管理';
+$lang->group->package->deployPlan = '运维计划';
+$lang->group->package->deployScope = '上线范围';
+$lang->group->package->deployStep = '上线步骤';
+$lang->group->package->deployCase = '上线用例';
+$lang->group->package->qaIndex = '测试仪表盘';
+$lang->group->package->browseBug = '浏览Bug';
+$lang->group->package->manageBug = '创建维护Bug';
+$lang->group->package->deleteBug = '删除Bug';
+$lang->group->package->importBug = '导入导出Bug';
+$lang->group->package->browseCase = '浏览用例';
+$lang->group->package->manageCase = '创建维护用例';
+$lang->group->package->importCase = '导入导出用例';
+$lang->group->package->deleteCase = '删除用例';
+$lang->group->package->reviewCase = '评审用例';
+$lang->group->package->browseTesttask = '浏览测试单';
+$lang->group->package->manageTesttask = '创建维护测试单';
+$lang->group->package->deleteTesttask = '删除测试单';
+$lang->group->package->unitTest = '单元测试';
+$lang->group->package->testsuite = '浏览套件';
+$lang->group->package->manageTestsuite = '创建维护套件';
+$lang->group->package->deleteTestsuite = '删除套件';
+$lang->group->package->browseTestreport = '浏览测试报告';
+$lang->group->package->manageTestreport = '创建维护测试报告';
+$lang->group->package->deleteTestreport = '删除测试报告';
+$lang->group->package->importTestreport = '导入导出测试报告';
+$lang->group->package->browseZAHost = '浏览宿主机';
+$lang->group->package->manageZAHost = '创建维护宿主机';
+$lang->group->package->deleteZAHost = '删除宿主机';
+$lang->group->package->image = '镜像';
+$lang->group->package->browseZANode = '浏览执行节点';
+$lang->group->package->manageZANode = '创建维护执行节点';
+$lang->group->package->importZANode = '导入导出执行节点';
+$lang->group->package->snapshot = '快照';
+$lang->group->package->companyTeam = '浏览组织团队';
+$lang->group->package->companyCalendar = '浏览组织日程';
+$lang->group->package->companyEffort = '浏览组织日志';
+$lang->group->package->companyDynamic = '浏览组织动态';
+$lang->group->package->companySetting = '维护公司信息';
+$lang->group->package->companyDataPermission = '部门数据权限';
+$lang->group->package->programPlan = '项目阶段';
+$lang->group->package->browseDesign = '浏览设计';
+$lang->group->package->manageDesign = '创建维护设计';
+$lang->group->package->deleteDesign = '删除设计';
+$lang->group->package->manageReview = '维护基线评审';
+$lang->group->package->manageIssue = '维护问题';
+$lang->group->package->projectSetting = '项目配置';
+$lang->group->package->browseProjectRelease = '浏览项目发布';
+$lang->group->package->projectWeekly = '项目周报';
+$lang->group->package->projectMilestone = '项目里程碑报告';
+$lang->group->package->researchPlan = '调研计划';
+$lang->group->package->researchReport = '调研报告';
+$lang->group->package->budget = '费用估算';
+$lang->group->package->workEstimation = '工作量估算';
+$lang->group->package->durationEstimation = '项目工期估算';
+$lang->group->package->browseIssue = '浏览问题';
+$lang->group->package->manageIssue = '创建维护问题';
+$lang->group->package->importIssue = '导入导出问题';
+$lang->group->package->deleteIssue = '删除问题';
+$lang->group->package->importIssueLib = '导入问题库';
+$lang->group->package->browseRisk = '浏览风险';
+$lang->group->package->manageRisk = '创建维护风险';
+$lang->group->package->importRisk = '导入导出风险';
+$lang->group->package->deleteRisk = '删除风险';
+$lang->group->package->importRiskLib = '导入风险库';
+$lang->group->package->browseOpportunity = '浏览机会';
+$lang->group->package->manageOpportunity = '创建维护机会';
+$lang->group->package->deleteOpportunity = '删除机会';
+$lang->group->package->importOpportunityLib = '导入机会库';
+$lang->group->package->importOpportunity = '导入导出机会';
+$lang->group->package->pssp = '项目过程';
+$lang->group->package->measrecord = '项目度量';
+$lang->group->package->manageAuditPlan = '维护质量保证计划';
+$lang->group->package->nc = '不符合项';
+$lang->group->package->meeting = '会议';
+$lang->group->package->trainPlan = '培训计划';
+$lang->group->package->gapAnalysis = '能力差距分析';
+$lang->group->package->workflowField = '工作流字段';
+$lang->group->package->workflowAction = '工作流动作';
+$lang->group->package->workflowLayout = '工作流界面';
+$lang->group->package->workflowCondition = '工作流触发条件';
+$lang->group->package->workflowLinkage = '工作流界面联动';
+$lang->group->package->workflowHook = '工作流扩展动作';
+$lang->group->package->workflowLabel = '工作流标签';
+$lang->group->package->workflowReport = '工作流报表';
+$lang->group->package->workflowDatasource = '工作流数据源';
+$lang->group->package->workflowRule = '工作流验证规则';
+$lang->group->package->workflow = '工作流';
+$lang->group->package->downloadCode = '下载代码';
+$lang->group->package->dev = '二次开发';
+$lang->group->package->browseCodeIssue = '浏览代码问题';
+$lang->group->package->editor = '编辑器';
+$lang->group->package->serverLink = '接入禅道';
+$lang->group->package->browseMR = '浏览合并请求';
+$lang->group->package->managePriv = '权限后台设置';
+$lang->group->package->dept = '部门结构';
+$lang->group->package->group = '权限分组';
+$lang->group->package->user = '维护用户';
+$lang->group->package->extension = '插件管理';
+$lang->group->package->message = '通知设置';
+$lang->group->package->mail = '邮件配置';
+$lang->group->package->webhook = 'Webhook';
+$lang->group->package->gitlab = 'GitLab';
+$lang->group->package->sms = '短信配置';
+$lang->group->package->gogs = 'Gogs';
+$lang->group->package->gitea = 'Gitea';
+$lang->group->package->sonarqube = 'SonarQube';
+$lang->group->package->repoRules = '指令';
+$lang->group->package->browseJob = '浏览流水线';
+$lang->group->package->manageJob = '创建维护流水线';
+$lang->group->package->manageMR = '创建维护合并请求';
+$lang->group->package->backup = '系统备份';
+$lang->group->package->trash = '回收站';
+$lang->group->package->security = '安全';
+$lang->group->package->cron = '定时';
+$lang->group->package->ldap = 'LDAP';
+$lang->group->package->chat = '聊天';
+$lang->group->package->jenkins = 'jenkins';
+$lang->group->package->systemSetting = '系统设置';
+$lang->group->package->search = '搜索';
+$lang->group->package->comment = '备注';
+$lang->group->package->module = '模块维护';
+$lang->group->package->file = '附件';
+$lang->group->package->commonEffort = '通用日志';
+$lang->group->package->docTemplate = '文档模板';
+$lang->group->package->importStoryLib = '导入需求库';
+$lang->group->package->projectStakeholder = '项目干系人';
+$lang->group->package->projectBuild = '项目版本';
+$lang->group->package->importCaseLib = '导入用例库';
+$lang->group->package->commonSetting = '通用配置';
+$lang->group->package->stageSetting = '阶段列表设置';
+$lang->group->package->classify = '分类项设置';
+$lang->group->package->cmcl = '审计设置';
+$lang->group->package->auditcl = 'QA检查项设置';
+$lang->group->package->reviewcl = '评审设置';
+$lang->group->package->process = '过程设置';
+$lang->group->package->activity = '活动设置';
+$lang->group->package->zoutput = '文档设置';
+$lang->group->package->custom = '自定义配置';
+$lang->group->package->cmcl = '审批设置';
+$lang->group->package->measurement = '度量设置';
+$lang->group->package->usercl = '用户设置';
+$lang->group->package->meetingroom = '会议室设置';
+$lang->group->package->sqlBuilder = 'sql构建器';
+$lang->group->package->designSetting = '设计设置';
+$lang->group->package->kanbanSpace = '维护空间';
+$lang->group->package->deleteKanbanSpace = '删除空间';
+$lang->group->package->browseKanban = '浏览看板';
+$lang->group->package->manageKanban = '创建维护看板';
+$lang->group->package->deleteKanban = '删除看板';
+$lang->group->package->deleteZANode = '删除执行节点';
+$lang->group->package->autotesting = '自动化测试';
+$lang->group->package->executionTesting = '执行测试';
+$lang->group->package->manageEffort = '维护日志';
+$lang->group->package->projectTesting = '项目测试';
+$lang->group->package->track = '矩阵';
+$lang->group->package->workflowRelation = '工作流跨流程设置';
+$lang->group->package->template = '模板';
+$lang->group->package->table = '数据表格';
+$lang->group->package->automation = '自动化';
+$lang->group->package->git = 'Git';
+$lang->group->package->subversion = 'Subversion';
+$lang->group->package->ping = '防超时';
+$lang->group->package->review = '审批';
+$lang->group->package->manageProjectRelease = '创建维护项目发布';
+$lang->group->package->deleteProjectRelease = '删除项目发布';
+$lang->group->package->importProjectRelease = '导入导出项目发布';
+$lang->group->package->projectReleaseNotify = '项目发布通知';
+$lang->group->package->gantt = '阶段甘特图';
+$lang->group->package->executionRelation = '维护任务关系';
+$lang->group->package->browseBuild = '浏览版本';
+$lang->group->package->browseExecutionStory = '浏览执行研发需求';
+$lang->group->package->manageCard = '维护卡片';
+$lang->group->package->browseProjectStory = '浏览项目研发需求';
+$lang->group->package->chckAuditPlan = '检查质量保证计划';
+$lang->group->package->reviewAssess = '评审基线评审';
+$lang->group->package->reviewAudit = '审计基线评审';
+$lang->group->package->dimension = '管理维度';
+$lang->group->package->browseScreen = '浏览大屏';
+$lang->group->package->manageScreen = '创建维护大屏';
+$lang->group->package->deleteScreen = '删除大屏';
+$lang->group->package->screenDataPermission = '大屏数据权限';
+$lang->group->package->browsePivot = '浏览透视表';
+$lang->group->package->designPivot = '设计透视表';
+$lang->group->package->exportPivot = '导出透视表';
+$lang->group->package->pivotDataPermission = '透视表数据权限';
+$lang->group->package->browseChart = '浏览图表';
+$lang->group->package->designChart = '设计图表';
+$lang->group->package->exportChart = '导出图表';
+$lang->group->package->browseDataview = '浏览数据表';
+$lang->group->package->manageDataview = '创建维护数据表';
+$lang->group->package->deleteDataview = '删除数据表';
+$lang->group->package->browseDoc = '浏览文档';
+$lang->group->package->manageDoc = '创建与维护文档';
+$lang->group->package->deleteDoc = '删除文档';
+$lang->group->package->exportDoc = '导出文档';
+$lang->group->package->browseAPI = '浏览接口空间';
+$lang->group->package->manageAPI = '创建维护接口';
+$lang->group->package->exportAPI = '导出接口';
+$lang->group->package->deleteAPI = '删除接口';
+$lang->group->package->callAPI = '接口调用';
+$lang->group->package->scene = '维护场景';
+$lang->group->package->executionTree = '树状图';
+$lang->group->package->taskEffort = '工时明细表';
+$lang->group->package->taskCalendar = '任务日历';
+$lang->group->package->code = '代码';
+$lang->group->package->repo = '代码库';
+$lang->group->package->browseDemandPool = '浏览需求池';
+$lang->group->package->browseCharter = '浏览立项';
+$lang->group->package->manageDemandPool = '创建维护需求池';
+$lang->group->package->manageCharter = '创建维护立项';
+$lang->group->package->reviewCharter = '立项审批';
+$lang->group->package->browseDemand = '浏览需求';
+$lang->group->package->manageDemand = '创建维护需求';
+$lang->group->package->reviewDemand = '评审需求';
+$lang->group->package->importDemand = '导入导出需求';
+$lang->group->package->deleteDemand = '删除需求';
+$lang->group->package->admin = '后台';
+$lang->group->package->browseRoadmap = '浏览产品路标';
+$lang->group->package->manageRoadmap = '创建维护产品路标';
+$lang->group->package->deleteRoadmap = '删除产品路标';
+$lang->group->package->deleteDemandPool = '删除需求池';
+$lang->group->package->exportDatatable = '导出数据表';
+$lang->group->package->ai = 'AI';
+$lang->group->package->executePrompt = '执行提词';
+$lang->group->package->manageLLM = '语言模型管理';
+$lang->group->package->browsePrompt = '浏览提词';
+$lang->group->package->managePrompt = '维护和设计提词';
+$lang->group->package->publishPrompt = '提词上下架';
+$lang->group->package->deletePrompt = '删除提词';
+$lang->group->package->dashboard = '仪表盘';
+$lang->group->package->resource = '资源';
+$lang->group->package->manageServiceProvider = '服务商管理';
+$lang->group->package->manageCity = '城市管理';
+$lang->group->package->manageCPU = 'CPU管理';
+$lang->group->package->manageOS = '系统版本管理';
+$lang->group->package->browseRepo = '浏览代码库';
+$lang->group->package->manageRepo = '创建维护代码库';
+$lang->group->package->deleteRepo = '删除代码库';
+$lang->group->package->browseCode = '浏览代码';
+$lang->group->package->manageCode = '维护代码';
+$lang->group->package->CodeIssule = '问题';
+$lang->group->package->manageCodeIssue = '创建维护代码问题';
+$lang->group->package->deleteCodeIssue = '删除代码问题';
+$lang->group->package->deleteMR = '删除合并请求';
+$lang->group->package->deleteJob = '删除流水线';
+$lang->group->package->artifactrepo = '制品库';
+$lang->group->package->browseArtifactrepo = '浏览制品库';
+$lang->group->package->manageArtifactrepo = '创建维护制品库';
+$lang->group->package->deleteArtifactrepo = '删除制品库';
+$lang->group->package->browseInstance = '浏览应用';
+$lang->group->package->browseInstance = '管理应用';
+$lang->group->package->trainPracticeLib = '实践库';
+$lang->group->package->other = '其他';
+
include (dirname(__FILE__) . '/resource.php');
diff --git a/module/group/model.php b/module/group/model.php
index c656693f34..b62f2b0925 100644
--- a/module/group/model.php
+++ b/module/group/model.php
@@ -412,36 +412,15 @@ class groupModel extends model
* @access public
* @return bool
*/
- public function updatePrivByGroup($groupID, $menu, $version)
+ public function updatePrivByGroup($groupID, $nav, $version)
{
/* Delete old. */
- /* Set priv when have version. */
- if($version)
- {
- $noCheckeds = trim($this->post->noChecked, ',');
- if($noCheckeds)
- {
- $noCheckeds = explode(',', $noCheckeds);
- foreach($noCheckeds as $noChecked)
- {
- /* Delete no checked priv*/
- list($module, $method) = explode('-', $noChecked);
- $this->dao->delete()->from(TABLE_GROUPPRIV)->where('`group`')->eq($groupID)->andWhere('module')->eq($module)->andWhere('method')->eq($method)->exec();
- }
- }
- }
- else
- {
- $privs = !empty($menu) ? $this->getPrivsListByView($menu) : array();
- $privs = !empty($menu) ? $this->getCustomPrivs($menu, $privs) : array();
- if(!empty($privs) or empty($menu))
- {
- $this->dao->delete()->from(TABLE_GROUPPRIV)
- ->where('`group`')->eq($groupID)
- ->beginIF(!empty($menu))->andWhere("CONCAT(module, '-', method)")->in(array_keys($privs))->fi()
- ->exec();
- }
- }
+ $privs = array_keys($this->getPrivListByNav($nav, $version));
+
+ $this->dao->delete()->from(TABLE_GROUPPRIV)
+ ->where('`group`')->eq($groupID)
+ ->beginIF(!empty($nav))->andWhere("CONCAT(module, '-', method)")->in($privs)->fi()
+ ->exec();
$data = new stdclass();
$data->group = $groupID;
@@ -449,66 +428,59 @@ class groupModel extends model
$data->method = 'index';
$this->dao->replace(TABLE_GROUPPRIV)->data($data)->exec();
+ $hasDepend = false;
+
/* Insert new. */
if($this->post->actions)
{
- $depentedPrivs = array();
- $privs = array();
+ $dependPrivs = array();
+ foreach($this->config->group->package as $packageCode => $packageData)
+ {
+ foreach($packageData->privs as $privCode => $priv)
+ {
+ if(isset($priv['depend'])) $dependPrivs[$privCode] = $priv['depend'];
+ }
+ }
+
+ $insertPrivs = array();
foreach($this->post->actions as $moduleName => $moduleActions)
{
if(empty($moduleName) or empty($moduleActions)) continue;
- $privList = array();
- foreach($moduleActions as $actionName) $privList["{$moduleName}-{$actionName}"] = "{$moduleName}-{$actionName}";
-
- $relationPrivs = $this->getPrivRelationsByIdList($privList, 'depend', 'idGroup');
- $depentedPrivs = array_merge($depentedPrivs, array_keys(zget($relationPrivs, 'depend', array())));
foreach($moduleActions as $actionName)
{
- $data = new stdclass();
+ $data = new stdclass();
$data->group = $groupID;
$data->module = $moduleName;
$data->method = $actionName;
- $privs[] = $data;
+
+ $insertPrivs["{$moduleName}-{$actionName}"] = $data;
}
}
- $this->insertPrivs($privs);
-
- foreach($depentedPrivs as $index => $priv)
+ foreach($insertPrivs as $key => $priv)
{
- list($module, $method) = explode('-', $priv);
-
- if(!empty($_POST['actions'][$module]) and in_array($method, $_POST['actions'][$module]))
+ foreach($dependPrivs[$key] as $depend)
{
- unset($depentedPrivs[$index]);
- continue;
+ if(isset($insertPrivs[$depend])) continue;
+
+ list($moduleName, $methodName) = explode('-', $depend);
+
+ $data = new stdclass();
+ $data->group = $groupID;
+ $data->module = $moduleName;
+ $data->method = $methodName;
+
+ $insertPrivs[$depend] = $data;
+
+ $hasDepend = true;
}
- $data = new stdclass();
- $data->group = $groupID;
- $data->module = $module;
- $data->method = $method;
- $this->dao->replace(TABLE_GROUPPRIV)->data($data)->exec();
}
- $recommendPrivs = zget($_POST, 'recommendPrivs', array());
- foreach($recommendPrivs as $moduleMethod => $priv)
- {
- list($module, $method) = explode('-', $moduleMethod);
-
- if(in_array($method, zget($_POST['actions'], $module, array())))
- {
- unset($recommendPrivs[$moduleMethod]);
- continue;
- }
- $data = new stdclass();
- $data->group = $groupID;
- $data->module = $module;
- $data->method = $method;
- $this->dao->replace(TABLE_GROUPPRIV)->data($data)->exec();
- }
+ $this->insertPrivs($insertPrivs);
}
- return !empty($depentedPrivs) ? true : false;
+
+ return $hasDepend;
}
/**
@@ -794,19 +766,21 @@ class groupModel extends model
}
/**
- * Check menu have module
+ * Check nav have module.
*
- * @param string $menu
+ * @param string $nav
* @param string $moduleName
* @access public
* @return void
*/
- public function checkMenuModule($menu, $moduleName)
+ public function checkNavModule($nav, $moduleName)
{
- if(empty($menu)) return true;
- if($menu == 'general' and (isset($this->lang->navGroup->$moduleName) or isset($this->lang->mainNav->$moduleName))) return false;
- if($menu != 'general' and !($moduleName == $menu or (isset($this->lang->navGroup->$moduleName) and $this->lang->navGroup->$moduleName == $menu))) return false;
- if($menu == 'project' and strpos('caselib|testsuite|report', $moduleName) !== false) return false;
+ if(empty($nav)) return true;
+
+ if($nav == 'general' and (isset($this->lang->navGroup->$moduleName) or isset($this->lang->mainNav->$moduleName))) return false;
+ if($nav != 'general' and !($moduleName == $nav or (isset($this->lang->navGroup->$moduleName) and $this->lang->navGroup->$moduleName == $nav))) return false;
+ if($nav == 'project' and strpos('caselib|testsuite|report', $moduleName) !== false) return false;
+
return true;
}
@@ -823,7 +797,7 @@ class groupModel extends model
$modules = array();
foreach($this->lang->resource as $moduleName => $action)
{
- if($this->checkMenuModule($menu, $moduleName))
+ if($this->checkNavModule($menu, $moduleName))
{
$modules[$moduleName] = $moduleName;
if($translateLang)
@@ -1745,62 +1719,63 @@ class groupModel extends model
}
/**
- * Get priv group by package.
+ * Get priv list by nav.
*
- * @param array $parentList
+ * @param string $nav
+ * @param string $version
* @access public
* @return array
*/
- public function getPrivByParent($parentList)
+ public function getPrivListByNav($nav = '', $version = '')
{
- return $this->dao->select('t1.*,t2.`key`,t2.value')->from(TABLE_PRIV)->alias('t1')
- ->leftJoin(TABLE_PRIVLANG)->alias('t2')->on('t1.id=t2.objectID')
- ->where('t1.parent')->in($parentList)
- ->andWhere('t1.edition')->like("%,{$this->config->edition},%")
- ->andWhere('t1.vision')->like("%,{$this->config->vision},%")
- ->andWhere('t2.`objectType`')->eq('priv')
- ->andWhere('t2.lang')->eq($this->app->getClientLang())
- ->orderBy('order_asc')
- ->fetchAll('id');
- }
+ $privList = array();
+ $allPrivs = array();
- /**
- * Get privs list by module.
- *
- * @param string $view
- * @param object $pager
- * @access public
- * @return array
- */
- public function getPrivsListByView($view = '', $pager = null)
- {
- $modules = $this->getPrivManagerPairs('module', $view);
- $modules = array_keys($modules);
+ /* Filter privs equal or greater than this version.*/
+ if($version) $versionPrivs = $this->getPrivsAfterVersion($version);
- $privs = $this->dao->select("t1.id, t1.module, t1.method, CONCAT(t1.module, '-', t1.method) AS action, IF(t3.type = 'module', 0, t1.parent) as parent, t1.order, t2.`key`, t2.`value`, t2.desc, IF(t3.type = 'module', t3.code, t4.code) as parentCode")->from(TABLE_PRIV)->alias('t1')
- ->leftJoin(TABLE_PRIVLANG)->alias('t2')->on('t1.id=t2.objectID')
- ->leftJoin(TABLE_PRIVMANAGER)->alias('t3')->on('t1.parent=t3.id')
- ->leftJoin(TABLE_PRIVMANAGER)->alias('t4')->on('t3.parent=t4.id')
- ->where('1=1')
- ->andWhere('t2.lang')->eq($this->app->getClientLang())
- ->andWhere('t2.objectType')->eq('priv')
- ->andWhere('((t3.type')->eq('package')
- ->andWhere('t4.type')->eq('module')
- ->beginIF(!empty($view) and $view != 'general')->andWhere('t4.code')->in($modules)->fi()
- ->beginIF(!empty($view) and $view == 'general')->andWhere('t4.parent')->eq('0')->fi()
- ->markRight(1)
- ->orWhere('(t3.type')->eq('module')
- ->andWhere('t4.type')->eq('view')
- ->beginIF(!empty($view) and $view != 'general')->andWhere('t3.code')->in($modules)->fi()
- ->beginIF(!empty($view) and $view == 'general')->andWhere('t3.parent')->eq('0')->fi()
- ->markRight(2)
- ->andWhere('t1.edition')->like("%,{$this->config->edition},%")
- ->andWhere('t1.vision')->like("%,{$this->config->vision},%")
- ->orderBy("t3.order asc, `order` asc")
- ->page($pager)
- ->fetchGroup('parentCode', 'action');
+ /* Privs in package. */
+ foreach($this->config->group->package as $packageCode => $packageData)
+ {
+ foreach($packageData->privs as $privCode => $priv)
+ {
+ list($moduleName, $methodName) = explode('-', $privCode);
+ $allPrivs[$privCode] = $privCode;
+
+ if(strpos(',' . $priv['edition'] . ',', ',' . $this->config->edition . ',') === false) continue;
+ if(strpos(',' . $priv['vision'] . ',', ',' . $this->config->vision . ',') === false) continue;
+
+ if(!$this->checkNavModule($nav, $moduleName)) continue;
+
+ /* If version is selected, only show privs before the version. */
+ if(!empty($version) and strpos($versionPrivs, ",$privCode,") === false) continue;
+
+ /* Remove privs unused in the edition. */
+ if(!isset($this->lang->resource->$moduleName) || !isset($this->lang->resource->$moduleName->$methodName)) continue;
+
+ $methodLang = $this->lang->resource->$moduleName->$methodName;
+ $priv = (object)array('subset' => $packageData->subset, 'package' => $packageCode, 'module' => $moduleName, 'method' => $methodName, 'selected' => false, 'name' => $this->lang->$moduleName->$methodLang);
+
+ $privList[$privCode] = $priv;
+ }
+ }
+
+ if($version || ($nav && $nav != 'general')) return $privList;
+
+ /* Privs in resource but not in package. */
+ foreach($this->lang->resource as $module => $methodList)
+ {
+ foreach($methodList as $method => $methodLang)
+ {
+ if(isset($allPrivs["$module-$method"])) continue;
+
+ if(!isset($this->lang->$module->$methodLang)) $this->app->loadLang($module);
+ $priv = (object)array('subset' => $module, 'package' => 'other', 'module' => $module, 'method' => $method, 'selected' => false, 'name' => $this->lang->$moduleName->$methodLang);
+
+ $privList["$module-$method"] = $priv;
+ }
+ }
- $privList = array(); foreach($modules as $module) $privList = array_merge($privList, zget($privs, $module, array()));
return $privList;
}
@@ -2235,45 +2210,6 @@ class groupModel extends model
foreach($data->orders as $privID => $order) $this->dao->update(TABLE_PRIV)->set('order')->eq($order)->where('id')->eq($privID)->exec();
}
- /**
- * Get priv manager pairs.
- *
- * @param string $type
- * @param string $parent
- * @access public
- * @return array
- */
- public function getPrivManagerPairs($type, $parent = '')
- {
- $parentType = $type == 'package' ? 'module' : 'view';
- $parent = !empty($parent) ? $this->dao->select('id as parent')->from(TABLE_PRIVMANAGER)->where('type')->eq($parentType)->andWhere('code')->eq($parent)->fetch('parent') : 0;
-
- $moduleLang = $type == 'module' ? $this->getMenuModules('', true) : array();
-
- $managers = $this->dao->select('t1.id,t1.code,t2.key,t2.value')
- ->from(TABLE_PRIVMANAGER)->alias('t1')
- ->leftJoin(TABLE_PRIVLANG)->alias('t2')->on('t1.id=t2.objectID')
- ->where('t1.type')->eq($type)
- ->andWhere('t2.objectType')->eq('manager')
- ->beginIF($type == 'module')->andWhere('code')->in(array_keys($moduleLang))->fi()
- ->beginIF(!empty($parent))->andWhere('t1.parent')->eq($parent)->fi()
- ->andWhere('t1.edition')->like("%,{$this->config->edition},%")
- ->andWhere('t1.vision')->like("%,{$this->config->vision},%")
- ->andWhere('t2.lang')->eq($this->app->getClientLang())
- ->orderBy('order asc')
- ->fetchAll('id');
-
- $pairs = array();
- foreach($managers as $managerID => $manager)
- {
- $key = $type == 'package' ? $managerID : $manager->code;
- if(!empty($manager->value)) $pairs[$key] = $manager->value;
- if(empty($manager->value) and $type == 'view') $pairs[$key] = $this->lang->{$manager->key}->common;
- if(empty($manager->value) and $type == 'module') $pairs[$key] = isset($moduleLang[$manager->key]) ? $moduleLang[$manager->key] : $this->lang->{$manager->key}->common;
- }
- return $pairs;
- }
-
/**
* Transform priv lang.
*
@@ -2350,7 +2286,7 @@ class groupModel extends model
foreach($methods as $method => $methodLabel)
{
if(isset($allPrivs[$module][$method])) continue;
- if(!$this->checkMenuModule($menu, $module)) continue;
+ if(!$this->checkNavModule($menu, $module)) continue;
if(!isset($this->lang->{$module}->{$methodLabel})) $this->app->loadLang($module);
if(isset($this->lang->$module->menus) and $method == 'browse') continue;
@@ -2375,69 +2311,54 @@ class groupModel extends model
/**
* Get related privs.
*
- * @param array $privList
- * @param string $type
- * @param array $excludePrivs
- * @param array $recommedSelect
+ * @param array $allPrivList
+ * @param array $selectedPrivList
+ * @param array $recommendSelect
* @access public
* @return array
*/
- public function getRelatedPrivs($privList, $type = '', $excludePrivs = array(), $recommedSelect = array())
+ public function getRelatedPrivs($allPrivList, $selectedPrivList, $recommendSelect = array())
{
- $modulePairs = $this->getPrivManagerPairs('module');
- $modules = array_keys($modulePairs);
- $privs = $this->dao->select("t1.relationPriv,t1.type,t2.parent,t2.module,t2.method,t2.`order`,t3.`key`,t3.value, IF(t4.type = 'module', t4.code, t5.code) as parentCode,CONCAT(t2.module, '-', t2.method) as moduleMethod")->from(TABLE_PRIVRELATION)->alias('t1')
- ->leftJoin(TABLE_PRIV)->alias('t2')->on("t1.relationPriv=CONCAT(t2.module, '-', t2.method)")
- ->leftJoin(TABLE_PRIVLANG)->alias('t3')->on('t2.id=t3.objectID')
- ->leftJoin(TABLE_PRIVMANAGER)->alias('t4')->on('t2.parent=t4.id')
- ->leftJoin(TABLE_PRIVMANAGER)->alias('t5')->on('t4.parent=t5.id')
- ->where('t1.priv')->in($privList)
- ->andWhere('t5.code')->in(array_keys($modulePairs))
- ->andWhere('(t1.relationPriv')->notin($privList)
-
- ->beginIF(!empty($recommedSelect))
- ->orWhere('(t1.relationPriv')->in($recommedSelect)
- ->andWhere('t1.type')->eq('recommend')->markRight(1)
- ->fi()
-
- ->markRight(1)
- ->beginIF(!empty($excludePrivs))->andWhere('t1.relationPriv')->notin($excludePrivs)->fi()
- ->beginIF(!empty($type))->andWhere('t1.type')->eq($type)->fi()
- ->andWhere('t3.objectType')->eq('priv')
- ->andWhere('t2.edition')->like("%,{$this->config->edition},%")
- ->andWhere('t2.vision')->like("%,{$this->config->vision},%")
- ->andWhere('((t4.type')->eq('package')
- ->andWhere('t5.type')->eq('module')
- ->beginIF(!empty($view) and $view != 'general')->andWhere('t5.code')->in($modules)->fi()
- ->markRight(1)
- ->orWhere('(t4.type')->eq('module')
- ->andWhere('t5.type')->eq('view')
- ->beginIF(!empty($view) and $view != 'general')->andWhere('t1.module')->in($modules)->fi()
- ->markRight(2)
- ->orderBy('t2.`order`_asc, t1.`type` desc')
- ->fetchGroup('parentCode', 'relationPriv');
-
- $relatedPrivs = array();
- foreach($modules as $module) $relatedPrivs = array_merge($relatedPrivs, zget($privs, $module, array()));
-
- $privList = empty($type) ? array('depend' => array(), 'recommend' => array()) : array($type => array());
- if(empty($relatedPrivs)) return $privList;
-
- $managerList = $this->dao->select('*')->from(TABLE_PRIVMANAGER)->fetchAll('id');
- $relatedPrivs = $this->transformPrivLang($relatedPrivs);
-
- foreach($relatedPrivs as $relatedPriv)
+ $privSubsets = array();
+ $relatedPrivs = array('depend' => array(), 'recommend' => array());
+ foreach($this->config->group->package as $packagePage => $package)
{
- $module = $managerList[$relatedPriv->parent]->type == 'package' ? $managerList[$managerList[$relatedPriv->parent]->parent]->code : $managerList[$relatedPriv->parent]->code;
- if(!isset($privList[$relatedPriv->type][$module])) $privList[$relatedPriv->type][$module] = array();
- $privList[$relatedPriv->type][$module]['title'] = $modulePairs[$module];
- $privList[$relatedPriv->type][$module]['id'] = $relatedPriv->parent;
- $privList[$relatedPriv->type][$module]['children'][] = array('title' => $relatedPriv->name, 'relationPriv' => $relatedPriv->relationPriv, 'parent' => $relatedPriv->parent, 'module' => $relatedPriv->module, 'method' => $relatedPriv->method);
+ foreach($package->privs as $privCode => $priv)
+ {
+ $privSubsets[$privCode] = $package->subset;
+
+ foreach(array('depend', 'recommend') as $type)
+ {
+ /* Show related pirvs when select. */
+ if($type == 'recommend' && in_array($privCode, $recommendSelect)) $relatedPrivs[$type][$privCode] = $privCode;
+
+ if(!in_array($privCode, $selectedPrivList) || !isset($priv[$type])) continue;
+
+ foreach($priv[$type] as $relatedPriv)
+ {
+ if(!in_array($relatedPriv, $selectedPrivList) && in_array($relatedPriv, $allPrivList)) $relatedPrivs[$type][$relatedPriv] = $relatedPriv;
+ }
+ }
+ }
}
- if(empty($type) or $type == 'depend') $privList['depend'] = array_values($privList['depend']);
- if(empty($type) or $type == 'recommend') $privList['recommend'] = array_values($privList['recommend']);
- return $privList;
+ $subsetPrivs = array('depend' => array(), 'recommend' => array());
+ foreach(array('depend', 'recommend') as $type)
+ {
+ foreach($relatedPrivs[$type] as $relatedPriv)
+ {
+ $subset = $privSubsets[$relatedPriv];
+ if(!isset($subsetPrivs[$type][$subset])) $subsetPrivs[$type][$subset] = array('id' => $subset, 'title' => $this->lang->$subset->common, 'children' => array());
+
+ list($moduleName, $methodName) = explode('-', $relatedPriv);
+ $method = $this->lang->resource->$moduleName->$methodName;
+
+ if(!isset($this->lang->$moduleName->$method)) $this->app->loadLang($moduleName);
+ $subsetPrivs[$type][$subset]['children'][] = array('id' => $relatedPriv, 'module' => $moduleName, 'method' => $methodName, 'subset' => $subset, 'title' => $this->lang->$moduleName->$method);
+ }
+ }
+
+ return array('depend' => array_values($subsetPrivs['depend']), 'recommend' => array_values($subsetPrivs['recommend']));
}
/**
@@ -2468,9 +2389,7 @@ class groupModel extends model
*/
public function getPrivListByGroup($groupID)
{
- $modulePairs = $this->getPrivManagerPairs('module');
- $modules = array_keys($modulePairs);
- $actions = $this->dao->select("CONCAT(module, '-', method) AS action")->from(TABLE_GROUPPRIV)->where('`group`')->eq($groupID)->andWhere('module')->in($modules)->fetchPairs();
+ $actions = $this->dao->select("CONCAT(module, '-', method) AS action")->from(TABLE_GROUPPRIV)->where('`group`')->eq($groupID)->fetchPairs();
$actions = implode("','", $actions);
$privIdList = $this->dao->select("*")->from(TABLE_PRIV)
->where("CONCAT(module, '-', method) IN ('$actions')")
@@ -2483,4 +2402,82 @@ class groupModel extends model
return $privs;
}
+
+ /**
+ * AJAX: Get privs by parents.
+ *
+ * @param string $selectedSubset
+ * @param string $selectedPackages
+ * @access public
+ * @return bool
+ */
+ public function getPrivByParents($selectedSubset, $selectedPackages = '')
+ {
+ $allPrivs = array();
+ $privs = array();
+
+ /* Privs in package. */
+ foreach($this->config->group->package as $packageCode => $packageData)
+ {
+ foreach($packageData->privs as $privCode => $priv)
+ {
+ list($moduleName, $methodName) = explode('-', $privCode);
+
+ /* Remove privs unused in the edition. */
+ if(!isset($this->lang->resource->$moduleName) || !isset($this->lang->resource->$moduleName->$methodName)) continue;
+
+ $allPrivs[$privCode] = $privCode;
+
+ $subset = $packageData->subset;
+ if($subset !== $selectedSubset) continue;
+
+ if($selectedPackages && strpos($selectedPackages, ",$packageCode,") === false) continue;
+
+ $methodLang = $this->lang->resource->$moduleName->$methodName;
+ if(!isset($this->lang->$moduleName->$methodLang)) $this->app->loadLang($moduleName);
+
+ $privs[$privCode] = $this->lang->$moduleName->$methodLang;
+ }
+ }
+
+ if(empty($selectedPackages) || strpos($selectedPackages, ',other,') !== false)
+ {
+ /* Privs in resource but not in package. */
+ $this->sortResource();
+ foreach($this->lang->resource as $module => $methodList)
+ {
+ foreach($methodList as $method => $methodLang)
+ {
+ if($module != $selectedSubset) continue;
+
+ if(isset($allPrivs["$module-$method"])) continue;
+
+ if(!isset($this->lang->$module->$methodLang)) $this->app->loadLang($module);
+ $privs["$module-$method"] = $this->lang->$module->$methodLang;
+ }
+ }
+ }
+
+ return $privs;
+ }
+
+ /**
+ * Get privs after version
+ *
+ * @param string $version
+ * @access public
+ * @return string
+ */
+ public function getPrivsAfterVersion($version)
+ {
+ $realVersion = str_replace('_', '.', $version);
+ $changelog = array();
+ foreach($this->lang->changelog as $currentVersion => $currentChangeLog)
+ {
+ if(version_compare($currentVersion, $realVersion, '>=')) $changelog[] = join(',', $currentChangeLog);
+ }
+ $versionPrivs = ',' . join(',', $changelog) . ',';
+
+ return $versionPrivs;
+ }
}
diff --git a/module/group/packagemanager.php b/module/group/packagemanager.php
new file mode 100644
index 0000000000..f3d1f0d339
--- /dev/null
+++ b/module/group/packagemanager.php
@@ -0,0 +1,4939 @@
+group->subset = new stdclass();
+
+$config->group->subset->my = new stdclass();
+$config->group->subset->my->edition = 'open,biz,max,ipd';
+$config->group->subset->my->vision = 'rnd,lite,or';
+$config->group->subset->my->order = 20;
+$config->group->subset->my->nav = 'my';
+
+$config->group->subset->todo = new stdclass();
+$config->group->subset->todo->edition = 'open,biz,max,ipd';
+$config->group->subset->todo->vision = 'rnd,lite,or';
+$config->group->subset->todo->order = 30;
+$config->group->subset->todo->nav = 'my';
+
+$config->group->subset->contact = new stdclass();
+$config->group->subset->contact->edition = 'open,biz,max,ipd';
+$config->group->subset->contact->vision = 'rnd,lite,or';
+$config->group->subset->contact->order = 40;
+$config->group->subset->contact->nav = 'my';
+
+$config->group->subset->personalsettings = new stdclass();
+$config->group->subset->personalsettings->edition = 'open,biz,max,ipd';
+$config->group->subset->personalsettings->vision = 'rnd,lite,or';
+$config->group->subset->personalsettings->order = 50;
+$config->group->subset->personalsettings->nav = 'my';
+
+$config->group->subset->effort = new stdclass();
+$config->group->subset->effort->edition = 'biz,max,ipd';
+$config->group->subset->effort->vision = 'rnd,lite,or';
+$config->group->subset->effort->order = 60;
+$config->group->subset->effort->nav = 'my';
+
+$config->group->subset->program = new stdclass();
+$config->group->subset->program->edition = 'open,biz,max,ipd';
+$config->group->subset->program->vision = 'rnd';
+$config->group->subset->program->order = 70;
+$config->group->subset->program->nav = 'program';
+
+$config->group->subset->personnel = new stdclass();
+$config->group->subset->personnel->edition = 'open,biz,max,ipd';
+$config->group->subset->personnel->vision = 'rnd,lite';
+$config->group->subset->personnel->order = 80;
+$config->group->subset->personnel->nav = 'program';
+
+$config->group->subset->programstakeholder = new stdclass();
+$config->group->subset->programstakeholder->edition = 'open,biz,max,ipd';
+$config->group->subset->programstakeholder->vision = 'rnd,lite,or';
+$config->group->subset->programstakeholder->order = 90;
+$config->group->subset->programstakeholder->nav = 'program';
+
+$config->group->subset->product = new stdclass();
+$config->group->subset->product->edition = 'open,biz,max,ipd';
+$config->group->subset->product->vision = 'rnd,or';
+$config->group->subset->product->order = 100;
+$config->group->subset->product->nav = 'product';
+
+$config->group->subset->story = new stdclass();
+$config->group->subset->story->edition = 'open,biz,max,ipd';
+$config->group->subset->story->vision = 'rnd,lite';
+$config->group->subset->story->order = 110;
+$config->group->subset->story->nav = 'product';
+
+$config->group->subset->requirement = new stdclass();
+$config->group->subset->requirement->edition = 'open,biz,max,ipd';
+$config->group->subset->requirement->vision = 'rnd,or';
+$config->group->subset->requirement->order = 120;
+$config->group->subset->requirement->nav = 'product';
+
+$config->group->subset->productplan = new stdclass();
+$config->group->subset->productplan->edition = 'open,biz,max,ipd';
+$config->group->subset->productplan->vision = 'rnd';
+$config->group->subset->productplan->order = 130;
+$config->group->subset->productplan->nav = 'product';
+
+$config->group->subset->release = new stdclass();
+$config->group->subset->release->edition = 'open,biz,max,ipd';
+$config->group->subset->release->vision = 'rnd';
+$config->group->subset->release->order = 140;
+$config->group->subset->release->nav = 'product';
+
+$config->group->subset->productsettings = new stdclass();
+$config->group->subset->productsettings->edition = 'open,biz,max,ipd';
+$config->group->subset->productsettings->vision = 'rnd,lite,or';
+$config->group->subset->productsettings->order = 160;
+$config->group->subset->productsettings->nav = 'product';
+
+$config->group->subset->project = new stdclass();
+$config->group->subset->project->edition = 'open,biz,max,ipd';
+$config->group->subset->project->vision = 'rnd,lite';
+$config->group->subset->project->order = 170;
+$config->group->subset->project->nav = 'project';
+
+$config->group->subset->projectplan = new stdclass();
+$config->group->subset->projectplan->edition = 'open,biz,max,ipd';
+$config->group->subset->projectplan->vision = 'rnd';
+$config->group->subset->projectplan->order = 180;
+$config->group->subset->projectplan->nav = 'project';
+
+$config->group->subset->projectstory = new stdclass();
+$config->group->subset->projectstory->edition = 'open,biz,max,ipd';
+$config->group->subset->projectstory->vision = 'rnd,lite';
+$config->group->subset->projectstory->order = 190;
+$config->group->subset->projectstory->nav = 'project';
+
+$config->group->subset->programplan = new stdclass();
+$config->group->subset->programplan->edition = 'open,biz,max,ipd';
+$config->group->subset->programplan->vision = 'rnd';
+$config->group->subset->programplan->order = 200;
+$config->group->subset->programplan->nav = 'project';
+
+$config->group->subset->design = new stdclass();
+$config->group->subset->design->edition = 'open,biz,max,ipd';
+$config->group->subset->design->vision = 'rnd';
+$config->group->subset->design->order = 210;
+$config->group->subset->design->nav = 'project';
+
+$config->group->subset->issue = new stdclass();
+$config->group->subset->issue->edition = 'max,ipd';
+$config->group->subset->issue->vision = 'rnd';
+$config->group->subset->issue->order = 230;
+$config->group->subset->issue->nav = 'project';
+
+$config->group->subset->risk = new stdclass();
+$config->group->subset->risk->edition = 'max,ipd';
+$config->group->subset->risk->vision = 'rnd';
+$config->group->subset->risk->order = 240;
+$config->group->subset->risk->nav = 'project';
+
+$config->group->subset->workestimation = new stdclass();
+$config->group->subset->workestimation->edition = 'open,biz,max,ipd';
+$config->group->subset->workestimation->vision = 'rnd,lite,or';
+$config->group->subset->workestimation->order = 260;
+$config->group->subset->workestimation->nav = 'project';
+
+$config->group->subset->opportunity = new stdclass();
+$config->group->subset->opportunity->edition = 'max,ipd';
+$config->group->subset->opportunity->vision = 'rnd';
+$config->group->subset->opportunity->order = 290;
+$config->group->subset->opportunity->nav = 'project';
+
+$config->group->subset->meeting = new stdclass();
+$config->group->subset->meeting->edition = 'max,ipd';
+$config->group->subset->meeting->vision = 'rnd';
+$config->group->subset->meeting->order = 350;
+$config->group->subset->meeting->nav = 'project';
+
+$config->group->subset->projectbuild = new stdclass();
+$config->group->subset->projectbuild->edition = 'open,biz,max,ipd';
+$config->group->subset->projectbuild->vision = 'rnd';
+$config->group->subset->projectbuild->order = 360;
+$config->group->subset->projectbuild->nav = 'project';
+
+$config->group->subset->projectrelease = new stdclass();
+$config->group->subset->projectrelease->edition = 'open,biz,max,ipd';
+$config->group->subset->projectrelease->vision = 'rnd';
+$config->group->subset->projectrelease->order = 370;
+$config->group->subset->projectrelease->nav = 'project';
+
+$config->group->subset->projectsettings = new stdclass();
+$config->group->subset->projectsettings->edition = 'open,biz,max,ipd';
+$config->group->subset->projectsettings->vision = 'rnd,lite,or';
+$config->group->subset->projectsettings->order = 390;
+$config->group->subset->projectsettings->nav = 'project';
+
+$config->group->subset->projectreview = new stdclass();
+$config->group->subset->projectreview->edition = 'open,biz,max,ipd';
+$config->group->subset->projectreview->vision = 'rnd,lite,or';
+$config->group->subset->projectreview->order = 400;
+$config->group->subset->projectreview->nav = 'project';
+
+$config->group->subset->projecttrack = new stdclass();
+$config->group->subset->projecttrack->edition = 'open,biz,max,ipd';
+$config->group->subset->projecttrack->vision = 'rnd,lite,or';
+$config->group->subset->projecttrack->order = 410;
+$config->group->subset->projecttrack->nav = 'project';
+
+$config->group->subset->projectqa = new stdclass();
+$config->group->subset->projectqa->edition = 'open,biz,max,ipd';
+$config->group->subset->projectqa->vision = 'rnd,lite,or';
+$config->group->subset->projectqa->order = 420;
+$config->group->subset->projectqa->nav = 'project';
+
+$config->group->subset->pssp = new stdclass();
+$config->group->subset->pssp->edition = 'max,ipd';
+$config->group->subset->pssp->vision = 'rnd';
+$config->group->subset->pssp->order = 430;
+$config->group->subset->pssp->nav = 'project';
+
+$config->group->subset->cm = new stdclass();
+$config->group->subset->cm->edition = 'max,ipd';
+$config->group->subset->cm->vision = 'rnd';
+$config->group->subset->cm->order = 440;
+$config->group->subset->cm->nav = 'project';
+
+$config->group->subset->measrecord = new stdclass();
+$config->group->subset->measrecord->edition = 'max,ipd';
+$config->group->subset->measrecord->vision = 'rnd';
+$config->group->subset->measrecord->order = 480;
+$config->group->subset->measrecord->nav = 'project';
+
+$config->group->subset->projectreport = new stdclass();
+$config->group->subset->projectreport->edition = 'max,ipd';
+$config->group->subset->projectreport->vision = 'rnd';
+$config->group->subset->projectreport->order = 490;
+$config->group->subset->projectreport->nav = 'project';
+
+$config->group->subset->projectresearch = new stdclass();
+$config->group->subset->projectresearch->edition = 'max,ipd';
+$config->group->subset->projectresearch->vision = 'rnd';
+$config->group->subset->projectresearch->order = 500;
+$config->group->subset->projectresearch->nav = 'project';
+
+$config->group->subset->projectauditplan = new stdclass();
+$config->group->subset->projectauditplan->edition = 'max,ipd';
+$config->group->subset->projectauditplan->vision = 'rnd';
+$config->group->subset->projectauditplan->order = 510;
+$config->group->subset->projectauditplan->nav = 'project';
+
+$config->group->subset->projectgapanalysis = new stdclass();
+$config->group->subset->projectgapanalysis->edition = 'max,ipd';
+$config->group->subset->projectgapanalysis->vision = 'rnd';
+$config->group->subset->projectgapanalysis->order = 520;
+$config->group->subset->projectgapanalysis->nav = 'project';
+
+$config->group->subset->execution = new stdclass();
+$config->group->subset->execution->edition = 'open,biz,max,ipd';
+$config->group->subset->execution->vision = 'rnd,lite';
+$config->group->subset->execution->order = 530;
+$config->group->subset->execution->nav = 'execution';
+
+$config->group->subset->task = new stdclass();
+$config->group->subset->task->edition = 'open,biz,max,ipd';
+$config->group->subset->task->vision = 'rnd,lite';
+$config->group->subset->task->order = 540;
+$config->group->subset->task->nav = 'execution';
+
+$config->group->subset->build = new stdclass();
+$config->group->subset->build->edition = 'open,biz,max,ipd';
+$config->group->subset->build->vision = 'rnd';
+$config->group->subset->build->order = 550;
+$config->group->subset->build->nav = 'execution';
+
+$config->group->subset->executionview = new stdclass();
+$config->group->subset->executionview->edition = 'open,biz,max,ipd';
+$config->group->subset->executionview->vision = 'rnd,lite,or';
+$config->group->subset->executionview->order = 560;
+$config->group->subset->executionview->nav = 'execution';
+
+$config->group->subset->executionkanban = new stdclass();
+$config->group->subset->executionkanban->edition = 'open,biz,max,ipd';
+$config->group->subset->executionkanban->vision = 'rnd,lite,or';
+$config->group->subset->executionkanban->order = 580;
+$config->group->subset->executionkanban->nav = 'execution';
+
+$config->group->subset->executionburn = new stdclass();
+$config->group->subset->executionburn->edition = 'open,biz,max,ipd';
+$config->group->subset->executionburn->vision = 'rnd,lite,or';
+$config->group->subset->executionburn->order = 590;
+$config->group->subset->executionburn->nav = 'execution';
+
+$config->group->subset->executioncfd = new stdclass();
+$config->group->subset->executioncfd->edition = 'open,biz,max,ipd';
+$config->group->subset->executioncfd->vision = 'rnd,lite,or';
+$config->group->subset->executioncfd->order = 600;
+$config->group->subset->executioncfd->nav = 'execution';
+
+$config->group->subset->executionstory = new stdclass();
+$config->group->subset->executionstory->edition = 'open,biz,max,ipd';
+$config->group->subset->executionstory->vision = 'rnd,lite,or';
+$config->group->subset->executionstory->order = 610;
+$config->group->subset->executionstory->nav = 'execution';
+
+$config->group->subset->executionqa = new stdclass();
+$config->group->subset->executionqa->edition = 'open,biz,max,ipd';
+$config->group->subset->executionqa->vision = 'rnd,lite,or';
+$config->group->subset->executionqa->order = 620;
+$config->group->subset->executionqa->nav = 'execution';
+
+$config->group->subset->executionsettings = new stdclass();
+$config->group->subset->executionsettings->edition = 'open,biz,max,ipd';
+$config->group->subset->executionsettings->vision = 'rnd,lite,or';
+$config->group->subset->executionsettings->order = 630;
+$config->group->subset->executionsettings->nav = 'execution';
+
+$config->group->subset->kanban = new stdclass();
+$config->group->subset->kanban->edition = 'open,biz,max,ipd';
+$config->group->subset->kanban->vision = 'rnd,lite';
+$config->group->subset->kanban->order = 640;
+$config->group->subset->kanban->nav = 'kanban';
+
+$config->group->subset->managespace = new stdclass();
+$config->group->subset->managespace->edition = 'open,biz,max,ipd';
+$config->group->subset->managespace->vision = 'rnd,lite,or';
+$config->group->subset->managespace->order = 650;
+$config->group->subset->managespace->nav = 'kanban';
+
+$config->group->subset->qa = new stdclass();
+$config->group->subset->qa->edition = 'open,biz,max,ipd';
+$config->group->subset->qa->vision = 'rnd';
+$config->group->subset->qa->order = 660;
+$config->group->subset->qa->nav = 'qa';
+
+$config->group->subset->bug = new stdclass();
+$config->group->subset->bug->edition = 'open,biz,max,ipd';
+$config->group->subset->bug->vision = 'rnd';
+$config->group->subset->bug->order = 670;
+$config->group->subset->bug->nav = 'qa';
+
+$config->group->subset->testcase = new stdclass();
+$config->group->subset->testcase->edition = 'open,biz,max,ipd';
+$config->group->subset->testcase->vision = 'rnd';
+$config->group->subset->testcase->order = 680;
+$config->group->subset->testcase->nav = 'qa';
+
+$config->group->subset->testtask = new stdclass();
+$config->group->subset->testtask->edition = 'open,biz,max,ipd';
+$config->group->subset->testtask->vision = 'rnd';
+$config->group->subset->testtask->order = 690;
+$config->group->subset->testtask->nav = 'qa';
+
+$config->group->subset->testsuite = new stdclass();
+$config->group->subset->testsuite->edition = 'open,biz,max,ipd';
+$config->group->subset->testsuite->vision = 'rnd';
+$config->group->subset->testsuite->order = 700;
+$config->group->subset->testsuite->nav = 'qa';
+
+$config->group->subset->testreport = new stdclass();
+$config->group->subset->testreport->edition = 'open,biz,max,ipd';
+$config->group->subset->testreport->vision = 'rnd';
+$config->group->subset->testreport->order = 710;
+$config->group->subset->testreport->nav = 'qa';
+
+$config->group->subset->zahost = new stdclass();
+$config->group->subset->zahost->edition = 'open,biz,max,ipd';
+$config->group->subset->zahost->vision = 'rnd';
+$config->group->subset->zahost->order = 720;
+$config->group->subset->zahost->nav = 'qa';
+
+$config->group->subset->zanode = new stdclass();
+$config->group->subset->zanode->edition = 'open,biz,max,ipd';
+$config->group->subset->zanode->vision = 'rnd';
+$config->group->subset->zanode->order = 730;
+$config->group->subset->zanode->nav = 'qa';
+
+$config->group->subset->caselib = new stdclass();
+$config->group->subset->caselib->edition = 'open,biz,max,ipd';
+$config->group->subset->caselib->vision = 'rnd';
+$config->group->subset->caselib->order = 740;
+$config->group->subset->caselib->nav = 'assetlib';
+
+$config->group->subset->storylib = new stdclass();
+$config->group->subset->storylib->edition = 'max,ipd';
+$config->group->subset->storylib->vision = 'rnd';
+$config->group->subset->storylib->order = 760;
+$config->group->subset->storylib->nav = 'assetlib';
+
+$config->group->subset->issuelib = new stdclass();
+$config->group->subset->issuelib->edition = 'max,ipd';
+$config->group->subset->issuelib->vision = 'rnd';
+$config->group->subset->issuelib->order = 770;
+$config->group->subset->issuelib->nav = 'assetlib';
+
+$config->group->subset->risklib = new stdclass();
+$config->group->subset->risklib->edition = 'max,ipd';
+$config->group->subset->risklib->vision = 'rnd';
+$config->group->subset->risklib->order = 780;
+$config->group->subset->risklib->nav = 'assetlib';
+
+$config->group->subset->opportunitylib = new stdclass();
+$config->group->subset->opportunitylib->edition = 'max,ipd';
+$config->group->subset->opportunitylib->vision = 'rnd';
+$config->group->subset->opportunitylib->order = 790;
+$config->group->subset->opportunitylib->nav = 'assetlib';
+
+$config->group->subset->practicelib = new stdclass();
+$config->group->subset->practicelib->edition = 'max,ipd';
+$config->group->subset->practicelib->vision = 'rnd';
+$config->group->subset->practicelib->order = 800;
+$config->group->subset->practicelib->nav = 'assetlib';
+
+$config->group->subset->componentlib = new stdclass();
+$config->group->subset->componentlib->edition = 'max,ipd';
+$config->group->subset->componentlib->vision = 'rnd';
+$config->group->subset->componentlib->order = 810;
+$config->group->subset->componentlib->nav = 'assetlib';
+
+$config->group->subset->doc = new stdclass();
+$config->group->subset->doc->edition = 'open,biz,max,ipd';
+$config->group->subset->doc->vision = 'rnd,lite,or';
+$config->group->subset->doc->order = 820;
+$config->group->subset->doc->nav = 'doc';
+
+$config->group->subset->api = new stdclass();
+$config->group->subset->api->edition = 'open,biz,max,ipd';
+$config->group->subset->api->vision = 'rnd';
+$config->group->subset->api->order = 830;
+$config->group->subset->api->nav = 'doc';
+
+$config->group->subset->screen = new stdclass();
+$config->group->subset->screen->edition = 'open,biz,max,ipd';
+$config->group->subset->screen->vision = 'rnd';
+$config->group->subset->screen->order = 840;
+$config->group->subset->screen->nav = 'bi';
+
+$config->group->subset->pivot = new stdclass();
+$config->group->subset->pivot->edition = 'open,biz,max,ipd';
+$config->group->subset->pivot->vision = 'rnd';
+$config->group->subset->pivot->order = 850;
+$config->group->subset->pivot->nav = 'bi';
+
+$config->group->subset->chart = new stdclass();
+$config->group->subset->chart->edition = 'open,biz,max,ipd';
+$config->group->subset->chart->vision = 'rnd';
+$config->group->subset->chart->order = 860;
+$config->group->subset->chart->nav = 'bi';
+
+$config->group->subset->dataview = new stdclass();
+$config->group->subset->dataview->edition = 'biz,max,ipd';
+$config->group->subset->dataview->vision = 'rnd';
+$config->group->subset->dataview->order = 870;
+$config->group->subset->dataview->nav = 'bi';
+
+$config->group->subset->dimension = new stdclass();
+$config->group->subset->dimension->edition = 'biz,max,ipd';
+$config->group->subset->dimension->vision = 'rnd';
+$config->group->subset->dimension->order = 880;
+$config->group->subset->dimension->nav = 'bi';
+
+$config->group->subset->systemteam = new stdclass();
+$config->group->subset->systemteam->edition = 'open,biz,max,ipd';
+$config->group->subset->systemteam->vision = 'rnd,lite,or';
+$config->group->subset->systemteam->order = 920;
+$config->group->subset->systemteam->nav = 'system';
+
+$config->group->subset->systemschedule = new stdclass();
+$config->group->subset->systemschedule->edition = 'open,biz,max,ipd';
+$config->group->subset->systemschedule->vision = 'rnd,lite,or';
+$config->group->subset->systemschedule->order = 930;
+$config->group->subset->systemschedule->nav = 'system';
+
+$config->group->subset->systemeffort = new stdclass();
+$config->group->subset->systemeffort->edition = 'open,biz,max,ipd';
+$config->group->subset->systemeffort->vision = 'rnd,lite,or';
+$config->group->subset->systemeffort->order = 940;
+$config->group->subset->systemeffort->nav = 'system';
+
+$config->group->subset->systemdynamic = new stdclass();
+$config->group->subset->systemdynamic->edition = 'open,biz,max,ipd';
+$config->group->subset->systemdynamic->vision = 'rnd,lite,or';
+$config->group->subset->systemdynamic->order = 950;
+$config->group->subset->systemdynamic->nav = 'system';
+
+$config->group->subset->systemcompany = new stdclass();
+$config->group->subset->systemcompany->edition = 'open,biz,max,ipd';
+$config->group->subset->systemcompany->vision = 'rnd,lite,or';
+$config->group->subset->systemcompany->order = 960;
+$config->group->subset->systemcompany->nav = 'system';
+
+$config->group->subset->dataaccess = new stdclass();
+$config->group->subset->dataaccess->edition = 'open,biz,max,ipd';
+$config->group->subset->dataaccess->vision = 'rnd,lite,or';
+$config->group->subset->dataaccess->order = 970;
+$config->group->subset->dataaccess->nav = 'system';
+
+$config->group->subset->admin = new stdclass();
+$config->group->subset->admin->edition = 'open,biz,max,ipd';
+$config->group->subset->admin->vision = 'rnd,lite,or';
+$config->group->subset->admin->order = 1010;
+$config->group->subset->admin->nav = 'admin';
+
+$config->group->subset->extension = new stdclass();
+$config->group->subset->extension->edition = 'open,biz,max,ipd';
+$config->group->subset->extension->vision = 'rnd,lite';
+$config->group->subset->extension->order = 1030;
+$config->group->subset->extension->nav = 'admin';
+
+$config->group->subset->dev = new stdclass();
+$config->group->subset->dev->edition = 'open,biz,max,ipd';
+$config->group->subset->dev->vision = 'rnd';
+$config->group->subset->dev->order = 1100;
+$config->group->subset->dev->nav = 'admin';
+
+$config->group->subset->systemsetting = new stdclass();
+$config->group->subset->systemsetting->edition = 'open,biz,max,ipd';
+$config->group->subset->systemsetting->vision = 'rnd,lite,or';
+$config->group->subset->systemsetting->order = 1180;
+$config->group->subset->systemsetting->nav = 'admin';
+
+$config->group->subset->staffmanage = new stdclass();
+$config->group->subset->staffmanage->edition = 'open,biz,max,ipd';
+$config->group->subset->staffmanage->vision = 'rnd,lite,or';
+$config->group->subset->staffmanage->order = 1190;
+$config->group->subset->staffmanage->nav = 'admin';
+
+$config->group->subset->modelconfig = new stdclass();
+$config->group->subset->modelconfig->edition = 'open,biz,max,ipd';
+$config->group->subset->modelconfig->vision = 'rnd,lite,or';
+$config->group->subset->modelconfig->order = 1200;
+$config->group->subset->modelconfig->nav = 'admin';
+
+$config->group->subset->featureconfig = new stdclass();
+$config->group->subset->featureconfig->edition = 'open,biz,max,ipd';
+$config->group->subset->featureconfig->vision = 'rnd,lite,or';
+$config->group->subset->featureconfig->order = 1210;
+$config->group->subset->featureconfig->nav = 'admin';
+
+$config->group->subset->doctemplate = new stdclass();
+$config->group->subset->doctemplate->edition = 'open,biz,max,ipd';
+$config->group->subset->doctemplate->vision = 'rnd,lite,or';
+$config->group->subset->doctemplate->order = 1220;
+$config->group->subset->doctemplate->nav = 'admin';
+
+$config->group->subset->notifysetting = new stdclass();
+$config->group->subset->notifysetting->edition = 'open,biz,max,ipd';
+$config->group->subset->notifysetting->vision = 'rnd,lite,or';
+$config->group->subset->notifysetting->order = 1230;
+$config->group->subset->notifysetting->nav = 'admin';
+
+$config->group->subset->mr = new stdclass();
+$config->group->subset->mr->edition = 'open,biz,max,ipd';
+$config->group->subset->mr->vision = 'rnd';
+$config->group->subset->mr->order = 2660;
+$config->group->subset->mr->nav = 'devops';
+
+$config->group->subset->repocode = new stdclass();
+$config->group->subset->repocode->edition = 'open,biz,max,ipd';
+$config->group->subset->repocode->vision = 'rnd';
+$config->group->subset->repocode->order = 2520;
+$config->group->subset->repocode->nav = 'devops';
+
+$config->group->subset->ci = new stdclass();
+$config->group->subset->ci->edition = 'open,biz,max,ipd';
+$config->group->subset->ci->vision = 'rnd';
+$config->group->subset->ci->order = 2740;
+$config->group->subset->ci->nav = 'devops';
+
+$config->group->subset->app = new stdclass();
+$config->group->subset->app->edition = 'open,biz,max,ipd';
+$config->group->subset->app->vision = 'rnd';
+$config->group->subset->app->order = 3000;
+$config->group->subset->app->nav = 'devops';
+
+$config->group->subset->pipeline = new stdclass();
+$config->group->subset->pipeline->edition = 'open,biz,max,ipd';
+$config->group->subset->pipeline->vision = 'rnd';
+$config->group->subset->pipeline->order = 2700;
+$config->group->subset->pipeline->nav = 'devops';
+
+$config->group->subset->repo = new stdclass();
+$config->group->subset->repo->edition = 'open,biz,max,ipd';
+$config->group->subset->repo->vision = 'rnd';
+$config->group->subset->repo->order = 2400;
+$config->group->subset->repo->nav = 'devops';
+
+$config->group->subset->search = new stdclass();
+$config->group->subset->search->edition = 'open,biz,max,ipd';
+$config->group->subset->search->vision = 'rnd,lite,or';
+$config->group->subset->search->order = 1570;
+
+$config->group->subset->tree = new stdclass();
+$config->group->subset->tree->edition = 'open,biz,max,ipd';
+$config->group->subset->tree->vision = 'rnd,lite,or';
+$config->group->subset->tree->order = 1580;
+
+$config->group->subset->file = new stdclass();
+$config->group->subset->file->edition = 'open,biz,max,ipd';
+$config->group->subset->file->vision = 'rnd,lite,or';
+$config->group->subset->file->order = 1590;
+
+$config->group->subset->workflow = new stdclass();
+$config->group->subset->workflow->edition = 'biz,max,ipd';
+$config->group->subset->workflow->vision = 'rnd,lite';
+$config->group->subset->workflow->order = 1620;
+$config->group->subset->workflow->nav = 'workflow';
+
+$config->group->subset->datatable = new stdclass();
+$config->group->subset->datatable->edition = 'open,biz,max,ipd';
+$config->group->subset->datatable->vision = 'rnd,lite';
+$config->group->subset->datatable->order = 1740;
+
+$config->group->subset->generalcomment = new stdclass();
+$config->group->subset->generalcomment->edition = 'open,biz,max,ipd';
+$config->group->subset->generalcomment->vision = 'rnd,lite,or';
+$config->group->subset->generalcomment->order = 1750;
+
+$config->group->subset->generalping = new stdclass();
+$config->group->subset->generalping->edition = 'open,biz,max,ipd';
+$config->group->subset->generalping->vision = 'rnd,lite,or';
+$config->group->subset->generalping->order = 1760;
+
+$config->group->subset->generaltemplate = new stdclass();
+$config->group->subset->generaltemplate->edition = 'open,biz,max,ipd';
+$config->group->subset->generaltemplate->vision = 'rnd,lite,or';
+$config->group->subset->generaltemplate->order = 1770;
+
+$config->group->subset->generaleffort = new stdclass();
+$config->group->subset->generaleffort->edition = 'open,biz,max,ipd';
+$config->group->subset->generaleffort->vision = 'rnd,lite,or';
+$config->group->subset->generaleffort->order = 1780;
+
+$config->group->subset->feedback = new stdclass();
+$config->group->subset->feedback->edition = 'biz,max,ipd';
+$config->group->subset->feedback->vision = 'rnd,lite';
+$config->group->subset->feedback->order = 1790;
+$config->group->subset->feedback->nav = 'feedback';
+
+$config->group->subset->faq = new stdclass();
+$config->group->subset->faq->edition = 'biz,max,ipd';
+$config->group->subset->faq->vision = 'rnd,lite';
+$config->group->subset->faq->order = 1800;
+$config->group->subset->faq->nav = 'feedback';
+
+$config->group->subset->ticket = new stdclass();
+$config->group->subset->ticket->edition = 'biz,max,ipd';
+$config->group->subset->ticket->vision = 'rnd,lite';
+$config->group->subset->ticket->order = 1810;
+$config->group->subset->ticket->nav = 'feedback';
+
+$config->group->subset->feedbackpriv = new stdclass();
+$config->group->subset->feedbackpriv->edition = 'biz,max,ipd';
+$config->group->subset->feedbackpriv->vision = 'rnd';
+$config->group->subset->feedbackpriv->order = 1820;
+$config->group->subset->feedbackpriv->nav = 'feedback';
+
+$config->group->subset->attend = new stdclass();
+$config->group->subset->attend->edition = 'biz,max,ipd';
+$config->group->subset->attend->vision = 'rnd,lite';
+$config->group->subset->attend->order = 1830;
+$config->group->subset->attend->nav = 'oa';
+
+$config->group->subset->leave = new stdclass();
+$config->group->subset->leave->edition = 'biz,max,ipd';
+$config->group->subset->leave->vision = 'rnd,lite';
+$config->group->subset->leave->order = 1840;
+$config->group->subset->leave->nav = 'oa';
+
+$config->group->subset->makeup = new stdclass();
+$config->group->subset->makeup->edition = 'biz,max,ipd';
+$config->group->subset->makeup->vision = 'rnd,lite';
+$config->group->subset->makeup->order = 1850;
+$config->group->subset->makeup->nav = 'oa';
+
+$config->group->subset->overtime = new stdclass();
+$config->group->subset->overtime->edition = 'biz,max,ipd';
+$config->group->subset->overtime->vision = 'rnd,lite';
+$config->group->subset->overtime->order = 1860;
+$config->group->subset->overtime->nav = 'oa';
+
+$config->group->subset->lieu = new stdclass();
+$config->group->subset->lieu->edition = 'biz,max,ipd';
+$config->group->subset->lieu->vision = 'rnd,lite';
+$config->group->subset->lieu->order = 1870;
+$config->group->subset->lieu->nav = 'oa';
+
+$config->group->subset->officeapproval = new stdclass();
+$config->group->subset->officeapproval->edition = 'biz,max,ipd';
+$config->group->subset->officeapproval->vision = 'rnd';
+$config->group->subset->officeapproval->order = 1880;
+$config->group->subset->officeapproval->nav = 'oa';
+
+$config->group->subset->officesetting = new stdclass();
+$config->group->subset->officesetting->edition = 'biz,max,ipd';
+$config->group->subset->officesetting->vision = 'rnd';
+$config->group->subset->officesetting->order = 1890;
+$config->group->subset->officesetting->nav = 'oa';
+
+$config->group->subset->datapermission = new stdclass();
+$config->group->subset->datapermission->edition = 'biz,max,ipd';
+$config->group->subset->datapermission->vision = 'rnd';
+$config->group->subset->datapermission->order = 1900;
+$config->group->subset->datapermission->nav = 'oa';
+
+$config->group->subset->officeexport = new stdclass();
+$config->group->subset->officeexport->edition = 'biz,max,ipd';
+$config->group->subset->officeexport->vision = 'rnd';
+$config->group->subset->officeexport->order = 1910;
+$config->group->subset->officeexport->nav = 'oa';
+
+$config->group->subset->ops = new stdclass();
+$config->group->subset->ops->edition = 'open,biz,max,ipd';
+$config->group->subset->ops->vision = 'rnd';
+$config->group->subset->ops->order = 1920;
+$config->group->subset->ops->nav = 'admin';
+
+$config->group->subset->deploy = new stdclass();
+$config->group->subset->deploy->edition = 'biz,max,ipd';
+$config->group->subset->deploy->vision = 'rnd';
+$config->group->subset->deploy->order = 3020;
+$config->group->subset->deploy->nav = 'devops';
+
+$config->group->subset->traincourse = new stdclass();
+$config->group->subset->traincourse->edition = 'biz,max,ipd';
+$config->group->subset->traincourse->vision = 'rnd';
+$config->group->subset->traincourse->order = 2000;
+$config->group->subset->traincourse->nav = 'traincourse';
+
+$config->group->subset->charter = new stdclass();
+$config->group->subset->charter->edition = 'ipd';
+$config->group->subset->charter->vision = 'or';
+$config->group->subset->charter->order = 165;
+$config->group->subset->charter->nav = 'charter';
+
+$config->group->subset->demandpool = new stdclass();
+$config->group->subset->demandpool->edition = 'ipd';
+$config->group->subset->demandpool->vision = 'or';
+$config->group->subset->demandpool->order = 55;
+$config->group->subset->demandpool->nav = 'demandpool';
+
+$config->group->subset->demand = new stdclass();
+$config->group->subset->demand->edition = 'ipd';
+$config->group->subset->demand->vision = 'or';
+$config->group->subset->demand->order = 56;
+$config->group->subset->demand->nav = 'demandpool';
+
+$config->group->subset->roadmap = new stdclass();
+$config->group->subset->roadmap->edition = 'ipd';
+$config->group->subset->roadmap->vision = 'or,rnd';
+$config->group->subset->roadmap->order = 125;
+$config->group->subset->roadmap->nav = 'product';
+
+$config->group->subset->ai = new stdclass();
+$config->group->subset->ai->edition = 'open,biz,max';
+$config->group->subset->ai->vision = 'rnd';
+$config->group->subset->ai->order = 2020;
+$config->group->subset->ai->nav = 'admin';
+
+$config->group->subset->codereview = new stdclass();
+$config->group->subset->codereview->edition = 'biz,max,ipd';
+$config->group->subset->codereview->vision = 'rnd';
+$config->group->subset->codereview->order = 2580;
+$config->group->subset->codereview->nav = 'devops';
+
+$config->group->subset->artifactrepo = new stdclass();
+$config->group->subset->artifactrepo->edition = 'open,biz,max,ipd';
+$config->group->subset->artifactrepo->vision = 'rnd';
+$config->group->subset->artifactrepo->order = 2760;
+$config->group->subset->artifactrepo->nav = 'devops';
+
+$config->group->subset->other = new stdclass();
+$config->group->subset->other->edition = 'open,biz,max,ipd';
+$config->group->subset->other->vision = 'rnd,lite,or';
+$config->group->subset->other->order = 100000;
+
+$config->group->package = new stdclass();
+
+$config->group->package->browseTodo = new stdclass();
+$config->group->package->browseTodo->edition = 'open,biz,max,ipd';
+$config->group->package->browseTodo->vision = 'rnd,lite,or';
+$config->group->package->browseTodo->order = 5;
+$config->group->package->browseTodo->subset = 'todo';
+$config->group->package->browseTodo->privs = array();
+$config->group->package->browseTodo->privs['my-todo'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 1, 'depend' => array('my-calendar', 'my-index'), 'recommend' => array('todo-view'));
+$config->group->package->browseTodo->privs['my-calendar'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 0, 'depend' => array('my-index'), 'recommend' => array('my-todo'));
+$config->group->package->browseTodo->privs['todo-view'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 5, 'depend' => array('my-calendar', 'my-index'), 'recommend' => array('my-todo'));
+$config->group->package->browseTodo->privs['todo-calendar'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 85, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->manageTodo = new stdclass();
+$config->group->package->manageTodo->edition = 'open,biz,max,ipd';
+$config->group->package->manageTodo->vision = 'rnd,lite,or';
+$config->group->package->manageTodo->order = 10;
+$config->group->package->manageTodo->subset = 'todo';
+$config->group->package->manageTodo->privs = array();
+$config->group->package->manageTodo->privs['todo-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 0, 'depend' => array('my-calendar', 'my-index', 'todo-view'), 'recommend' => array('todo-batchCreate'));
+$config->group->package->manageTodo->privs['todo-createcycle'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 1, 'depend' => array('my-calendar', 'my-index', 'todo-create', 'todo-view'), 'recommend' => array());
+$config->group->package->manageTodo->privs['todo-batchCreate'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 2, 'depend' => array('my-calendar', 'my-index', 'todo-view'), 'recommend' => array('todo-create'));
+$config->group->package->manageTodo->privs['todo-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 3, 'depend' => array('my-calendar', 'my-index', 'todo-view'), 'recommend' => array('todo-batchEdit'));
+$config->group->package->manageTodo->privs['todo-batchEdit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 4, 'depend' => array('my-calendar', 'my-index', 'todo-view'), 'recommend' => array('todo-create', 'todo-edit'));
+$config->group->package->manageTodo->privs['todo-start'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 5, 'depend' => array('my-calendar', 'my-index', 'todo-view'), 'recommend' => array('todo-activate', 'todo-close', 'todo-finish'));
+$config->group->package->manageTodo->privs['todo-finish'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 7, 'depend' => array('my-calendar', 'my-index', 'todo-view'), 'recommend' => array('todo-activate', 'todo-close'));
+$config->group->package->manageTodo->privs['todo-batchFinish'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 8, 'depend' => array('my-calendar', 'my-index', 'todo-view'), 'recommend' => array('todo-finish'));
+$config->group->package->manageTodo->privs['todo-import2Today'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 12, 'depend' => array('my-calendar', 'my-index'), 'recommend' => array());
+$config->group->package->manageTodo->privs['todo-assignTo'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 6, 'depend' => array('my-calendar', 'my-index', 'todo-view'), 'recommend' => array());
+$config->group->package->manageTodo->privs['todo-activate'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 10, 'depend' => array('my-calendar', 'my-index', 'todo-view'), 'recommend' => array('todo-close'));
+$config->group->package->manageTodo->privs['todo-close'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 9, 'depend' => array('my-calendar', 'my-index', 'todo-view'), 'recommend' => array('todo-activate'));
+$config->group->package->manageTodo->privs['todo-batchClose'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 11, 'depend' => array('my-calendar', 'my-index', 'todo-view'), 'recommend' => array());
+
+$config->group->package->deleteTodo = new stdclass();
+$config->group->package->deleteTodo->edition = 'open,biz,max,ipd';
+$config->group->package->deleteTodo->vision = 'rnd,lite,or';
+$config->group->package->deleteTodo->order = 20;
+$config->group->package->deleteTodo->subset = 'todo';
+$config->group->package->deleteTodo->privs = array();
+$config->group->package->deleteTodo->privs['todo-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 35, 'depend' => array('my-calendar', 'my-index', 'todo-view'), 'recommend' => array());
+
+$config->group->package->importTodo = new stdclass();
+$config->group->package->importTodo->edition = 'open,biz,max,ipd';
+$config->group->package->importTodo->vision = 'rnd,lite,or';
+$config->group->package->importTodo->order = 15;
+$config->group->package->importTodo->subset = 'todo';
+$config->group->package->importTodo->privs = array();
+$config->group->package->importTodo->privs['todo-export'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 40, 'depend' => array('my-calendar', 'my-index'), 'recommend' => array());
+
+$config->group->package->manageContact = new stdclass();
+$config->group->package->manageContact->edition = 'open,biz,max,ipd';
+$config->group->package->manageContact->vision = 'rnd,lite,or';
+$config->group->package->manageContact->order = 5;
+$config->group->package->manageContact->subset = 'contact';
+$config->group->package->manageContact->privs = array();
+$config->group->package->manageContact->privs['my-manageContacts'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 60, 'depend' => array(), 'recommend' => array('my-deleteContacts'));
+$config->group->package->manageContact->privs['my-deleteContacts'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 65, 'depend' => array(), 'recommend' => array('my-manageContacts'));
+
+$config->group->package->profile = new stdclass();
+$config->group->package->profile->edition = 'open,biz,max,ipd';
+$config->group->package->profile->vision = 'rnd,lite,or';
+$config->group->package->profile->order = 5;
+$config->group->package->profile->subset = 'personalsettings';
+$config->group->package->profile->privs = array();
+$config->group->package->profile->privs['my-profile'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 0, 'depend' => array('my-index'), 'recommend' => array());
+$config->group->package->profile->privs['my-uploadAvatar'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 2, 'depend' => array('my-index', 'my-profile'), 'recommend' => array());
+$config->group->package->profile->privs['my-editProfile'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 1, 'depend' => array('my-index', 'my-profile'), 'recommend' => array());
+$config->group->package->profile->privs['my-changePassword'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 3, 'depend' => array('my-index', 'my-profile'), 'recommend' => array());
+
+$config->group->package->preference = new stdclass();
+$config->group->package->preference->edition = 'open,biz,max,ipd';
+$config->group->package->preference->vision = 'rnd,lite,or';
+$config->group->package->preference->order = 10;
+$config->group->package->preference->subset = 'personalsettings';
+$config->group->package->preference->privs = array();
+$config->group->package->preference->privs['my-preference'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 40, 'depend' => array('my-index'), 'recommend' => array());
+
+$config->group->package->browseProgram = new stdclass();
+$config->group->package->browseProgram->edition = 'open,biz,max,ipd';
+$config->group->package->browseProgram->vision = 'rnd,lite,or';
+$config->group->package->browseProgram->order = 5;
+$config->group->package->browseProgram->subset = 'program';
+$config->group->package->browseProgram->privs = array();
+$config->group->package->browseProgram->privs['program-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array(), 'recommend' => array());
+$config->group->package->browseProgram->privs['program-kanban'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array(), 'recommend' => array());
+$config->group->package->browseProgram->privs['program-view'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array(), 'recommend' => array());
+$config->group->package->browseProgram->privs['program-product'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array(), 'recommend' => array());
+$config->group->package->browseProgram->privs['program-project'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->manageProgram = new stdclass();
+$config->group->package->manageProgram->edition = 'open,biz,max,ipd';
+$config->group->package->manageProgram->vision = 'rnd,lite,or';
+$config->group->package->manageProgram->order = 10;
+$config->group->package->manageProgram->subset = 'program';
+$config->group->package->manageProgram->privs = array();
+$config->group->package->manageProgram->privs['program-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 25, 'depend' => array('program-browse'), 'recommend' => array('program-edit', 'program-start', 'program-updateOrder'));
+$config->group->package->manageProgram->privs['program-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 30, 'depend' => array('program-browse'), 'recommend' => array('program-activate', 'program-close', 'program-create', 'program-start', 'program-suspend', 'program-updateOrder'));
+$config->group->package->manageProgram->privs['program-start'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 35, 'depend' => array('program-browse', 'program-view'), 'recommend' => array('program-activate', 'program-close', 'program-create', 'program-delete', 'program-edit'));
+$config->group->package->manageProgram->privs['program-suspend'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 40, 'depend' => array('program-browse', 'program-view'), 'recommend' => array('program-activate', 'program-close', 'program-create', 'program-delete', 'program-edit', 'program-start'));
+$config->group->package->manageProgram->privs['program-activate'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 45, 'depend' => array('program-browse', 'program-view'), 'recommend' => array('program-close', 'program-create', 'program-delete', 'program-edit', 'program-start'));
+$config->group->package->manageProgram->privs['program-close'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 50, 'depend' => array('program-browse', 'program-view'), 'recommend' => array('program-activate', 'program-create', 'program-delete', 'program-edit', 'program-start'));
+$config->group->package->manageProgram->privs['program-updateOrder'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 90, 'depend' => array('program-browse'), 'recommend' => array('program-create', 'program-edit'));
+
+$config->group->package->deleteProgram = new stdclass();
+$config->group->package->deleteProgram->edition = 'open,biz,max,ipd';
+$config->group->package->deleteProgram->vision = 'rnd,lite,or';
+$config->group->package->deleteProgram->order = 15;
+$config->group->package->deleteProgram->subset = 'program';
+$config->group->package->deleteProgram->privs = array();
+$config->group->package->deleteProgram->privs['program-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 55, 'depend' => array('program-browse'), 'recommend' => array('program-create'));
+
+$config->group->package->invest = new stdclass();
+$config->group->package->invest->edition = 'open,biz,max,ipd';
+$config->group->package->invest->vision = 'rnd,lite,or';
+$config->group->package->invest->order = 5;
+$config->group->package->invest->subset = 'personnel';
+$config->group->package->invest->privs = array();
+$config->group->package->invest->privs['personnel-invest'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 10, 'depend' => array('program-browse'), 'recommend' => array());
+
+$config->group->package->accessible = new stdclass();
+$config->group->package->accessible->edition = 'open,biz,max,ipd';
+$config->group->package->accessible->vision = 'rnd,lite,or';
+$config->group->package->accessible->order = 10;
+$config->group->package->accessible->subset = 'personnel';
+$config->group->package->accessible->privs = array();
+$config->group->package->accessible->privs['personnel-accessible'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 5, 'depend' => array('program-browse'), 'recommend' => array());
+
+$config->group->package->whitelist = new stdclass();
+$config->group->package->whitelist->edition = 'open,biz,max,ipd';
+$config->group->package->whitelist->vision = 'rnd,lite,or';
+$config->group->package->whitelist->order = 15;
+$config->group->package->whitelist->subset = 'personnel';
+$config->group->package->whitelist->privs = array();
+$config->group->package->whitelist->privs['program-unbindWhitelist'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 85, 'depend' => array('personnel-whitelist', 'program-browse'), 'recommend' => array('personnel-addWhitelist'));
+$config->group->package->whitelist->privs['personnel-whitelist'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 15, 'depend' => array('program-browse'), 'recommend' => array());
+$config->group->package->whitelist->privs['personnel-addWhitelist'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 20, 'depend' => array('personnel-whitelist', 'program-browse'), 'recommend' => array('program-unbindWhitelist'));
+
+$config->group->package->stakeholder = new stdclass();
+$config->group->package->stakeholder->edition = 'open,biz,max,ipd';
+$config->group->package->stakeholder->vision = 'rnd,lite,or';
+$config->group->package->stakeholder->order = 5;
+$config->group->package->stakeholder->subset = 'programstakeholder';
+$config->group->package->stakeholder->privs = array();
+$config->group->package->stakeholder->privs['program-stakeholder'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 65, 'depend' => array('program-browse'), 'recommend' => array());
+$config->group->package->stakeholder->privs['program-createStakeholder'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 70, 'depend' => array('program-browse', 'program-stakeholder'), 'recommend' => array('program-unlinkStakeholder'));
+$config->group->package->stakeholder->privs['program-unlinkStakeholder'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 75, 'depend' => array('program-browse', 'program-stakeholder'), 'recommend' => array('program-createStakeholder'));
+$config->group->package->stakeholder->privs['program-batchUnlinkStakeholders'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 80, 'depend' => array('program-browse', 'program-stakeholder'), 'recommend' => array('program-unlinkStakeholder'));
+
+$config->group->package->my = new stdclass();
+$config->group->package->my->edition = 'open,biz,max,ipd';
+$config->group->package->my->vision = 'rnd,lite,or';
+$config->group->package->my->order = 5;
+$config->group->package->my->subset = 'my';
+$config->group->package->my->privs = array();
+$config->group->package->my->privs['my-index'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 0, 'depend' => array(), 'recommend' => array('my-todo'));
+$config->group->package->my->privs['my-work'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 2, 'depend' => array('my-index'), 'recommend' => array());
+$config->group->package->my->privs['my-contribute'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 3, 'depend' => array('my-index'), 'recommend' => array());
+$config->group->package->my->privs['my-project'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 4, 'depend' => array('my-index'), 'recommend' => array());
+$config->group->package->my->privs['my-dynamic'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 6, 'depend' => array('my-index'), 'recommend' => array());
+$config->group->package->my->privs['my-score'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 70, 'depend' => array('my-index'), 'recommend' => array());
+$config->group->package->my->privs['my-execution'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 5, 'depend' => array('my-index'), 'recommend' => array());
+$config->group->package->my->privs['my-doc'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 55, 'depend' => array('my-index'), 'recommend' => array());
+$config->group->package->my->privs['my-audit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 7, 'depend' => array('my-index'), 'recommend' => array());
+$config->group->package->my->privs['my-meeting'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 8, 'depend' => array(), 'recommend' => array());
+$config->group->package->my->privs['my-review'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 9, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->browseProduct = new stdclass();
+$config->group->package->browseProduct->edition = 'open,biz,max,ipd';
+$config->group->package->browseProduct->vision = 'rnd,lite,or';
+$config->group->package->browseProduct->order = 5;
+$config->group->package->browseProduct->subset = 'product';
+$config->group->package->browseProduct->privs = array();
+$config->group->package->browseProduct->privs['product-index'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array(), 'recommend' => array('product-all', 'product-dashboard', 'product-kanban', 'product-view'));
+$config->group->package->browseProduct->privs['product-view'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 4, 'depend' => array('product-all', 'product-browse', 'product-dashboard'), 'recommend' => array('branch-manage', 'product-all', 'product-create', 'product-dashboard', 'product-dynamic', 'product-edit', 'product-kanban', 'product-whitelist'));
+$config->group->package->browseProduct->privs['product-roadmap'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('product-all', 'product-browse', 'product-dashboard'), 'recommend' => array('release-view'));
+$config->group->package->browseProduct->privs['product-track'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 6, 'depend' => array('product-browse'), 'recommend' => array('product-browse', 'product-requirement', 'requirement-view', 'story-view'));
+$config->group->package->browseProduct->privs['product-dynamic'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 7, 'depend' => array('product-browse'), 'recommend' => array('product-all', 'product-kanban', 'product-view'));
+$config->group->package->browseProduct->privs['product-project'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 8, 'depend' => array('product-browse'), 'recommend' => array('project-create'));
+$config->group->package->browseProduct->privs['product-dashboard'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 3, 'depend' => array(), 'recommend' => array('product-dynamic', 'product-roadmap'));
+$config->group->package->browseProduct->privs['product-all'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 1, 'depend' => array(), 'recommend' => array('product-create', 'product-dashboard', 'product-dynamic', 'product-edit', 'product-index', 'product-kanban', 'product-updateOrder', 'product-view'));
+$config->group->package->browseProduct->privs['product-kanban'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array(), 'recommend' => array('product-all', 'product-dashboard', 'product-dynamic', 'product-index', 'product-view'));
+
+$config->group->package->manageProductLine = new stdclass();
+$config->group->package->manageProductLine->edition = 'open,biz,max,ipd';
+$config->group->package->manageProductLine->vision = 'rnd,lite,or';
+$config->group->package->manageProductLine->order = 10;
+$config->group->package->manageProductLine->subset = 'product';
+$config->group->package->manageProductLine->privs = array();
+$config->group->package->manageProductLine->privs['product-manageLine'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 90, 'depend' => array('product-all'), 'recommend' => array('product-create', 'product-edit', 'product-updateOrder'));
+
+$config->group->package->createProduct = new stdclass();
+$config->group->package->createProduct->edition = 'open,biz,max,ipd';
+$config->group->package->createProduct->vision = 'rnd,lite,or';
+$config->group->package->createProduct->order = 15;
+$config->group->package->createProduct->subset = 'product';
+$config->group->package->createProduct->privs = array();
+$config->group->package->createProduct->privs['product-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 20, 'depend' => array('product-all'), 'recommend' => array('product-close', 'product-edit', 'product-updateOrder'));
+$config->group->package->createProduct->privs['product-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 30, 'depend' => array('product-all', 'product-view'), 'recommend' => array('product-batchEdit', 'product-close', 'product-create', 'product-updateOrder'));
+$config->group->package->createProduct->privs['product-batchEdit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 35, 'depend' => array('product-all'), 'recommend' => array('product-edit'));
+$config->group->package->createProduct->privs['product-close'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 70, 'depend' => array('product-view'), 'recommend' => array('product-create', 'product-edit'));
+$config->group->package->createProduct->privs['product-updateOrder'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 75, 'depend' => array('product-all'), 'recommend' => array('product-create', 'product-edit'));
+$config->group->package->createProduct->privs['product-activate'] = array('edition' => 'ipd', 'vision' => 'or,rnd', 'order' => 10, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->importProduct = new stdclass();
+$config->group->package->importProduct->edition = 'open,biz,max,ipd';
+$config->group->package->importProduct->vision = 'rnd,lite,or';
+$config->group->package->importProduct->order = 20;
+$config->group->package->importProduct->subset = 'product';
+$config->group->package->importProduct->privs = array();
+$config->group->package->importProduct->privs['product-export'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 100, 'depend' => array('product-all'), 'recommend' => array());
+
+$config->group->package->productWhitelist = new stdclass();
+$config->group->package->productWhitelist->edition = 'open,biz,max,ipd';
+$config->group->package->productWhitelist->vision = 'rnd,lite,or';
+$config->group->package->productWhitelist->order = 5;
+$config->group->package->productWhitelist->subset = 'productsettings';
+$config->group->package->productWhitelist->privs = array();
+$config->group->package->productWhitelist->privs['product-whitelist'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 105, 'depend' => array('product-browse'), 'recommend' => array('product-addWhitelist', 'product-unbindWhitelist', 'product-view'));
+$config->group->package->productWhitelist->privs['product-addWhitelist'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 110, 'depend' => array('product-whitelist'), 'recommend' => array('product-create'));
+$config->group->package->productWhitelist->privs['product-unbindWhitelist'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 115, 'depend' => array('product-whitelist'), 'recommend' => array('product-addWhitelist', 'product-create'));
+
+$config->group->package->branch = new stdclass();
+$config->group->package->branch->edition = 'open,biz,max,ipd';
+$config->group->package->branch->vision = 'rnd,lite,or';
+$config->group->package->branch->order = 10;
+$config->group->package->branch->subset = 'productsettings';
+$config->group->package->branch->privs = array();
+$config->group->package->branch->privs['branch-manage'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 0, 'depend' => array('product-view'), 'recommend' => array('branch-activate', 'branch-close', 'branch-create', 'branch-edit', 'branch-mergeBranch', 'branch-sort'));
+$config->group->package->branch->privs['branch-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 1, 'depend' => array('branch-manage'), 'recommend' => array('branch-activate', 'branch-batchEdit', 'branch-close', 'branch-edit', 'branch-mergeBranch', 'branch-sort'));
+$config->group->package->branch->privs['branch-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 2, 'depend' => array('branch-manage'), 'recommend' => array('branch-activate', 'branch-batchEdit', 'branch-close', 'branch-create', 'branch-mergeBranch', 'branch-sort'));
+$config->group->package->branch->privs['branch-close'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 7, 'depend' => array('branch-manage'), 'recommend' => array('branch-activate', 'branch-batchEdit', 'branch-create', 'branch-edit', 'branch-mergeBranch', 'branch-sort'));
+$config->group->package->branch->privs['branch-activate'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 4, 'depend' => array('branch-close', 'branch-manage'), 'recommend' => array('branch-create', 'branch-edit', 'branch-mergeBranch', 'branch-sort'));
+$config->group->package->branch->privs['branch-sort'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 5, 'depend' => array('branch-manage'), 'recommend' => array('branch-create', 'branch-edit'));
+$config->group->package->branch->privs['branch-batchEdit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 3, 'depend' => array('product-all'), 'recommend' => array('product-edit'));
+$config->group->package->branch->privs['branch-mergeBranch'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 6, 'depend' => array('branch-manage'), 'recommend' => array('branch-activate', 'branch-batchEdit', 'branch-close', 'branch-create', 'branch-edit', 'branch-sort'));
+
+$config->group->package->browseStory = new stdclass();
+$config->group->package->browseStory->edition = 'open,biz,max,ipd';
+$config->group->package->browseStory->vision = 'rnd,lite,or';
+$config->group->package->browseStory->order = 5;
+$config->group->package->browseStory->subset = 'story';
+$config->group->package->browseStory->privs = array();
+$config->group->package->browseStory->privs['product-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 10, 'depend' => array(), 'recommend' => array('story-report', 'story-view'));
+$config->group->package->browseStory->privs['story-view'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 30, 'depend' => array(), 'recommend' => array());
+$config->group->package->browseStory->privs['story-tasks'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 95, 'depend' => array('product-browse'), 'recommend' => array());
+$config->group->package->browseStory->privs['story-bugs'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 100, 'depend' => array('product-browse'), 'recommend' => array());
+$config->group->package->browseStory->privs['story-cases'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 105, 'depend' => array('product-browse'), 'recommend' => array());
+$config->group->package->browseStory->privs['story-report'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 110, 'depend' => array('product-browse'), 'recommend' => array());
+
+$config->group->package->manageStory = new stdclass();
+$config->group->package->manageStory->edition = 'open,biz,max,ipd';
+$config->group->package->manageStory->vision = 'rnd,lite,or';
+$config->group->package->manageStory->order = 10;
+$config->group->package->manageStory->subset = 'story';
+$config->group->package->manageStory->privs = array();
+$config->group->package->manageStory->privs['story-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 0, 'depend' => array(), 'recommend' => array('story-activate', 'story-assignTo', 'story-batchCreate', 'story-change', 'story-close', 'story-edit', 'story-linkStories', 'story-linkStory', 'story-processStoryChange', 'story-recall', 'story-relation', 'story-relieved', 'story-submitReview'));
+$config->group->package->manageStory->privs['story-batchCreate'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 1, 'depend' => array('product-browse'), 'recommend' => array('story-create'));
+$config->group->package->manageStory->privs['story-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 2, 'depend' => array('story-view'), 'recommend' => array('story-activate', 'story-assignTo', 'story-batchEdit', 'story-change', 'story-close', 'story-create', 'story-linkStories', 'story-linkStory', 'story-processStoryChange', 'story-recall', 'story-relieved', 'story-submitReview'));
+$config->group->package->manageStory->privs['story-change'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 4, 'depend' => array('story-view'), 'recommend' => array('story-activate', 'story-assignTo', 'story-close', 'story-create', 'story-edit', 'story-linkStories', 'story-linkStory', 'story-processStoryChange', 'story-recall', 'story-relieved', 'story-submitReview'));
+$config->group->package->manageStory->privs['story-submitReview'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 5, 'depend' => array('story-view'), 'recommend' => array('story-activate', 'story-assignTo', 'story-change', 'story-close', 'story-create', 'story-edit', 'story-linkStories', 'story-linkStory', 'story-processStoryChange', 'story-recall', 'story-relieved'));
+$config->group->package->manageStory->privs['story-recall'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 6, 'depend' => array('story-view'), 'recommend' => array('story-activate', 'story-assignTo', 'story-change', 'story-close', 'story-create', 'story-edit', 'story-linkStories', 'story-linkStory', 'story-processStoryChange', 'story-relieved', 'story-submitReview'));
+$config->group->package->manageStory->privs['story-close'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 7, 'depend' => array('story-view'), 'recommend' => array('story-activate', 'story-assignTo', 'story-change', 'story-create', 'story-edit', 'story-linkStories', 'story-linkStory', 'story-processStoryChange', 'story-recall', 'story-relieved', 'story-submitReview'));
+$config->group->package->manageStory->privs['story-batchClose'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 8, 'depend' => array('product-browse'), 'recommend' => array('story-close'));
+$config->group->package->manageStory->privs['story-batchChangePlan'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 9, 'depend' => array('product-browse'), 'recommend' => array('story-edit'));
+$config->group->package->manageStory->privs['story-batchChangeStage'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 10, 'depend' => array('product-browse'), 'recommend' => array('story-edit'));
+$config->group->package->manageStory->privs['story-assignTo'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 11, 'depend' => array('product-browse'), 'recommend' => array('story-activate', 'story-change', 'story-close', 'story-create', 'story-edit', 'story-linkStories', 'story-linkStory', 'story-processStoryChange', 'story-recall', 'story-relieved', 'story-submitReview'));
+$config->group->package->manageStory->privs['story-batchAssignTo'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 12, 'depend' => array('product-browse'), 'recommend' => array('story-edit'));
+$config->group->package->manageStory->privs['story-activate'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 13, 'depend' => array('story-view'), 'recommend' => array('story-assignTo', 'story-change', 'story-close', 'story-create', 'story-edit', 'story-linkStories', 'story-linkStory', 'story-processStoryChange', 'story-recall', 'story-relieved', 'story-submitReview'));
+$config->group->package->manageStory->privs['story-linkStory'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 14, 'depend' => array('story-view'), 'recommend' => array('story-activate', 'story-assignTo', 'story-change', 'story-close', 'story-create', 'story-edit', 'story-linkStories', 'story-processStoryChange', 'story-recall', 'story-relieved', 'story-submitReview'));
+$config->group->package->manageStory->privs['story-batchChangeBranch'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 15, 'depend' => array('product-browse'), 'recommend' => array('story-edit'));
+$config->group->package->manageStory->privs['story-batchChangeModule'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 16, 'depend' => array('product-browse'), 'recommend' => array('story-edit'));
+$config->group->package->manageStory->privs['story-processStoryChange'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 17, 'depend' => array('story-view'), 'recommend' => array('story-activate', 'story-assignTo', 'story-change', 'story-close', 'story-create', 'story-edit', 'story-linkStories', 'story-linkStory', 'story-recall', 'story-relieved', 'story-submitReview'));
+$config->group->package->manageStory->privs['story-linkStories'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 18, 'depend' => array('story-view'), 'recommend' => array('story-activate', 'story-assignTo', 'story-change', 'story-close', 'story-create', 'story-edit', 'story-linkStory', 'story-processStoryChange', 'story-recall', 'story-relieved', 'story-submitReview'));
+$config->group->package->manageStory->privs['story-relieved'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 20, 'depend' => array('story-view'), 'recommend' => array('story-activate', 'story-assignTo', 'story-change', 'story-close', 'story-create', 'story-edit', 'story-linkStories', 'story-linkStory', 'story-processStoryChange', 'story-recall', 'story-submitReview'));
+$config->group->package->manageStory->privs['story-batchEdit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 3, 'depend' => array('product-browse'), 'recommend' => array('story-edit'));
+$config->group->package->manageStory->privs['story-relation'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 19, 'depend' => array('story-view'), 'recommend' => array());
+
+$config->group->package->importStory = new stdclass();
+$config->group->package->importStory->edition = 'open,biz,max,ipd';
+$config->group->package->importStory->vision = 'rnd,lite,or';
+$config->group->package->importStory->order = 20;
+$config->group->package->importStory->subset = 'story';
+$config->group->package->importStory->privs = array();
+$config->group->package->importStory->privs['story-export'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 0, 'depend' => array('product-browse'), 'recommend' => array());
+$config->group->package->importStory->privs['story-import'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('product-browse', 'story-exportTemplate'), 'recommend' => array());
+$config->group->package->importStory->privs['story-exportTemplate'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('product-browse'), 'recommend' => array());
+
+$config->group->package->deleteStory = new stdclass();
+$config->group->package->deleteStory->edition = 'open,biz,max,ipd';
+$config->group->package->deleteStory->vision = 'rnd,lite,or';
+$config->group->package->deleteStory->order = 25;
+$config->group->package->deleteStory->subset = 'story';
+$config->group->package->deleteStory->privs = array();
+$config->group->package->deleteStory->privs['story-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 25, 'depend' => array('story-view'), 'recommend' => array('story-create', 'story-edit'));
+
+$config->group->package->reviewStory = new stdclass();
+$config->group->package->reviewStory->edition = 'open,biz,max,ipd';
+$config->group->package->reviewStory->vision = 'rnd,lite,or';
+$config->group->package->reviewStory->order = 15;
+$config->group->package->reviewStory->subset = 'story';
+$config->group->package->reviewStory->privs = array();
+$config->group->package->reviewStory->privs['story-review'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 40, 'depend' => array('story-view'), 'recommend' => array('story-batchReview'));
+$config->group->package->reviewStory->privs['story-batchReview'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 50, 'depend' => array('product-browse'), 'recommend' => array('story-review'));
+
+$config->group->package->deleteProduct = new stdclass();
+$config->group->package->deleteProduct->edition = 'open,biz,max,ipd';
+$config->group->package->deleteProduct->vision = 'rnd,lite,or';
+$config->group->package->deleteProduct->order = 25;
+$config->group->package->deleteProduct->subset = 'product';
+$config->group->package->deleteProduct->privs = array();
+$config->group->package->deleteProduct->privs['product-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 40, 'depend' => array('product-view'), 'recommend' => array('product-create', 'product-edit'));
+
+$config->group->package->browseRequirement = new stdclass();
+$config->group->package->browseRequirement->edition = 'open,biz,max,ipd';
+$config->group->package->browseRequirement->vision = 'rnd,lite,or';
+$config->group->package->browseRequirement->order = 5;
+$config->group->package->browseRequirement->subset = 'requirement';
+$config->group->package->browseRequirement->privs = array();
+$config->group->package->browseRequirement->privs['product-requirement'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 15, 'depend' => array('product-browse'), 'recommend' => array('requirement-report', 'requirement-view'));
+$config->group->package->browseRequirement->privs['requirement-view'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 30, 'depend' => array(), 'recommend' => array());
+$config->group->package->browseRequirement->privs['requirement-report'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 85, 'depend' => array('product-requirement'), 'recommend' => array());
+
+$config->group->package->manageRequirement = new stdclass();
+$config->group->package->manageRequirement->edition = 'open,biz,max,ipd';
+$config->group->package->manageRequirement->vision = 'rnd,lite,or';
+$config->group->package->manageRequirement->order = 10;
+$config->group->package->manageRequirement->subset = 'requirement';
+$config->group->package->manageRequirement->privs = array();
+$config->group->package->manageRequirement->privs['requirement-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 5, 'depend' => array(), 'recommend' => array('requirement-activate', 'requirement-assignTo', 'requirement-batchCreate', 'requirement-change', 'requirement-close', 'requirement-edit', 'requirement-linkRequirements', 'requirement-linkStory', 'requirement-recall', 'requirement-submitReview'));
+$config->group->package->manageRequirement->privs['requirement-batchCreate'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 10, 'depend' => array('product-requirement'), 'recommend' => array('requirement-create'));
+$config->group->package->manageRequirement->privs['requirement-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 15, 'depend' => array('requirement-view'), 'recommend' => array('requirement-activate', 'requirement-assignTo', 'requirement-batchEdit', 'requirement-change', 'requirement-close', 'requirement-create', 'requirement-linkRequirements', 'requirement-linkStory', 'requirement-recall', 'requirement-submitReview'));
+$config->group->package->manageRequirement->privs['requirement-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 25, 'depend' => array('requirement-view'), 'recommend' => array('requirement-create', 'requirement-edit'));
+$config->group->package->manageRequirement->privs['requirement-change'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 35, 'depend' => array('requirement-view'), 'recommend' => array('requirement-activate', 'requirement-assignTo', 'requirement-close', 'requirement-create', 'requirement-edit', 'requirement-linkRequirements', 'requirement-linkStory', 'requirement-recall', 'requirement-submitReview'));
+$config->group->package->manageRequirement->privs['requirement-submitReview'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 45, 'depend' => array('requirement-view'), 'recommend' => array('requirement-activate', 'requirement-assignTo', 'requirement-change', 'requirement-close', 'requirement-create', 'requirement-edit', 'requirement-linkRequirements', 'requirement-linkStory', 'requirement-recall'));
+$config->group->package->manageRequirement->privs['requirement-recall'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 55, 'depend' => array('requirement-view'), 'recommend' => array('requirement-activate', 'requirement-assignTo', 'requirement-change', 'requirement-close', 'requirement-create', 'requirement-edit', 'requirement-linkRequirements', 'requirement-linkStory', 'requirement-submitReview'));
+$config->group->package->manageRequirement->privs['requirement-close'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 60, 'depend' => array('requirement-view'), 'recommend' => array('requirement-activate', 'requirement-assignTo', 'requirement-batchClose', 'requirement-change', 'requirement-create', 'requirement-edit', 'requirement-linkRequirements', 'requirement-linkStory', 'requirement-recall', 'requirement-submitReview'));
+$config->group->package->manageRequirement->privs['requirement-batchClose'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 65, 'depend' => array('product-requirement'), 'recommend' => array('requirement-close'));
+$config->group->package->manageRequirement->privs['requirement-assignTo'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 70, 'depend' => array('requirement-view'), 'recommend' => array('requirement-activate', 'requirement-batchAssignTo', 'requirement-change', 'requirement-close', 'requirement-create', 'requirement-edit', 'requirement-linkRequirements', 'requirement-linkStory', 'requirement-recall', 'requirement-submitReview'));
+$config->group->package->manageRequirement->privs['requirement-batchAssignTo'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 75, 'depend' => array('product-requirement'), 'recommend' => array('requirement-assignTo'));
+$config->group->package->manageRequirement->privs['requirement-activate'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 80, 'depend' => array('requirement-view'), 'recommend' => array('requirement-assignTo', 'requirement-change', 'requirement-close', 'requirement-create', 'requirement-edit', 'requirement-linkRequirements', 'requirement-linkStory', 'requirement-recall', 'requirement-submitReview'));
+$config->group->package->manageRequirement->privs['requirement-linkStory'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 90, 'depend' => array('requirement-view'), 'recommend' => array('requirement-activate', 'requirement-assignTo', 'requirement-batchChangeModule', 'requirement-change', 'requirement-close', 'requirement-create', 'requirement-edit', 'requirement-linkRequirements', 'requirement-recall', 'requirement-submitReview'));
+$config->group->package->manageRequirement->privs['requirement-batchChangeBranch'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 95, 'depend' => array('product-requirement'), 'recommend' => array('requirement-edit'));
+$config->group->package->manageRequirement->privs['requirement-batchChangeModule'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 100, 'depend' => array('product-requirement'), 'recommend' => array('requirement-edit'));
+$config->group->package->manageRequirement->privs['requirement-linkRequirements'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 105, 'depend' => array('requirement-view'), 'recommend' => array('requirement-activate', 'requirement-assignTo', 'requirement-change', 'requirement-close', 'requirement-create', 'requirement-edit', 'requirement-linkStory', 'requirement-recall', 'requirement-submitReview'));
+$config->group->package->manageRequirement->privs['requirement-batchEdit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 110, 'depend' => array('product-requirement'), 'recommend' => array('requirement-edit'));
+$config->group->package->manageRequirement->privs['requirement-batchChangeRoadmap'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 125, 'depend' => array('product-requirement'), 'recommend' => array('requirement-batchCreate', 'requirement-create', 'requirement-edit'));
+$config->group->package->manageRequirement->privs['requirement-relation'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 130, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->importRequirement = new stdclass();
+$config->group->package->importRequirement->edition = 'open,biz,max,ipd';
+$config->group->package->importRequirement->vision = 'rnd,lite,or';
+$config->group->package->importRequirement->order = 20;
+$config->group->package->importRequirement->subset = 'requirement';
+$config->group->package->importRequirement->privs = array();
+$config->group->package->importRequirement->privs['requirement-export'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 20, 'depend' => array('product-requirement'), 'recommend' => array());
+$config->group->package->importRequirement->privs['requirement-import'] = array('edition' => 'max,ipd', 'vision' => 'rnd,or', 'order' => 115, 'depend' => array('product-requirement', 'requirement-exportTemplate'), 'recommend' => array());
+$config->group->package->importRequirement->privs['requirement-exportTemplate'] = array('edition' => 'max,ipd', 'vision' => 'rnd,or', 'order' => 120, 'depend' => array('product-requirement'), 'recommend' => array());
+
+$config->group->package->deleteRequirement = new stdclass();
+$config->group->package->deleteRequirement->edition = 'open,biz,max,ipd';
+$config->group->package->deleteRequirement->vision = 'rnd,lite,or';
+$config->group->package->deleteRequirement->order = 25;
+$config->group->package->deleteRequirement->subset = 'requirement';
+
+$config->group->package->reviewRequirement = new stdclass();
+$config->group->package->reviewRequirement->edition = 'open,biz,max,ipd';
+$config->group->package->reviewRequirement->vision = 'rnd,lite,or';
+$config->group->package->reviewRequirement->order = 15;
+$config->group->package->reviewRequirement->subset = 'requirement';
+$config->group->package->reviewRequirement->privs = array();
+$config->group->package->reviewRequirement->privs['requirement-review'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 40, 'depend' => array('requirement-view'), 'recommend' => array('requirement-batchReview'));
+$config->group->package->reviewRequirement->privs['requirement-batchReview'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 50, 'depend' => array('product-requirement'), 'recommend' => array('requirement-review'));
+
+$config->group->package->browseProductPlan = new stdclass();
+$config->group->package->browseProductPlan->edition = 'open,biz,max,ipd';
+$config->group->package->browseProductPlan->vision = 'rnd,lite,or';
+$config->group->package->browseProductPlan->order = 5;
+$config->group->package->browseProductPlan->subset = 'productplan';
+$config->group->package->browseProductPlan->privs = array();
+$config->group->package->browseProductPlan->privs['productplan-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('product-browse'), 'recommend' => array('productplan-create', 'productplan-edit', 'productplan-view'));
+$config->group->package->browseProductPlan->privs['productplan-view'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 25, 'depend' => array('productplan-browse'), 'recommend' => array('productplan-create', 'productplan-edit'));
+
+$config->group->package->manageProductPlan = new stdclass();
+$config->group->package->manageProductPlan->edition = 'open,biz,max,ipd';
+$config->group->package->manageProductPlan->vision = 'rnd,lite,or';
+$config->group->package->manageProductPlan->order = 10;
+$config->group->package->manageProductPlan->subset = 'productplan';
+$config->group->package->manageProductPlan->privs = array();
+$config->group->package->manageProductPlan->privs['productplan-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('productplan-browse'), 'recommend' => array('productplan-activate', 'productplan-close', 'productplan-edit', 'productplan-finish', 'productplan-linkBug', 'productplan-linkStory', 'productplan-start'));
+$config->group->package->manageProductPlan->privs['productplan-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array('productplan-view'), 'recommend' => array('productplan-activate', 'productplan-batchEdit', 'productplan-close', 'productplan-create', 'productplan-finish', 'productplan-linkBug', 'productplan-linkStory', 'productplan-start', 'productplan-unlinkBug', 'productplan-unlinkStory'));
+$config->group->package->manageProductPlan->privs['productplan-linkStory'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 30, 'depend' => array('productplan-view'), 'recommend' => array('productplan-activate', 'productplan-close', 'productplan-create', 'productplan-edit', 'productplan-finish', 'productplan-linkBug', 'productplan-start', 'productplan-unlinkBug', 'productplan-unlinkStory'));
+$config->group->package->manageProductPlan->privs['productplan-unlinkStory'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 35, 'depend' => array('productplan-view'), 'recommend' => array('productplan-activate', 'productplan-batchUnlinkStory', 'productplan-close', 'productplan-create', 'productplan-edit', 'productplan-finish', 'productplan-linkBug', 'productplan-linkStory', 'productplan-start', 'productplan-unlinkBug'));
+$config->group->package->manageProductPlan->privs['productplan-batchUnlinkStory'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 40, 'depend' => array('productplan-browse'), 'recommend' => array('productplan-unlinkStory'));
+$config->group->package->manageProductPlan->privs['productplan-linkBug'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 45, 'depend' => array('productplan-view'), 'recommend' => array('productplan-activate', 'productplan-close', 'productplan-create', 'productplan-edit', 'productplan-finish', 'productplan-linkStory', 'productplan-start', 'productplan-unlinkBug', 'productplan-unlinkStory'));
+$config->group->package->manageProductPlan->privs['productplan-unlinkBug'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 50, 'depend' => array('productplan-view'), 'recommend' => array('productplan-activate', 'productplan-batchUnlinkBug', 'productplan-close', 'productplan-create', 'productplan-edit', 'productplan-finish', 'productplan-linkBug', 'productplan-linkStory', 'productplan-start', 'productplan-unlinkStory'));
+$config->group->package->manageProductPlan->privs['productplan-batchUnlinkBug'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 55, 'depend' => array('productplan-view'), 'recommend' => array('productplan-unlinkBug'));
+$config->group->package->manageProductPlan->privs['productplan-batchEdit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 60, 'depend' => array('productplan-browse'), 'recommend' => array('productplan-edit'));
+$config->group->package->manageProductPlan->privs['productplan-start'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 65, 'depend' => array('productplan-view'), 'recommend' => array('productplan-activate', 'productplan-close', 'productplan-create', 'productplan-edit', 'productplan-finish', 'productplan-linkBug', 'productplan-linkStory', 'productplan-unlinkBug', 'productplan-unlinkStory'));
+$config->group->package->manageProductPlan->privs['productplan-finish'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 70, 'depend' => array('productplan-view'), 'recommend' => array('productplan-activate', 'productplan-close', 'productplan-create', 'productplan-edit', 'productplan-linkBug', 'productplan-linkStory', 'productplan-start', 'productplan-unlinkBug', 'productplan-unlinkStory'));
+$config->group->package->manageProductPlan->privs['productplan-close'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 75, 'depend' => array('productplan-view'), 'recommend' => array('productplan-activate', 'productplan-create', 'productplan-edit', 'productplan-finish', 'productplan-linkBug', 'productplan-linkStory', 'productplan-start', 'productplan-unlinkBug', 'productplan-unlinkStory'));
+$config->group->package->manageProductPlan->privs['productplan-activate'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 80, 'depend' => array('productplan-view'), 'recommend' => array('productplan-close', 'productplan-create', 'productplan-edit', 'productplan-finish', 'productplan-linkBug', 'productplan-linkStory', 'productplan-start', 'productplan-unlinkBug', 'productplan-unlinkStory'));
+$config->group->package->manageProductPlan->privs['productplan-batchChangeStatus'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 85, 'depend' => array('productplan-browse'), 'recommend' => array('productplan-edit'));
+
+$config->group->package->deleteProductPlan = new stdclass();
+$config->group->package->deleteProductPlan->edition = 'open,biz,max,ipd';
+$config->group->package->deleteProductPlan->vision = 'rnd,lite,or';
+$config->group->package->deleteProductPlan->order = 15;
+$config->group->package->deleteProductPlan->subset = 'productplan';
+$config->group->package->deleteProductPlan->privs = array();
+$config->group->package->deleteProductPlan->privs['productplan-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 20, 'depend' => array('productplan-view'), 'recommend' => array('productplan-create', 'productplan-edit'));
+
+$config->group->package->browseRelease = new stdclass();
+$config->group->package->browseRelease->edition = 'open,biz,max,ipd';
+$config->group->package->browseRelease->vision = 'rnd,lite,or';
+$config->group->package->browseRelease->order = 5;
+$config->group->package->browseRelease->subset = 'release';
+$config->group->package->browseRelease->privs = array();
+$config->group->package->browseRelease->privs['release-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('product-browse'), 'recommend' => array('release-view'));
+$config->group->package->browseRelease->privs['release-view'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 25, 'depend' => array('release-browse'), 'recommend' => array('product-roadmap'));
+
+$config->group->package->manageRelease = new stdclass();
+$config->group->package->manageRelease->edition = 'open,biz,max,ipd';
+$config->group->package->manageRelease->vision = 'rnd,lite,or';
+$config->group->package->manageRelease->order = 10;
+$config->group->package->manageRelease->subset = 'release';
+$config->group->package->manageRelease->privs = array();
+$config->group->package->manageRelease->privs['release-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('release-browse'), 'recommend' => array('release-changeStatus', 'release-edit', 'release-linkBug', 'release-linkStory', 'release-notify', 'release-unlinkBug', 'release-unlinkStory'));
+$config->group->package->manageRelease->privs['release-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array('release-view'), 'recommend' => array('release-changeStatus', 'release-create', 'release-linkBug', 'release-linkStory', 'release-notify', 'release-unlinkBug', 'release-unlinkStory'));
+$config->group->package->manageRelease->privs['release-linkStory'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 35, 'depend' => array('release-view'), 'recommend' => array('release-changeStatus', 'release-create', 'release-edit', 'release-linkBug', 'release-notify', 'release-unlinkBug', 'release-unlinkStory'));
+$config->group->package->manageRelease->privs['release-unlinkStory'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 40, 'depend' => array('release-view'), 'recommend' => array('release-batchUnlinkStory', 'release-changeStatus', 'release-create', 'release-edit', 'release-linkBug', 'release-linkStory', 'release-notify', 'release-unlinkBug'));
+$config->group->package->manageRelease->privs['release-batchUnlinkStory'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 45, 'depend' => array('release-view'), 'recommend' => array('release-unlinkStory'));
+$config->group->package->manageRelease->privs['release-linkBug'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 50, 'depend' => array('release-view'), 'recommend' => array('release-changeStatus', 'release-create', 'release-edit', 'release-linkStory', 'release-notify', 'release-unlinkBug', 'release-unlinkStory'));
+$config->group->package->manageRelease->privs['release-unlinkBug'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 55, 'depend' => array('release-view'), 'recommend' => array('release-batchUnlinkBug', 'release-changeStatus', 'release-create', 'release-edit', 'release-linkBug', 'release-linkStory', 'release-notify', 'release-unlinkStory'));
+$config->group->package->manageRelease->privs['release-batchUnlinkBug'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 60, 'depend' => array('release-view'), 'recommend' => array('release-unlinkBug'));
+$config->group->package->manageRelease->privs['release-changeStatus'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 65, 'depend' => array('release-view'), 'recommend' => array('release-create', 'release-edit', 'release-linkBug', 'release-linkStory', 'release-notify', 'release-unlinkBug', 'release-unlinkStory'));
+
+$config->group->package->importRelease = new stdclass();
+$config->group->package->importRelease->edition = 'open,biz,max,ipd';
+$config->group->package->importRelease->vision = 'rnd,lite,or';
+$config->group->package->importRelease->order = 20;
+$config->group->package->importRelease->subset = 'release';
+$config->group->package->importRelease->privs = array();
+$config->group->package->importRelease->privs['release-export'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 30, 'depend' => array('release-view'), 'recommend' => array());
+
+$config->group->package->deleteRelease = new stdclass();
+$config->group->package->deleteRelease->edition = 'open,biz,max,ipd';
+$config->group->package->deleteRelease->vision = 'rnd,lite,or';
+$config->group->package->deleteRelease->order = 25;
+$config->group->package->deleteRelease->subset = 'release';
+$config->group->package->deleteRelease->privs = array();
+$config->group->package->deleteRelease->privs['release-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 20, 'depend' => array('release-view'), 'recommend' => array('release-create', 'release-edit'));
+
+$config->group->package->releaseNotify = new stdclass();
+$config->group->package->releaseNotify->edition = 'open,biz,max,ipd';
+$config->group->package->releaseNotify->vision = 'rnd,lite,or';
+$config->group->package->releaseNotify->order = 15;
+$config->group->package->releaseNotify->subset = 'release';
+$config->group->package->releaseNotify->privs = array();
+$config->group->package->releaseNotify->privs['release-notify'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 70, 'depend' => array('release-view'), 'recommend' => array('release-create', 'release-edit', 'release-linkBug', 'release-linkStory', 'release-unlinkBug', 'release-unlinkStory'));
+
+$config->group->package->projectPlan = new stdclass();
+$config->group->package->projectPlan->edition = 'open,biz,max,ipd';
+$config->group->package->projectPlan->vision = 'rnd,lite,or';
+$config->group->package->projectPlan->order = 5;
+$config->group->package->projectPlan->subset = 'projectplan';
+$config->group->package->projectPlan->privs = array();
+$config->group->package->projectPlan->privs['projectplan-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array('project-index'), 'recommend' => array('projectplan-create', 'projectplan-edit'));
+$config->group->package->projectPlan->privs['projectplan-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('projectplan-browse'), 'recommend' => array('projectplan-edit'));
+$config->group->package->projectPlan->privs['projectplan-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('projectplan-browse'), 'recommend' => array('projectplan-create'));
+$config->group->package->projectPlan->privs['projectplan-view'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('projectplan-browse'), 'recommend' => array());
+
+$config->group->package->manageProjectStory = new stdclass();
+$config->group->package->manageProjectStory->edition = 'open,biz,max,ipd';
+$config->group->package->manageProjectStory->vision = 'rnd,lite,or';
+$config->group->package->manageProjectStory->order = 10;
+$config->group->package->manageProjectStory->subset = 'projectstory';
+$config->group->package->manageProjectStory->privs = array();
+$config->group->package->manageProjectStory->privs['story-batchToTask'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 130, 'depend' => array('projectstory-story'), 'recommend' => array('execution-task'));
+$config->group->package->manageProjectStory->privs['projectstory-linkStory'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 20, 'depend' => array('projectstory-story'), 'recommend' => array('projectstory-importFromLib', 'projectstory-importplanstories', 'projectstory-unlinkStory', 'story-batchToTask'));
+$config->group->package->manageProjectStory->privs['projectstory-importplanstories'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 25, 'depend' => array('projectstory-story'), 'recommend' => array('projectstory-importFromLib', 'projectstory-linkStory', 'projectstory-unlinkStory', 'story-batchToTask'));
+$config->group->package->manageProjectStory->privs['projectstory-unlinkStory'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 30, 'depend' => array('projectstory-story'), 'recommend' => array('projectstory-batchUnlinkStory', 'projectstory-importFromLib', 'projectstory-importplanstories', 'projectstory-linkStory', 'story-batchToTask'));
+$config->group->package->manageProjectStory->privs['projectstory-batchUnlinkStory'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 35, 'depend' => array('projectstory-story'), 'recommend' => array('projectstory-unlinkStory'));
+$config->group->package->manageProjectStory->privs['projectstory-importFromLib'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 40, 'depend' => array('projectstory-story'), 'recommend' => array('assetlib-story', 'assetlib-storylib', 'projectstory-batchUnlinkStory', 'projectstory-importplanstories', 'projectstory-linkStory', 'projectstory-unlinkStory', 'story-batchToTask'));
+
+$config->group->package->browseProject = new stdclass();
+$config->group->package->browseProject->edition = 'open,biz,max,ipd';
+$config->group->package->browseProject->vision = 'rnd,lite,or';
+$config->group->package->browseProject->order = 5;
+$config->group->package->browseProject->subset = 'project';
+$config->group->package->browseProject->privs = array();
+$config->group->package->browseProject->privs['project-index'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 5, 'depend' => array(), 'recommend' => array('project-browse', 'project-kanban'));
+$config->group->package->browseProject->privs['project-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 40, 'depend' => array('project-index'), 'recommend' => array('project-create', 'project-dynamic', 'project-edit', 'project-index', 'project-kanban', 'project-updateOrder', 'project-view'));
+$config->group->package->browseProject->privs['project-kanban'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 15, 'depend' => array('project-index'), 'recommend' => array('project-browse', 'project-dynamic', 'project-view'));
+$config->group->package->browseProject->privs['project-view'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 100, 'depend' => array('project-index'), 'recommend' => array('project-create', 'project-edit', 'project-group', 'project-manageProducts', 'project-team', 'stakeholder-browse'));
+$config->group->package->browseProject->privs['project-dynamic'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 125, 'depend' => array('project-index'), 'recommend' => array('project-browse', 'project-view'));
+$config->group->package->browseProject->privs['project-execution'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 160, 'depend' => array('project-index'), 'recommend' => array('execution-create'));
+
+$config->group->package->manageProject = new stdclass();
+$config->group->package->manageProject->edition = 'open,biz,max,ipd';
+$config->group->package->manageProject->vision = 'rnd,lite,or';
+$config->group->package->manageProject->order = 10;
+$config->group->package->manageProject->subset = 'project';
+$config->group->package->manageProject->privs = array();
+$config->group->package->manageProject->privs['project-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 0, 'depend' => array('project-browse'), 'recommend' => array('project-activate', 'project-close', 'project-edit', 'project-group', 'project-manageProducts', 'project-start', 'project-suspend', 'project-team', 'project-updateOrder', 'project-whitelist'));
+$config->group->package->manageProject->privs['project-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 1, 'depend' => array('project-browse'), 'recommend' => array('project-activate', 'project-batchEdit', 'project-close', 'project-create', 'project-manageProducts', 'project-start', 'project-suspend', 'project-updateOrder'));
+$config->group->package->manageProject->privs['project-batchEdit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 2, 'depend' => array('project-browse'), 'recommend' => array('project-edit'));
+$config->group->package->manageProject->privs['project-start'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 3, 'depend' => array('project-browse'), 'recommend' => array('project-activate', 'project-batchEdit', 'project-close', 'project-create', 'project-edit', 'project-suspend'));
+$config->group->package->manageProject->privs['project-suspend'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 4, 'depend' => array('project-browse'), 'recommend' => array('project-activate', 'project-batchEdit', 'project-close', 'project-create', 'project-edit', 'project-start'));
+$config->group->package->manageProject->privs['project-close'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 6, 'depend' => array('project-browse'), 'recommend' => array('project-activate', 'project-batchEdit', 'project-create', 'project-edit', 'project-start', 'project-suspend'));
+$config->group->package->manageProject->privs['project-activate'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 5, 'depend' => array('project-browse'), 'recommend' => array('project-batchEdit', 'project-close', 'project-create', 'project-edit', 'project-start', 'project-suspend'));
+$config->group->package->manageProject->privs['project-updateOrder'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 7, 'depend' => array('project-browse'), 'recommend' => array('project-create', 'project-edit'));
+$config->group->package->manageProject->privs['project-manageProducts'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 8, 'depend' => array('project-browse'), 'recommend' => array('project-create', 'project-edit'));
+$config->group->package->manageProject->privs['project-programTitle'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 9, 'depend' => array('project-browse'), 'recommend' => array('program-browse'));
+
+$config->group->package->importProject = new stdclass();
+$config->group->package->importProject->edition = 'open,biz,max,ipd';
+$config->group->package->importProject->vision = 'rnd,lite,or';
+$config->group->package->importProject->order = 15;
+$config->group->package->importProject->subset = 'project';
+$config->group->package->importProject->privs = array();
+$config->group->package->importProject->privs['project-export'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 165, 'depend' => array('project-browse'), 'recommend' => array());
+$config->group->package->importProject->privs['doc-importToPracticeLib'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 150, 'depend' => array(), 'recommend' => array());
+$config->group->package->importProject->privs['doc-importToComponentLib'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 155, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->projectTeam = new stdclass();
+$config->group->package->projectTeam->edition = 'open,biz,max,ipd';
+$config->group->package->projectTeam->vision = 'rnd,lite,or';
+$config->group->package->projectTeam->order = 15;
+$config->group->package->projectTeam->subset = 'projectsettings';
+$config->group->package->projectTeam->privs = array();
+$config->group->package->projectTeam->privs['project-group'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 0, 'depend' => array('project-index'), 'recommend' => array('project-create', 'project-createGroup', 'project-edit'));
+$config->group->package->projectTeam->privs['project-createGroup'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 1, 'depend' => array('project-group'), 'recommend' => array('project-copyGroup', 'project-editGroup', 'project-manageGroupMember', 'project-managePriv'));
+$config->group->package->projectTeam->privs['project-managePriv'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 3, 'depend' => array('project-group'), 'recommend' => array('project-copyGroup', 'project-createGroup', 'project-editGroup', 'project-manageGroupMember'));
+$config->group->package->projectTeam->privs['project-manageMembers'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 6, 'depend' => array('project-team'), 'recommend' => array('project-unlinkMember'));
+$config->group->package->projectTeam->privs['project-manageGroupMember'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 4, 'depend' => array('project-group'), 'recommend' => array('project-copyGroup', 'project-createGroup', 'project-editGroup', 'project-managePriv'));
+$config->group->package->projectTeam->privs['project-copyGroup'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 5, 'depend' => array('project-group'), 'recommend' => array('project-createGroup', 'project-editGroup', 'project-manageGroupMember', 'project-managePriv'));
+$config->group->package->projectTeam->privs['project-editGroup'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 2, 'depend' => array('project-group'), 'recommend' => array('project-copyGroup', 'project-createGroup', 'project-manageGroupMember', 'project-managePriv'));
+$config->group->package->projectTeam->privs['project-team'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 7, 'depend' => array(), 'recommend' => array('project-manageMembers', 'project-unlinkMember'));
+$config->group->package->projectTeam->privs['project-unlinkMember'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 8, 'depend' => array('project-team'), 'recommend' => array('project-manageMembers'));
+
+$config->group->package->deleteProject = new stdclass();
+$config->group->package->deleteProject->edition = 'open,biz,max,ipd';
+$config->group->package->deleteProject->vision = 'rnd,lite,or';
+$config->group->package->deleteProject->order = 20;
+$config->group->package->deleteProject->subset = 'project';
+$config->group->package->deleteProject->privs = array();
+$config->group->package->deleteProject->privs['project-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 95, 'depend' => array('project-browse'), 'recommend' => array('project-create', 'project-edit'));
+
+$config->group->package->projectWhitelist = new stdclass();
+$config->group->package->projectWhitelist->edition = 'open,biz,max,ipd';
+$config->group->package->projectWhitelist->vision = 'rnd,lite,or';
+$config->group->package->projectWhitelist->order = 10;
+$config->group->package->projectWhitelist->subset = 'projectsettings';
+$config->group->package->projectWhitelist->privs = array();
+$config->group->package->projectWhitelist->privs['project-whitelist'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 105, 'depend' => array('project-index'), 'recommend' => array('project-addWhitelist', 'project-unbindWhitelist', 'project-view'));
+$config->group->package->projectWhitelist->privs['project-addWhitelist'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 110, 'depend' => array('project-whitelist'), 'recommend' => array('project-unbindWhitelist'));
+$config->group->package->projectWhitelist->privs['project-unbindWhitelist'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 115, 'depend' => array('project-whitelist'), 'recommend' => array('project-addWhitelist'));
+
+$config->group->package->browseExecution = new stdclass();
+$config->group->package->browseExecution->edition = 'open,biz,max,ipd';
+$config->group->package->browseExecution->vision = 'rnd,lite,or';
+$config->group->package->browseExecution->order = 5;
+$config->group->package->browseExecution->subset = 'execution';
+$config->group->package->browseExecution->privs = array();
+$config->group->package->browseExecution->privs['execution-view'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 2, 'depend' => array(), 'recommend' => array('execution-all', 'execution-doc', 'execution-dynamic'));
+$config->group->package->browseExecution->privs['execution-dynamic'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 5, 'depend' => array(), 'recommend' => array('execution-all', 'execution-doc', 'execution-view'));
+$config->group->package->browseExecution->privs['execution-updateOrder'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 1, 'depend' => array('execution-all'), 'recommend' => array('execution-all', 'execution-doc', 'execution-dynamic', 'execution-view'));
+$config->group->package->browseExecution->privs['execution-all'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 0, 'depend' => array(), 'recommend' => array('execution-create', 'execution-doc', 'execution-dynamic', 'execution-edit', 'execution-updateOrder', 'execution-view'));
+$config->group->package->browseExecution->privs['execution-doc'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 4, 'depend' => array(), 'recommend' => array('execution-all', 'execution-dynamic', 'execution-view'));
+$config->group->package->browseExecution->privs['execution-effortCalendar'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->manageExecution = new stdclass();
+$config->group->package->manageExecution->edition = 'open,biz,max,ipd';
+$config->group->package->manageExecution->vision = 'rnd,lite,or';
+$config->group->package->manageExecution->order = 10;
+$config->group->package->manageExecution->subset = 'execution';
+$config->group->package->manageExecution->privs = array();
+$config->group->package->manageExecution->privs['execution-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 0, 'depend' => array('execution-all'), 'recommend' => array('execution-activate', 'execution-close', 'execution-edit', 'execution-manageProducts', 'execution-putoff', 'execution-start', 'execution-suspend'));
+$config->group->package->manageExecution->privs['execution-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 2, 'depend' => array('execution-all'), 'recommend' => array('execution-activate', 'execution-batchedit', 'execution-close', 'execution-create', 'execution-manageProducts', 'execution-putoff', 'execution-start', 'execution-suspend'));
+$config->group->package->manageExecution->privs['execution-batchedit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 3, 'depend' => array('execution-all'), 'recommend' => array('execution-edit'));
+$config->group->package->manageExecution->privs['execution-batchchangestatus'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('execution-all'), 'recommend' => array('execution-edit'));
+$config->group->package->manageExecution->privs['execution-start'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 5, 'depend' => array('execution-all'), 'recommend' => array('execution-activate', 'execution-close', 'execution-create', 'execution-edit', 'execution-putoff', 'execution-suspend'));
+$config->group->package->manageExecution->privs['execution-activate'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 6, 'depend' => array('execution-all'), 'recommend' => array('execution-close', 'execution-create', 'execution-edit', 'execution-putoff', 'execution-start', 'execution-suspend'));
+$config->group->package->manageExecution->privs['execution-putoff'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 7, 'depend' => array('execution-all'), 'recommend' => array('execution-activate', 'execution-close', 'execution-create', 'execution-edit', 'execution-start', 'execution-suspend'));
+$config->group->package->manageExecution->privs['execution-suspend'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 8, 'depend' => array('execution-all'), 'recommend' => array('execution-activate', 'execution-close', 'execution-create', 'execution-edit', 'execution-putoff', 'execution-start'));
+$config->group->package->manageExecution->privs['execution-close'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 9, 'depend' => array('execution-all'), 'recommend' => array('execution-activate', 'execution-create', 'execution-edit', 'execution-putoff', 'execution-start', 'execution-suspend'));
+$config->group->package->manageExecution->privs['execution-manageProducts'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('execution-all'), 'recommend' => array('execution-create', 'execution-edit'));
+
+$config->group->package->deleteExecution = new stdclass();
+$config->group->package->deleteExecution->edition = 'open,biz,max,ipd';
+$config->group->package->deleteExecution->vision = 'rnd,lite,or';
+$config->group->package->deleteExecution->order = 20;
+$config->group->package->deleteExecution->subset = 'execution';
+$config->group->package->deleteExecution->privs = array();
+$config->group->package->deleteExecution->privs['execution-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 60, 'depend' => array('execution-all'), 'recommend' => array('execution-create', 'execution-edit'));
+
+$config->group->package->importExecution = new stdclass();
+$config->group->package->importExecution->edition = 'open,biz,max,ipd';
+$config->group->package->importExecution->vision = 'rnd,lite,or';
+$config->group->package->importExecution->order = 15;
+$config->group->package->importExecution->subset = 'execution';
+$config->group->package->importExecution->privs = array();
+$config->group->package->importExecution->privs['execution-export'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 225, 'depend' => array('execution-all'), 'recommend' => array());
+$config->group->package->importExecution->privs['doc-execution2export'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 145, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->executionWhitelist = new stdclass();
+$config->group->package->executionWhitelist->edition = 'open,biz,max,ipd';
+$config->group->package->executionWhitelist->vision = 'rnd,lite,or';
+$config->group->package->executionWhitelist->order = 10;
+$config->group->package->executionWhitelist->subset = 'executionsettings';
+$config->group->package->executionWhitelist->privs = array();
+$config->group->package->executionWhitelist->privs['execution-whitelist'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 240, 'depend' => array(), 'recommend' => array('execution-addWhitelist', 'execution-unbindWhitelist'));
+$config->group->package->executionWhitelist->privs['execution-addWhitelist'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 245, 'depend' => array('execution-whitelist'), 'recommend' => array('execution-unbindWhitelist'));
+$config->group->package->executionWhitelist->privs['execution-unbindWhitelist'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 250, 'depend' => array('execution-whitelist'), 'recommend' => array('execution-addWhitelist'));
+
+$config->group->package->gantt = new stdclass();
+$config->group->package->gantt->edition = 'open,biz,max,ipd';
+$config->group->package->gantt->vision = 'rnd,lite,or';
+$config->group->package->gantt->order = 5;
+$config->group->package->gantt->subset = 'executionview';
+$config->group->package->gantt->privs = array();
+$config->group->package->gantt->privs['execution-gantt'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 0, 'depend' => array(), 'recommend' => array('execution-calendar', 'execution-ganttEdit', 'execution-ganttsetting', 'execution-grouptask', 'execution-taskEffort', 'execution-tree'));
+$config->group->package->gantt->privs['execution-ganttsetting'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('execution-gantt'), 'recommend' => array());
+$config->group->package->gantt->privs['execution-ganttEdit'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('execution-gantt'), 'recommend' => array());
+
+$config->group->package->browseTask = new stdclass();
+$config->group->package->browseTask->edition = 'open,biz,max,ipd';
+$config->group->package->browseTask->vision = 'rnd,lite,or';
+$config->group->package->browseTask->order = 5;
+$config->group->package->browseTask->subset = 'task';
+$config->group->package->browseTask->privs = array();
+$config->group->package->browseTask->privs['execution-task'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 65, 'depend' => array(), 'recommend' => array('task-create', 'task-report', 'task-view'));
+$config->group->package->browseTask->privs['task-view'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 80, 'depend' => array('execution-task'), 'recommend' => array('task-activate', 'task-assignTo', 'task-cancel', 'task-close', 'task-create', 'task-edit', 'task-finish', 'task-pause', 'task-restart', 'task-start'));
+$config->group->package->browseTask->privs['task-report'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 110, 'depend' => array('execution-task'), 'recommend' => array());
+
+$config->group->package->manageTask = new stdclass();
+$config->group->package->manageTask->edition = 'open,biz,max,ipd';
+$config->group->package->manageTask->vision = 'rnd,lite,or';
+$config->group->package->manageTask->order = 10;
+$config->group->package->manageTask->subset = 'task';
+$config->group->package->manageTask->privs = array();
+$config->group->package->manageTask->privs['execution-importtask'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 15, 'depend' => array('execution-task'), 'recommend' => array('task-create', 'task-edit'));
+$config->group->package->manageTask->privs['execution-importplanstories'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 16, 'depend' => array('execution-task'), 'recommend' => array('task-create', 'task-edit'));
+$config->group->package->manageTask->privs['execution-importBug'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 17, 'depend' => array('execution-task'), 'recommend' => array('task-create', 'task-edit'));
+$config->group->package->manageTask->privs['task-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 0, 'depend' => array('execution-task'), 'recommend' => array('execution-importBug', 'execution-importplanstories', 'task-activate', 'task-assignTo', 'task-batchCreate', 'task-cancel', 'task-close', 'task-edit', 'task-finish', 'task-pause', 'task-restart', 'task-start'));
+$config->group->package->manageTask->privs['task-batchCreate'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 1, 'depend' => array('execution-task'), 'recommend' => array('task-create'));
+$config->group->package->manageTask->privs['task-batchEdit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 3, 'depend' => array('execution-task'), 'recommend' => array('task-edit'));
+$config->group->package->manageTask->privs['task-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 2, 'depend' => array('execution-task'), 'recommend' => array('task-activate', 'task-assignTo', 'task-batchChangeModule', 'task-batchEdit', 'task-cancel', 'task-close', 'task-confirmdesignchange', 'task-confirmStoryChange', 'task-create', 'task-finish', 'task-pause', 'task-restart', 'task-start'));
+$config->group->package->manageTask->privs['task-assignTo'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 4, 'depend' => array('execution-task'), 'recommend' => array('task-activate', 'task-batchAssignTo', 'task-cancel', 'task-close', 'task-create', 'task-edit', 'task-finish', 'task-pause', 'task-restart', 'task-start'));
+$config->group->package->manageTask->privs['task-batchAssignTo'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 5, 'depend' => array('execution-task'), 'recommend' => array('task-assignTo'));
+$config->group->package->manageTask->privs['task-start'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 6, 'depend' => array('execution-task'), 'recommend' => array('task-activate', 'task-assignTo', 'task-cancel', 'task-close', 'task-create', 'task-edit', 'task-finish', 'task-pause', 'task-restart'));
+$config->group->package->manageTask->privs['task-pause'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 7, 'depend' => array('execution-task'), 'recommend' => array('task-activate', 'task-assignTo', 'task-cancel', 'task-close', 'task-create', 'task-edit', 'task-finish', 'task-restart', 'task-start'));
+$config->group->package->manageTask->privs['task-restart'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 8, 'depend' => array('execution-task'), 'recommend' => array('task-activate', 'task-assignTo', 'task-cancel', 'task-close', 'task-create', 'task-edit', 'task-finish', 'task-pause', 'task-start'));
+$config->group->package->manageTask->privs['task-finish'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 9, 'depend' => array('execution-task'), 'recommend' => array('task-activate', 'task-assignTo', 'task-cancel', 'task-close', 'task-create', 'task-edit', 'task-pause', 'task-restart', 'task-start'));
+$config->group->package->manageTask->privs['task-cancel'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 10, 'depend' => array('execution-task'), 'recommend' => array('task-activate', 'task-assignTo', 'task-batchCancel', 'task-close', 'task-create', 'task-edit', 'task-finish', 'task-pause', 'task-restart', 'task-start'));
+$config->group->package->manageTask->privs['task-close'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 12, 'depend' => array('execution-task'), 'recommend' => array('task-activate', 'task-assignTo', 'task-batchClose', 'task-cancel', 'task-create', 'task-edit', 'task-finish', 'task-pause', 'task-restart', 'task-start'));
+$config->group->package->manageTask->privs['task-batchClose'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 13, 'depend' => array('execution-task'), 'recommend' => array('task-close', 'task-deleteEstimate', 'task-editEstimate'));
+$config->group->package->manageTask->privs['task-activate'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 14, 'depend' => array('execution-task'), 'recommend' => array('task-assignTo', 'task-cancel', 'task-close', 'task-create', 'task-edit', 'task-finish', 'task-pause', 'task-restart', 'task-start'));
+$config->group->package->manageTask->privs['task-confirmStoryChange'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 18, 'depend' => array('execution-task'), 'recommend' => array('task-edit'));
+$config->group->package->manageTask->privs['task-recordEstimate'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 20, 'depend' => array('execution-task'), 'recommend' => array('task-deleteEstimate', 'task-editEstimate'));
+$config->group->package->manageTask->privs['task-editEstimate'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 21, 'depend' => array('execution-task', 'task-recordEstimate'), 'recommend' => array('task-deleteEstimate'));
+$config->group->package->manageTask->privs['task-deleteEstimate'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 22, 'depend' => array('execution-task', 'task-recordEstimate'), 'recommend' => array('task-editEstimate'));
+$config->group->package->manageTask->privs['task-batchChangeModule'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 23, 'depend' => array('execution-task'), 'recommend' => array('task-edit'));
+$config->group->package->manageTask->privs['task-batchCancel'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 11, 'depend' => array('execution-task'), 'recommend' => array('task-cancel'));
+$config->group->package->manageTask->privs['task-confirmdesignchange'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 19, 'depend' => array('execution-task'), 'recommend' => array('task-edit'));
+
+$config->group->package->deleteTask = new stdclass();
+$config->group->package->deleteTask->edition = 'open,biz,max,ipd';
+$config->group->package->deleteTask->vision = 'rnd,lite,or';
+$config->group->package->deleteTask->order = 20;
+$config->group->package->deleteTask->subset = 'task';
+$config->group->package->deleteTask->privs = array();
+$config->group->package->deleteTask->privs['task-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 75, 'depend' => array('execution-task'), 'recommend' => array('task-create', 'task-edit'));
+
+$config->group->package->importTask = new stdclass();
+$config->group->package->importTask->edition = 'open,biz,max,ipd';
+$config->group->package->importTask->vision = 'rnd,lite,or';
+$config->group->package->importTask->order = 15;
+$config->group->package->importTask->subset = 'task';
+$config->group->package->importTask->privs = array();
+$config->group->package->importTask->privs['task-export'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 0, 'depend' => array('execution-task'), 'recommend' => array());
+$config->group->package->importTask->privs['task-import'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 2, 'depend' => array('execution-task', 'task-exportTemplate'), 'recommend' => array());
+$config->group->package->importTask->privs['task-exportTemplate'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 1, 'depend' => array('execution-task'), 'recommend' => array('task-import'));
+
+$config->group->package->executionTeam = new stdclass();
+$config->group->package->executionTeam->edition = 'open,biz,max,ipd';
+$config->group->package->executionTeam->vision = 'rnd,lite,or';
+$config->group->package->executionTeam->order = 5;
+$config->group->package->executionTeam->subset = 'executionsettings';
+$config->group->package->executionTeam->privs = array();
+$config->group->package->executionTeam->privs['execution-team'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 0, 'depend' => array(), 'recommend' => array('execution-manageMembers', 'execution-unlinkMember'));
+$config->group->package->executionTeam->privs['execution-manageMembers'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 1, 'depend' => array('execution-team'), 'recommend' => array('execution-unlinkMember'));
+$config->group->package->executionTeam->privs['execution-unlinkMember'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 2, 'depend' => array('execution-team'), 'recommend' => array('execution-manageMembers'));
+
+$config->group->package->kanban = new stdclass();
+$config->group->package->kanban->edition = 'open,biz,max,ipd';
+$config->group->package->kanban->vision = 'rnd,lite,or';
+$config->group->package->kanban->order = 5;
+$config->group->package->kanban->subset = 'executionkanban';
+$config->group->package->kanban->privs = array();
+$config->group->package->kanban->privs['execution-taskKanban'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 2, 'depend' => array('execution-executionkanban'), 'recommend' => array('execution-executionkanban', 'execution-setKanban'));
+$config->group->package->kanban->privs['execution-printKanban'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('execution-executionkanban'), 'recommend' => array());
+$config->group->package->kanban->privs['execution-executionkanban'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array(), 'recommend' => array('execution-setKanban'));
+$config->group->package->kanban->privs['execution-kanban'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 1, 'depend' => array('execution-executionkanban'), 'recommend' => array('execution-executionkanban', 'execution-setKanban'));
+$config->group->package->kanban->privs['execution-setKanban'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('execution-executionkanban'), 'recommend' => array());
+
+$config->group->package->groupView = new stdclass();
+$config->group->package->groupView->edition = 'open,biz,max,ipd';
+$config->group->package->groupView->vision = 'rnd,lite,or';
+$config->group->package->groupView->order = 15;
+$config->group->package->groupView->subset = 'executionview';
+$config->group->package->groupView->privs = array();
+$config->group->package->groupView->privs['execution-grouptask'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 0, 'depend' => array(), 'recommend' => array('execution-calendar', 'execution-gantt', 'execution-taskEffort', 'execution-tree'));
+
+$config->group->package->burndown = new stdclass();
+$config->group->package->burndown->edition = 'open,biz,max,ipd';
+$config->group->package->burndown->vision = 'rnd,lite,or';
+$config->group->package->burndown->order = 5;
+$config->group->package->burndown->subset = 'executionburn';
+$config->group->package->burndown->privs = array();
+$config->group->package->burndown->privs['execution-burn'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 120, 'depend' => array(), 'recommend' => array('execution-computeBurn', 'execution-fixFirst'));
+$config->group->package->burndown->privs['execution-computeBurn'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 125, 'depend' => array('execution-burn'), 'recommend' => array('execution-fixFirst'));
+$config->group->package->burndown->privs['execution-fixFirst'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 140, 'depend' => array('execution-burn'), 'recommend' => array('execution-computeBurn'));
+
+$config->group->package->cfd = new stdclass();
+$config->group->package->cfd->edition = 'open,biz,max,ipd';
+$config->group->package->cfd->vision = 'rnd,lite,or';
+$config->group->package->cfd->order = 5;
+$config->group->package->cfd->subset = 'executioncfd';
+$config->group->package->cfd->privs = array();
+$config->group->package->cfd->privs['execution-cfd'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 130, 'depend' => array(), 'recommend' => array('execution-computeCFD'));
+$config->group->package->cfd->privs['execution-computeCFD'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 135, 'depend' => array('execution-cfd'), 'recommend' => array());
+
+$config->group->package->manageExecutionStory = new stdclass();
+$config->group->package->manageExecutionStory->edition = 'open,biz,max,ipd';
+$config->group->package->manageExecutionStory->vision = 'rnd,lite,or';
+$config->group->package->manageExecutionStory->order = 10;
+$config->group->package->manageExecutionStory->subset = 'executionstory';
+$config->group->package->manageExecutionStory->privs = array();
+$config->group->package->manageExecutionStory->privs['execution-linkStory'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 3, 'depend' => array('execution-story'), 'recommend' => array('execution-storyEstimate', 'execution-storyKanban', 'execution-storySort', 'execution-storyView', 'execution-unlinkStory'));
+$config->group->package->manageExecutionStory->privs['execution-unlinkStory'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 4, 'depend' => array('execution-story'), 'recommend' => array('execution-linkStory', 'execution-storyEstimate', 'execution-storyKanban', 'execution-storySort', 'execution-storyView'));
+$config->group->package->manageExecutionStory->privs['execution-batchUnlinkStory'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 5, 'depend' => array('execution-story'), 'recommend' => array('execution-unlinkStory'));
+$config->group->package->manageExecutionStory->privs['execution-storySort'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 6, 'depend' => array('execution-story'), 'recommend' => array('execution-linkStory', 'execution-storyEstimate', 'execution-storyKanban', 'execution-storyView', 'execution-unlinkStory'));
+$config->group->package->manageExecutionStory->privs['execution-storyEstimate'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 7, 'depend' => array('execution-story'), 'recommend' => array('execution-linkStory', 'execution-storyKanban', 'execution-storySort', 'execution-storyView', 'execution-unlinkStory'));
+
+$config->group->package->manageExecutionEffort = new stdclass();
+$config->group->package->manageExecutionEffort->edition = 'open,biz,max,ipd';
+$config->group->package->manageExecutionEffort->vision = 'rnd,lite,or';
+$config->group->package->manageExecutionEffort->order = 25;
+$config->group->package->manageExecutionEffort->subset = 'execution';
+$config->group->package->manageExecutionEffort->privs = array();
+$config->group->package->manageExecutionEffort->privs['execution-effort'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 255, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->manageBuild = new stdclass();
+$config->group->package->manageBuild->edition = 'open,biz,max,ipd';
+$config->group->package->manageBuild->vision = 'rnd,lite,or';
+$config->group->package->manageBuild->order = 10;
+$config->group->package->manageBuild->subset = 'build';
+$config->group->package->manageBuild->privs = array();
+$config->group->package->manageBuild->privs['build-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('execution-build'), 'recommend' => array('build-edit', 'build-linkBug', 'build-linkStory', 'build-unlinkBug', 'build-unlinkStory'));
+$config->group->package->manageBuild->privs['build-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('execution-build'), 'recommend' => array('build-create', 'build-linkBug', 'build-linkStory', 'build-unlinkBug', 'build-unlinkStory'));
+$config->group->package->manageBuild->privs['build-linkStory'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('execution-build'), 'recommend' => array('build-create', 'build-edit', 'build-linkBug', 'build-unlinkBug', 'build-unlinkStory'));
+$config->group->package->manageBuild->privs['build-unlinkStory'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('execution-build'), 'recommend' => array('build-batchUnlinkStory', 'build-create', 'build-edit', 'build-linkBug', 'build-linkStory', 'build-unlinkBug'));
+$config->group->package->manageBuild->privs['build-batchUnlinkStory'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 6, 'depend' => array('execution-build'), 'recommend' => array('build-unlinkStory'));
+$config->group->package->manageBuild->privs['build-linkBug'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 7, 'depend' => array('execution-build'), 'recommend' => array('build-create', 'build-edit', 'build-linkStory', 'build-unlinkBug', 'build-unlinkStory'));
+$config->group->package->manageBuild->privs['build-unlinkBug'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 8, 'depend' => array('execution-build'), 'recommend' => array('build-batchUnlinkBug', 'build-create', 'build-edit', 'build-linkBug', 'build-linkStory', 'build-unlinkStory'));
+$config->group->package->manageBuild->privs['build-batchUnlinkBug'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 9, 'depend' => array('execution-build'), 'recommend' => array('build-unlinkBug'));
+
+$config->group->package->deleteBuild = new stdclass();
+$config->group->package->deleteBuild->edition = 'open,biz,max,ipd';
+$config->group->package->deleteBuild->vision = 'rnd,lite,or';
+$config->group->package->deleteBuild->order = 15;
+$config->group->package->deleteBuild->subset = 'build';
+$config->group->package->deleteBuild->privs = array();
+$config->group->package->deleteBuild->privs['build-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array('execution-build'), 'recommend' => array('build-create', 'build-edit'));
+
+$config->group->package->browseStoryLib = new stdclass();
+$config->group->package->browseStoryLib->edition = 'open,biz,max,ipd';
+$config->group->package->browseStoryLib->vision = 'rnd,lite,or';
+$config->group->package->browseStoryLib->order = 5;
+$config->group->package->browseStoryLib->subset = 'storylib';
+$config->group->package->browseStoryLib->privs = array();
+$config->group->package->browseStoryLib->privs['assetlib-storylib'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array(), 'recommend' => array('assetlib-createStorylib', 'assetlib-editStorylib', 'assetlib-story', 'assetlib-storylibSort', 'assetlib-storyLibView'));
+$config->group->package->browseStoryLib->privs['assetlib-storyLibView'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('assetlib-story', 'assetlib-storylib'), 'recommend' => array('assetlib-editStorylib'));
+$config->group->package->browseStoryLib->privs['assetlib-story'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('assetlib-storylib'), 'recommend' => array('assetlib-assignToStory', 'assetlib-editStory', 'assetlib-importStory', 'assetlib-removeStory', 'assetlib-storyView'));
+$config->group->package->browseStoryLib->privs['assetlib-storyView'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('assetlib-story', 'assetlib-storylib'), 'recommend' => array('assetlib-assignToStory', 'assetlib-editStory', 'assetlib-importStory', 'assetlib-removeStory'));
+
+$config->group->package->manageStoryLib = new stdclass();
+$config->group->package->manageStoryLib->edition = 'open,biz,max,ipd';
+$config->group->package->manageStoryLib->vision = 'rnd,lite,or';
+$config->group->package->manageStoryLib->order = 10;
+$config->group->package->manageStoryLib->subset = 'storylib';
+$config->group->package->manageStoryLib->privs = array();
+$config->group->package->manageStoryLib->privs['assetlib-createStorylib'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array('assetlib-storylib'), 'recommend' => array('assetlib-editStorylib', 'assetlib-storylibSort'));
+$config->group->package->manageStoryLib->privs['assetlib-editStorylib'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('assetlib-storylib'), 'recommend' => array('assetlib-createStorylib', 'assetlib-storylibSort'));
+$config->group->package->manageStoryLib->privs['assetlib-importStory'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('assetlib-story', 'assetlib-storylib'), 'recommend' => array('assetlib-assignToStory', 'assetlib-editStory', 'assetlib-removeStory'));
+$config->group->package->manageStoryLib->privs['assetlib-assignToStory'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 6, 'depend' => array('assetlib-story', 'assetlib-storylib'), 'recommend' => array('assetlib-batchAssignToStory', 'assetlib-editStory', 'assetlib-importStory', 'assetlib-removeStory'));
+$config->group->package->manageStoryLib->privs['assetlib-batchAssignToStory'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 7, 'depend' => array('assetlib-story', 'assetlib-storylib'), 'recommend' => array('assetlib-assignToStory'));
+$config->group->package->manageStoryLib->privs['assetlib-editStory'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('assetlib-story', 'assetlib-storylib'), 'recommend' => array('assetlib-assignToStory', 'assetlib-importStory', 'assetlib-removeStory'));
+$config->group->package->manageStoryLib->privs['assetlib-removeStory'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 8, 'depend' => array('assetlib-story', 'assetlib-storylib'), 'recommend' => array('assetlib-batchRemoveStory', 'assetlib-editStory', 'assetlib-importStory'));
+$config->group->package->manageStoryLib->privs['assetlib-batchRemoveStory'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 9, 'depend' => array('assetlib-story', 'assetlib-storylib'), 'recommend' => array('assetlib-removeStory'));
+$config->group->package->manageStoryLib->privs['assetlib-storylibSort'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('assetlib-storylib'), 'recommend' => array('assetlib-createStorylib', 'assetlib-editStorylib'));
+
+$config->group->package->deleteStoryLib = new stdclass();
+$config->group->package->deleteStoryLib->edition = 'open,biz,max,ipd';
+$config->group->package->deleteStoryLib->vision = 'rnd,lite,or';
+$config->group->package->deleteStoryLib->order = 15;
+$config->group->package->deleteStoryLib->subset = 'storylib';
+$config->group->package->deleteStoryLib->privs = array();
+$config->group->package->deleteStoryLib->privs['assetlib-deleteStorylib'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 25, 'depend' => array('assetlib-storylib'), 'recommend' => array('assetlib-createStorylib', 'assetlib-editStorylib'));
+
+$config->group->package->reviewStoryLib = new stdclass();
+$config->group->package->reviewStoryLib->edition = 'open,biz,max,ipd';
+$config->group->package->reviewStoryLib->vision = 'rnd,lite,or';
+$config->group->package->reviewStoryLib->order = 20;
+$config->group->package->reviewStoryLib->subset = 'storylib';
+$config->group->package->reviewStoryLib->privs = array();
+$config->group->package->reviewStoryLib->privs['assetlib-approveStory'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 55, 'depend' => array('assetlib-story', 'assetlib-storylib'), 'recommend' => array('assetlib-batchApproveStory'));
+$config->group->package->reviewStoryLib->privs['assetlib-batchApproveStory'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 60, 'depend' => array('assetlib-story', 'assetlib-storylib'), 'recommend' => array('assetlib-approveStory'));
+
+$config->group->package->browseIssueLib = new stdclass();
+$config->group->package->browseIssueLib->edition = 'open,biz,max,ipd';
+$config->group->package->browseIssueLib->vision = 'rnd,lite,or';
+$config->group->package->browseIssueLib->order = 5;
+$config->group->package->browseIssueLib->subset = 'issuelib';
+$config->group->package->browseIssueLib->privs = array();
+$config->group->package->browseIssueLib->privs['assetlib-issuelib'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array(), 'recommend' => array('assetlib-createIssuelib', 'assetlib-editIssuelib', 'assetlib-issue', 'assetlib-issuelibSort', 'assetlib-issueLibView'));
+$config->group->package->browseIssueLib->privs['assetlib-issueLibView'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('assetlib-issue', 'assetlib-issuelib'), 'recommend' => array('assetlib-editIssuelib'));
+$config->group->package->browseIssueLib->privs['assetlib-issue'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('assetlib-issuelib'), 'recommend' => array('assetlib-editIssue', 'assetlib-importIssue', 'assetlib-issueView', 'assetlib-removeIssue'));
+$config->group->package->browseIssueLib->privs['assetlib-issueView'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('assetlib-issue', 'assetlib-issuelib'), 'recommend' => array('assetlib-editIssue', 'assetlib-removeIssue'));
+
+$config->group->package->manageIssueLib = new stdclass();
+$config->group->package->manageIssueLib->edition = 'open,biz,max,ipd';
+$config->group->package->manageIssueLib->vision = 'rnd,lite,or';
+$config->group->package->manageIssueLib->order = 10;
+$config->group->package->manageIssueLib->subset = 'issuelib';
+$config->group->package->manageIssueLib->privs = array();
+$config->group->package->manageIssueLib->privs['assetlib-createIssuelib'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array('assetlib-issuelib'), 'recommend' => array('assetlib-editIssuelib', 'assetlib-issuelibSort'));
+$config->group->package->manageIssueLib->privs['assetlib-editIssuelib'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('assetlib-issuelib'), 'recommend' => array('assetlib-createIssuelib', 'assetlib-issuelibSort'));
+$config->group->package->manageIssueLib->privs['assetlib-importIssue'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('assetlib-issue', 'assetlib-issuelib'), 'recommend' => array('assetlib-assignToIssue', 'assetlib-editIssue', 'assetlib-removeIssue'));
+$config->group->package->manageIssueLib->privs['assetlib-assignToIssue'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('assetlib-issue', 'assetlib-issuelib'), 'recommend' => array('assetlib-batchAssignToIssue', 'assetlib-editIssue', 'assetlib-importIssue', 'assetlib-removeIssue'));
+$config->group->package->manageIssueLib->privs['assetlib-batchAssignToIssue'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 6, 'depend' => array('assetlib-issue', 'assetlib-issuelib'), 'recommend' => array('assetlib-assignToIssue'));
+$config->group->package->manageIssueLib->privs['assetlib-editIssue'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('assetlib-issue', 'assetlib-issuelib'), 'recommend' => array('assetlib-assignToIssue', 'assetlib-importIssue', 'assetlib-removeIssue'));
+$config->group->package->manageIssueLib->privs['assetlib-removeIssue'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 7, 'depend' => array('assetlib-issue', 'assetlib-issuelib'), 'recommend' => array('assetlib-batchRemoveIssue', 'assetlib-editIssue', 'assetlib-importIssue'));
+$config->group->package->manageIssueLib->privs['assetlib-batchRemoveIssue'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 8, 'depend' => array('assetlib-issue', 'assetlib-issuelib'), 'recommend' => array('assetlib-removeIssue'));
+$config->group->package->manageIssueLib->privs['assetlib-issuelibSort'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('assetlib-issuelib'), 'recommend' => array('assetlib-createIssuelib', 'assetlib-editIssuelib'));
+
+$config->group->package->deleteIssueLib = new stdclass();
+$config->group->package->deleteIssueLib->edition = 'open,biz,max,ipd';
+$config->group->package->deleteIssueLib->vision = 'rnd,lite,or';
+$config->group->package->deleteIssueLib->order = 15;
+$config->group->package->deleteIssueLib->subset = 'issuelib';
+$config->group->package->deleteIssueLib->privs = array();
+$config->group->package->deleteIssueLib->privs['assetlib-deleteIssuelib'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 100, 'depend' => array('assetlib-issuelib'), 'recommend' => array('assetlib-createIssuelib', 'assetlib-editIssuelib'));
+
+$config->group->package->reviewIssue = new stdclass();
+$config->group->package->reviewIssue->edition = 'open,biz,max,ipd';
+$config->group->package->reviewIssue->vision = 'rnd,lite,or';
+$config->group->package->reviewIssue->order = 20;
+$config->group->package->reviewIssue->subset = 'issuelib';
+$config->group->package->reviewIssue->privs = array();
+$config->group->package->reviewIssue->privs['assetlib-approveIssue'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 130, 'depend' => array('assetlib-issue', 'assetlib-issuelib'), 'recommend' => array('assetlib-batchApproveIssue'));
+$config->group->package->reviewIssue->privs['assetlib-batchApproveIssue'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 135, 'depend' => array('assetlib-issue', 'assetlib-issuelib'), 'recommend' => array('assetlib-approveIssue'));
+
+$config->group->package->browseRiskLib = new stdclass();
+$config->group->package->browseRiskLib->edition = 'open,biz,max,ipd';
+$config->group->package->browseRiskLib->vision = 'rnd,lite,or';
+$config->group->package->browseRiskLib->order = 5;
+$config->group->package->browseRiskLib->subset = 'risklib';
+$config->group->package->browseRiskLib->privs = array();
+$config->group->package->browseRiskLib->privs['assetlib-risklib'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 160, 'depend' => array(), 'recommend' => array('assetlib-createRisklib', 'assetlib-editRisklib', 'assetlib-risk', 'assetlib-risklibSort', 'assetlib-riskLibView'));
+$config->group->package->browseRiskLib->privs['assetlib-riskLibView'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 180, 'depend' => array('assetlib-risklib'), 'recommend' => array('assetlib-editRisk'));
+$config->group->package->browseRiskLib->privs['assetlib-risk'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 185, 'depend' => array('assetlib-risklib'), 'recommend' => array('assetlib-assignToRisk', 'assetlib-editRisk', 'assetlib-importRisk', 'assetlib-removeRisk', 'assetlib-riskView'));
+$config->group->package->browseRiskLib->privs['assetlib-riskView'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 230, 'depend' => array('assetlib-risk', 'assetlib-risklib'), 'recommend' => array('assetlib-assignToRisk', 'assetlib-editRisk'));
+
+$config->group->package->manageRiskLib = new stdclass();
+$config->group->package->manageRiskLib->edition = 'open,biz,max,ipd';
+$config->group->package->manageRiskLib->vision = 'rnd,lite,or';
+$config->group->package->manageRiskLib->order = 10;
+$config->group->package->manageRiskLib->subset = 'risklib';
+$config->group->package->manageRiskLib->privs = array();
+$config->group->package->manageRiskLib->privs['assetlib-createRisklib'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array('assetlib-risklib'), 'recommend' => array('assetlib-editRisklib', 'assetlib-risklibSort'));
+$config->group->package->manageRiskLib->privs['assetlib-editRisklib'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('assetlib-risklib'), 'recommend' => array('assetlib-createRisklib', 'assetlib-risklibSort'));
+$config->group->package->manageRiskLib->privs['assetlib-importRisk'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('assetlib-risk', 'assetlib-risklib'), 'recommend' => array('assetlib-assignToRisk', 'assetlib-editRisk', 'assetlib-removeRisk'));
+$config->group->package->manageRiskLib->privs['assetlib-assignToRisk'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('assetlib-risk', 'assetlib-risklib'), 'recommend' => array('assetlib-batchAssignToRisk', 'assetlib-editRisk', 'assetlib-importRisk', 'assetlib-removeRisk'));
+$config->group->package->manageRiskLib->privs['assetlib-batchAssignToRisk'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 6, 'depend' => array('assetlib-risk', 'assetlib-risklib'), 'recommend' => array('assetlib-assignToRisk'));
+$config->group->package->manageRiskLib->privs['assetlib-editRisk'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('assetlib-risk', 'assetlib-risklib'), 'recommend' => array('assetlib-assignToRisk', 'assetlib-importRisk', 'assetlib-removeRisk'));
+$config->group->package->manageRiskLib->privs['assetlib-removeRisk'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 7, 'depend' => array('assetlib-risk', 'assetlib-risklib'), 'recommend' => array('assetlib-batchRemoveRisk', 'assetlib-editRisk', 'assetlib-importRisk'));
+$config->group->package->manageRiskLib->privs['assetlib-batchRemoveRisk'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 8, 'depend' => array('assetlib-risk', 'assetlib-risklib'), 'recommend' => array('assetlib-removeRisk'));
+$config->group->package->manageRiskLib->privs['assetlib-risklibSort'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('assetlib-risklib'), 'recommend' => array('assetlib-createRisklib', 'assetlib-editRisklib'));
+
+$config->group->package->deleteRiskLib = new stdclass();
+$config->group->package->deleteRiskLib->edition = 'open,biz,max,ipd';
+$config->group->package->deleteRiskLib->vision = 'rnd,lite,or';
+$config->group->package->deleteRiskLib->order = 15;
+$config->group->package->deleteRiskLib->subset = 'risklib';
+$config->group->package->deleteRiskLib->privs = array();
+$config->group->package->deleteRiskLib->privs['assetlib-deleteRisklib'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 175, 'depend' => array('assetlib-risklib'), 'recommend' => array('assetlib-createRisklib', 'assetlib-editRisklib'));
+
+$config->group->package->reivewRisk = new stdclass();
+$config->group->package->reivewRisk->edition = 'open,biz,max,ipd';
+$config->group->package->reivewRisk->vision = 'rnd,lite,or';
+$config->group->package->reivewRisk->order = 20;
+$config->group->package->reivewRisk->subset = 'risklib';
+$config->group->package->reivewRisk->privs = array();
+$config->group->package->reivewRisk->privs['assetlib-approveRisk'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 205, 'depend' => array('assetlib-risk', 'assetlib-risklib'), 'recommend' => array('assetlib-batchApproveRisk'));
+$config->group->package->reivewRisk->privs['assetlib-batchApproveRisk'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 210, 'depend' => array('assetlib-risk', 'assetlib-risklib'), 'recommend' => array('assetlib-approveRisk'));
+
+$config->group->package->browseOpportunityLib = new stdclass();
+$config->group->package->browseOpportunityLib->edition = 'open,biz,max,ipd';
+$config->group->package->browseOpportunityLib->vision = 'rnd,lite,or';
+$config->group->package->browseOpportunityLib->order = 5;
+$config->group->package->browseOpportunityLib->subset = 'opportunitylib';
+$config->group->package->browseOpportunityLib->privs = array();
+$config->group->package->browseOpportunityLib->privs['assetlib-opportunitylib'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 235, 'depend' => array(), 'recommend' => array('assetlib-createOpportunitylib', 'assetlib-editOpportunitylib', 'assetlib-opportunitylibSort'));
+$config->group->package->browseOpportunityLib->privs['assetlib-opportunityLibView'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 255, 'depend' => array('assetlib-opportunitylib'), 'recommend' => array('assetlib-editOpportunitylib'));
+$config->group->package->browseOpportunityLib->privs['assetlib-opportunity'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 255, 'depend' => array('assetlib-opportunitylib'), 'recommend' => array('assetlib-assignToOpportunity', 'assetlib-editOpportunity', 'assetlib-importOpportunity', 'assetlib-removeOpportunity'));
+$config->group->package->browseOpportunityLib->privs['assetlib-opportunityView'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 255, 'depend' => array('assetlib-opportunity', 'assetlib-opportunitylib'), 'recommend' => array('assetlib-assignToOpportunity', 'assetlib-editOpportunity'));
+
+$config->group->package->manageOpportunityLib = new stdclass();
+$config->group->package->manageOpportunityLib->edition = 'open,biz,max,ipd';
+$config->group->package->manageOpportunityLib->vision = 'rnd,lite,or';
+$config->group->package->manageOpportunityLib->order = 10;
+$config->group->package->manageOpportunityLib->subset = 'opportunitylib';
+$config->group->package->manageOpportunityLib->privs = array();
+$config->group->package->manageOpportunityLib->privs['assetlib-createOpportunitylib'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array('assetlib-opportunitylib'), 'recommend' => array('assetlib-editOpportunitylib', 'assetlib-opportunitylibSort'));
+$config->group->package->manageOpportunityLib->privs['assetlib-editOpportunitylib'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('assetlib-opportunitylib'), 'recommend' => array('assetlib-createOpportunitylib', 'assetlib-opportunitylibSort'));
+$config->group->package->manageOpportunityLib->privs['assetlib-importOpportunity'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('assetlib-opportunity', 'assetlib-opportunitylib'), 'recommend' => array('assetlib-assignToOpportunity', 'assetlib-editOpportunity', 'assetlib-removeOpportunity'));
+$config->group->package->manageOpportunityLib->privs['assetlib-assignToOpportunity'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('assetlib-opportunity', 'assetlib-opportunitylib'), 'recommend' => array('assetlib-batchAssignToOpportunity', 'assetlib-editOpportunity', 'assetlib-importOpportunity', 'assetlib-removeOpportunity'));
+$config->group->package->manageOpportunityLib->privs['assetlib-batchAssignToOpportunity'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 6, 'depend' => array('assetlib-opportunity', 'assetlib-opportunitylib'), 'recommend' => array('assetlib-assignToOpportunity'));
+$config->group->package->manageOpportunityLib->privs['assetlib-editOpportunity'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('assetlib-opportunity', 'assetlib-opportunitylib'), 'recommend' => array('assetlib-assignToOpportunity', 'assetlib-importOpportunity', 'assetlib-removeOpportunity'));
+$config->group->package->manageOpportunityLib->privs['assetlib-removeOpportunity'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 7, 'depend' => array('assetlib-opportunity', 'assetlib-opportunitylib'), 'recommend' => array('assetlib-batchRemoveOpportunity', 'assetlib-editOpportunity', 'assetlib-importOpportunity'));
+$config->group->package->manageOpportunityLib->privs['assetlib-batchRemoveOpportunity'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 8, 'depend' => array('assetlib-opportunity', 'assetlib-opportunitylib'), 'recommend' => array('assetlib-removeOpportunity'));
+$config->group->package->manageOpportunityLib->privs['assetlib-opportunitylibSort'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('assetlib-opportunitylib'), 'recommend' => array('assetlib-createOpportunitylib', 'assetlib-editOpportunitylib'));
+
+$config->group->package->deleteOpportunityLib = new stdclass();
+$config->group->package->deleteOpportunityLib->edition = 'open,biz,max,ipd';
+$config->group->package->deleteOpportunityLib->vision = 'rnd,lite,or';
+$config->group->package->deleteOpportunityLib->order = 15;
+$config->group->package->deleteOpportunityLib->subset = 'opportunitylib';
+$config->group->package->deleteOpportunityLib->privs = array();
+$config->group->package->deleteOpportunityLib->privs['assetlib-deleteOpportunitylib'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 250, 'depend' => array('assetlib-opportunitylib'), 'recommend' => array('assetlib-editOpportunity', 'assetlib-importOpportunity'));
+
+$config->group->package->reviewOpportunity = new stdclass();
+$config->group->package->reviewOpportunity->edition = 'open,biz,max,ipd';
+$config->group->package->reviewOpportunity->vision = 'rnd,lite,or';
+$config->group->package->reviewOpportunity->order = 20;
+$config->group->package->reviewOpportunity->subset = 'opportunitylib';
+$config->group->package->reviewOpportunity->privs = array();
+$config->group->package->reviewOpportunity->privs['assetlib-approveOpportunity'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 255, 'depend' => array('assetlib-opportunity', 'assetlib-opportunitylib'), 'recommend' => array('assetlib-batchApproveOpportunity'));
+$config->group->package->reviewOpportunity->privs['assetlib-batchApproveOpportunity'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 255, 'depend' => array('assetlib-opportunity', 'assetlib-opportunitylib'), 'recommend' => array('assetlib-approveOpportunity'));
+
+$config->group->package->browsePracticeLib = new stdclass();
+$config->group->package->browsePracticeLib->edition = 'open,biz,max,ipd';
+$config->group->package->browsePracticeLib->vision = 'rnd,lite,or';
+$config->group->package->browsePracticeLib->order = 5;
+$config->group->package->browsePracticeLib->subset = 'practicelib';
+$config->group->package->browsePracticeLib->privs = array();
+$config->group->package->browsePracticeLib->privs['assetlib-practicelib'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 255, 'depend' => array(), 'recommend' => array('assetlib-createPracticelib', 'assetlib-editPracticelib', 'assetlib-practicelibSort'));
+$config->group->package->browsePracticeLib->privs['assetlib-practiceLibView'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 255, 'depend' => array('assetlib-practicelib'), 'recommend' => array('assetlib-editPracticelib'));
+$config->group->package->browsePracticeLib->privs['assetlib-practice'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 255, 'depend' => array('assetlib-practicelib'), 'recommend' => array('assetlib-assignToPractice', 'assetlib-editPractice', 'assetlib-importPractice', 'assetlib-removePractice'));
+$config->group->package->browsePracticeLib->privs['assetlib-practiceView'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 255, 'depend' => array('assetlib-practice', 'assetlib-practicelib'), 'recommend' => array('assetlib-editPractice', 'assetlib-removePractice'));
+
+$config->group->package->managePracticeLib = new stdclass();
+$config->group->package->managePracticeLib->edition = 'open,biz,max,ipd';
+$config->group->package->managePracticeLib->vision = 'rnd,lite,or';
+$config->group->package->managePracticeLib->order = 10;
+$config->group->package->managePracticeLib->subset = 'practicelib';
+$config->group->package->managePracticeLib->privs = array();
+$config->group->package->managePracticeLib->privs['assetlib-createPracticelib'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array('assetlib-practicelib'), 'recommend' => array('assetlib-editPracticelib', 'assetlib-practicelibSort'));
+$config->group->package->managePracticeLib->privs['assetlib-editPracticelib'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('assetlib-practicelib'), 'recommend' => array('assetlib-createPracticelib', 'assetlib-practicelibSort'));
+$config->group->package->managePracticeLib->privs['assetlib-importPractice'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('assetlib-practice', 'assetlib-practicelib'), 'recommend' => array('assetlib-assignToPractice', 'assetlib-editPractice', 'assetlib-removePractice'));
+$config->group->package->managePracticeLib->privs['assetlib-assignToPractice'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('assetlib-practice', 'assetlib-practicelib'), 'recommend' => array('assetlib-batchAssignToPractice', 'assetlib-editPractice', 'assetlib-importPractice', 'assetlib-removePractice'));
+$config->group->package->managePracticeLib->privs['assetlib-batchAssignToPractice'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 6, 'depend' => array('assetlib-practice', 'assetlib-practicelib'), 'recommend' => array('assetlib-assignToPractice'));
+$config->group->package->managePracticeLib->privs['assetlib-editPractice'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('assetlib-practice', 'assetlib-practicelib'), 'recommend' => array('assetlib-assignToPractice', 'assetlib-importPractice', 'assetlib-removePractice'));
+$config->group->package->managePracticeLib->privs['assetlib-removePractice'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 7, 'depend' => array('assetlib-practice', 'assetlib-practicelib'), 'recommend' => array('assetlib-batchRemovePractice', 'assetlib-editPractice', 'assetlib-importPractice'));
+$config->group->package->managePracticeLib->privs['assetlib-batchRemovePractice'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 8, 'depend' => array('assetlib-practice', 'assetlib-practicelib'), 'recommend' => array('assetlib-removePractice'));
+$config->group->package->managePracticeLib->privs['assetlib-practicelibSort'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('assetlib-practicelib'), 'recommend' => array('assetlib-createPracticelib', 'assetlib-editPracticelib'));
+
+$config->group->package->deletePracticeLib = new stdclass();
+$config->group->package->deletePracticeLib->edition = 'open,biz,max,ipd';
+$config->group->package->deletePracticeLib->vision = 'rnd,lite,or';
+$config->group->package->deletePracticeLib->order = 15;
+$config->group->package->deletePracticeLib->subset = 'practicelib';
+$config->group->package->deletePracticeLib->privs = array();
+$config->group->package->deletePracticeLib->privs['assetlib-deletePracticelib'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 255, 'depend' => array('assetlib-practicelib'), 'recommend' => array('assetlib-createPracticelib', 'assetlib-editPracticelib'));
+
+$config->group->package->reviewPractice = new stdclass();
+$config->group->package->reviewPractice->edition = 'open,biz,max,ipd';
+$config->group->package->reviewPractice->vision = 'rnd,lite,or';
+$config->group->package->reviewPractice->order = 20;
+$config->group->package->reviewPractice->subset = 'practicelib';
+$config->group->package->reviewPractice->privs = array();
+$config->group->package->reviewPractice->privs['assetlib-approvePractice'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 255, 'depend' => array('assetlib-practice', 'assetlib-practicelib'), 'recommend' => array('assetlib-batchApprovePractice'));
+$config->group->package->reviewPractice->privs['assetlib-batchApprovePractice'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 255, 'depend' => array('assetlib-practice', 'assetlib-practicelib'), 'recommend' => array('assetlib-approvePractice'));
+
+$config->group->package->browseComponentLib = new stdclass();
+$config->group->package->browseComponentLib->edition = 'open,biz,max,ipd';
+$config->group->package->browseComponentLib->vision = 'rnd,lite,or';
+$config->group->package->browseComponentLib->order = 5;
+$config->group->package->browseComponentLib->subset = 'componentlib';
+$config->group->package->browseComponentLib->privs = array();
+$config->group->package->browseComponentLib->privs['assetlib-componentlib'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 255, 'depend' => array(), 'recommend' => array('assetlib-componentlibSort', 'assetlib-createComponentlib', 'assetlib-editComponentlib'));
+$config->group->package->browseComponentLib->privs['assetlib-componentLibView'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 255, 'depend' => array('assetlib-componentlib'), 'recommend' => array('assetlib-createComponentlib', 'assetlib-editComponentlib'));
+$config->group->package->browseComponentLib->privs['assetlib-component'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 255, 'depend' => array('assetlib-componentlib'), 'recommend' => array('assetlib-assignToComponent', 'assetlib-editComponent', 'assetlib-importComponent', 'assetlib-removeComponent'));
+$config->group->package->browseComponentLib->privs['assetlib-componentView'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 255, 'depend' => array('assetlib-component', 'assetlib-componentlib'), 'recommend' => array('assetlib-editComponent'));
+
+$config->group->package->manageComponentLib = new stdclass();
+$config->group->package->manageComponentLib->edition = 'open,biz,max,ipd';
+$config->group->package->manageComponentLib->vision = 'rnd,lite,or';
+$config->group->package->manageComponentLib->order = 10;
+$config->group->package->manageComponentLib->subset = 'componentlib';
+$config->group->package->manageComponentLib->privs = array();
+$config->group->package->manageComponentLib->privs['assetlib-createComponentlib'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array('assetlib-componentlib'), 'recommend' => array('assetlib-componentlibSort', 'assetlib-editComponentlib'));
+$config->group->package->manageComponentLib->privs['assetlib-editComponentlib'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('assetlib-componentlib'), 'recommend' => array('assetlib-componentlibSort', 'assetlib-createComponentlib'));
+$config->group->package->manageComponentLib->privs['assetlib-importComponent'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('assetlib-component', 'assetlib-componentlib'), 'recommend' => array('assetlib-assignToComponent', 'assetlib-editComponent', 'assetlib-removeComponent'));
+$config->group->package->manageComponentLib->privs['assetlib-assignToComponent'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('assetlib-component', 'assetlib-componentlib'), 'recommend' => array('assetlib-batchAssignToComponent', 'assetlib-editComponent', 'assetlib-importComponent', 'assetlib-removeComponent'));
+$config->group->package->manageComponentLib->privs['assetlib-batchAssignToComponent'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 6, 'depend' => array('assetlib-component', 'assetlib-componentlib'), 'recommend' => array('assetlib-assignToComponent'));
+$config->group->package->manageComponentLib->privs['assetlib-editComponent'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('assetlib-component', 'assetlib-componentlib'), 'recommend' => array('assetlib-assignToComponent', 'assetlib-importComponent', 'assetlib-removeComponent'));
+$config->group->package->manageComponentLib->privs['assetlib-removeComponent'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 7, 'depend' => array('assetlib-component', 'assetlib-componentlib'), 'recommend' => array('assetlib-batchRemoveComponent', 'assetlib-editComponent', 'assetlib-importComponent'));
+$config->group->package->manageComponentLib->privs['assetlib-batchRemoveComponent'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 8, 'depend' => array('assetlib-component', 'assetlib-componentlib'), 'recommend' => array('assetlib-removeComponent'));
+$config->group->package->manageComponentLib->privs['assetlib-componentlibSort'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('assetlib-componentlib'), 'recommend' => array('assetlib-createComponentlib', 'assetlib-editComponentlib'));
+
+$config->group->package->deleteComponentLib = new stdclass();
+$config->group->package->deleteComponentLib->edition = 'open,biz,max,ipd';
+$config->group->package->deleteComponentLib->vision = 'rnd,lite,or';
+$config->group->package->deleteComponentLib->order = 15;
+$config->group->package->deleteComponentLib->subset = 'componentlib';
+$config->group->package->deleteComponentLib->privs = array();
+$config->group->package->deleteComponentLib->privs['assetlib-deleteComponentlib'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 255, 'depend' => array('assetlib-componentlib'), 'recommend' => array('assetlib-createComponentlib', 'assetlib-editComponentlib'));
+
+$config->group->package->reviewComponent = new stdclass();
+$config->group->package->reviewComponent->edition = 'open,biz,max,ipd';
+$config->group->package->reviewComponent->vision = 'rnd,lite,or';
+$config->group->package->reviewComponent->order = 20;
+$config->group->package->reviewComponent->subset = 'componentlib';
+$config->group->package->reviewComponent->privs = array();
+$config->group->package->reviewComponent->privs['assetlib-approveComponent'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 255, 'depend' => array('assetlib-component', 'assetlib-componentlib'), 'recommend' => array('assetlib-batchApproveComponent'));
+$config->group->package->reviewComponent->privs['assetlib-batchApproveComponent'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 255, 'depend' => array('assetlib-component', 'assetlib-componentlib'), 'recommend' => array('assetlib-approveComponent'));
+
+$config->group->package->browseCaseLib = new stdclass();
+$config->group->package->browseCaseLib->edition = 'open,biz,max,ipd';
+$config->group->package->browseCaseLib->vision = 'rnd,lite,or';
+$config->group->package->browseCaseLib->order = 5;
+$config->group->package->browseCaseLib->subset = 'caselib';
+$config->group->package->browseCaseLib->privs = array();
+$config->group->package->browseCaseLib->privs['caselib-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array(), 'recommend' => array('assetlib-caselib', 'caselib-create', 'caselib-createCase', 'caselib-edit', 'caselib-import', 'caselib-view'));
+$config->group->package->browseCaseLib->privs['caselib-view'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('caselib-browse'), 'recommend' => array('assetlib-caselib', 'caselib-edit'));
+$config->group->package->browseCaseLib->privs['assetlib-caselib'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array(), 'recommend' => array('assetlib-caselibSort', 'caselib-browse', 'caselib-view'));
+
+$config->group->package->manageCaseLib = new stdclass();
+$config->group->package->manageCaseLib->edition = 'open,biz,max,ipd';
+$config->group->package->manageCaseLib->vision = 'rnd,lite,or';
+$config->group->package->manageCaseLib->order = 10;
+$config->group->package->manageCaseLib->subset = 'caselib';
+$config->group->package->manageCaseLib->privs = array();
+$config->group->package->manageCaseLib->privs['caselib-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array('caselib-browse'), 'recommend' => array('assetlib-caselibSort', 'caselib-createCase', 'caselib-edit', 'caselib-import'));
+$config->group->package->manageCaseLib->privs['caselib-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('caselib-view'), 'recommend' => array('assetlib-caselibSort', 'caselib-create'));
+$config->group->package->manageCaseLib->privs['caselib-createCase'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('caselib-browse'), 'recommend' => array('caselib-batchCreateCase', 'caselib-create', 'caselib-import'));
+$config->group->package->manageCaseLib->privs['caselib-batchCreateCase'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('caselib-browse'), 'recommend' => array('caselib-createCase'));
+$config->group->package->manageCaseLib->privs['assetlib-caselibSort'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('assetlib-caselib'), 'recommend' => array('caselib-create', 'caselib-edit'));
+
+$config->group->package->deleteCaseLib = new stdclass();
+$config->group->package->deleteCaseLib->edition = 'open,biz,max,ipd';
+$config->group->package->deleteCaseLib->vision = 'rnd,lite,or';
+$config->group->package->deleteCaseLib->order = 20;
+$config->group->package->deleteCaseLib->subset = 'caselib';
+$config->group->package->deleteCaseLib->privs = array();
+$config->group->package->deleteCaseLib->privs['caselib-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 25, 'depend' => array('caselib-view'), 'recommend' => array('caselib-create', 'caselib-edit'));
+
+$config->group->package->importCaseLib = new stdclass();
+$config->group->package->importCaseLib->edition = 'open,biz,max,ipd';
+$config->group->package->importCaseLib->vision = 'rnd,lite,or';
+$config->group->package->importCaseLib->order = 15;
+$config->group->package->importCaseLib->subset = 'caselib';
+$config->group->package->importCaseLib->privs = array();
+$config->group->package->importCaseLib->privs['caselib-exportTemplate'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 45, 'depend' => array('caselib-browse', 'caselib-import'), 'recommend' => array());
+$config->group->package->importCaseLib->privs['caselib-import'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 50, 'depend' => array('caselib-browse', 'caselib-exportTemplate', 'caselib-showImport'), 'recommend' => array());
+$config->group->package->importCaseLib->privs['caselib-showImport'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 55, 'depend' => array('caselib-import'), 'recommend' => array());
+
+$config->group->package->officeApproval = new stdclass();
+$config->group->package->officeApproval->edition = 'open,biz,max,ipd';
+$config->group->package->officeApproval->vision = 'rnd,lite,or';
+$config->group->package->officeApproval->order = 5;
+$config->group->package->officeApproval->subset = 'officeapproval';
+$config->group->package->officeApproval->privs = array();
+$config->group->package->officeApproval->privs['attend-review'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 3, 'depend' => array('attend-browseReview', 'attend-personal'), 'recommend' => array());
+$config->group->package->officeApproval->privs['leave-browseReview'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 0, 'depend' => array('attend-personal', 'leave-personal'), 'recommend' => array());
+$config->group->package->officeApproval->privs['leave-review'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 1, 'depend' => array('attend-personal', 'leave-browseReview', 'leave-personal'), 'recommend' => array());
+$config->group->package->officeApproval->privs['leave-back'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 2, 'depend' => array('attend-personal', 'leave-personal'), 'recommend' => array());
+$config->group->package->officeApproval->privs['makeup-browseReview'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 4, 'depend' => array('attend-personal', 'makeup-personal'), 'recommend' => array());
+$config->group->package->officeApproval->privs['makeup-review'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 5, 'depend' => array('attend-personal', 'makeup-browseReview', 'makeup-personal'), 'recommend' => array());
+$config->group->package->officeApproval->privs['overtime-browseReview'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 6, 'depend' => array('attend-personal', 'overtime-personal'), 'recommend' => array());
+$config->group->package->officeApproval->privs['overtime-review'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 7, 'depend' => array('attend-personal', 'overtime-browseReview', 'overtime-personal'), 'recommend' => array());
+$config->group->package->officeApproval->privs['lieu-browseReview'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 8, 'depend' => array('attend-personal', 'lieu-personal'), 'recommend' => array());
+$config->group->package->officeApproval->privs['lieu-review'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 9, 'depend' => array('attend-personal', 'lieu-browseReview', 'lieu-personal'), 'recommend' => array());
+
+$config->group->package->attend = new stdclass();
+$config->group->package->attend->edition = 'open,biz,max,ipd';
+$config->group->package->attend->vision = 'rnd,lite,or';
+$config->group->package->attend->order = 10;
+$config->group->package->attend->subset = 'attend';
+$config->group->package->attend->privs = array();
+$config->group->package->attend->privs['attend-browseReview'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 5, 'depend' => array('attend-personal'), 'recommend' => array());
+$config->group->package->attend->privs['attend-detail'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 4, 'depend' => array('attend-personal'), 'recommend' => array());
+$config->group->package->attend->privs['attend-personal'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 0, 'depend' => array(), 'recommend' => array('attend-edit'));
+$config->group->package->attend->privs['attend-edit'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 1, 'depend' => array('attend-personal'), 'recommend' => array('attend-browseReview'));
+
+$config->group->package->officeSetting = new stdclass();
+$config->group->package->officeSetting->edition = 'open,biz,max,ipd';
+$config->group->package->officeSetting->vision = 'rnd,lite,or';
+$config->group->package->officeSetting->order = 5;
+$config->group->package->officeSetting->subset = 'officesetting';
+$config->group->package->officeSetting->privs = array();
+$config->group->package->officeSetting->privs['attend-settings'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 0, 'depend' => array('attend-personal'), 'recommend' => array());
+$config->group->package->officeSetting->privs['attend-personalSettings'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 1, 'depend' => array('attend-personal'), 'recommend' => array());
+$config->group->package->officeSetting->privs['attend-setManager'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 2, 'depend' => array('attend-personal'), 'recommend' => array());
+$config->group->package->officeSetting->privs['leave-setReviewer'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 3, 'depend' => array('attend-personal', 'leave-personal'), 'recommend' => array());
+$config->group->package->officeSetting->privs['leave-personalAnnual'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 4, 'depend' => array('attend-personal', 'leave-personal'), 'recommend' => array());
+$config->group->package->officeSetting->privs['makeup-setReviewer'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 5, 'depend' => array('attend-personal', 'makeup-personal'), 'recommend' => array());
+$config->group->package->officeSetting->privs['overtime-setReviewer'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 6, 'depend' => array('attend-personal', 'overtime-personal'), 'recommend' => array());
+$config->group->package->officeSetting->privs['lieu-setReviewer'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 7, 'depend' => array('attend-personal'), 'recommend' => array());
+
+$config->group->package->dataPermission = new stdclass();
+$config->group->package->dataPermission->edition = 'open,biz,max,ipd';
+$config->group->package->dataPermission->vision = 'rnd,lite,or';
+$config->group->package->dataPermission->order = 5;
+$config->group->package->dataPermission->subset = 'datapermission';
+$config->group->package->dataPermission->privs = array();
+$config->group->package->dataPermission->privs['attend-department'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 25, 'depend' => array('attend-personal'), 'recommend' => array());
+$config->group->package->dataPermission->privs['attend-company'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 30, 'depend' => array('attend-personal'), 'recommend' => array());
+$config->group->package->dataPermission->privs['attend-stat'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 35, 'depend' => array('attend-personal'), 'recommend' => array());
+$config->group->package->dataPermission->privs['attend-saveStat'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 40, 'depend' => array('attend-personal', 'attend-stat'), 'recommend' => array());
+$config->group->package->dataPermission->privs['leave-company'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 0, 'depend' => array('attend-personal'), 'recommend' => array());
+$config->group->package->dataPermission->privs['makeup-company'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 1, 'depend' => array('attend-personal'), 'recommend' => array());
+$config->group->package->dataPermission->privs['overtime-company'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 2, 'depend' => array('attend-personal'), 'recommend' => array());
+$config->group->package->dataPermission->privs['lieu-company'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 3, 'depend' => array('attend-personal'), 'recommend' => array());
+
+$config->group->package->leave = new stdclass();
+$config->group->package->leave->edition = 'open,biz,max,ipd';
+$config->group->package->leave->vision = 'rnd,lite,or';
+$config->group->package->leave->order = 5;
+$config->group->package->leave->subset = 'leave';
+$config->group->package->leave->privs = array();
+$config->group->package->leave->privs['leave-personal'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 0, 'depend' => array('attend-personal'), 'recommend' => array('leave-create', 'leave-edit', 'leave-view'));
+$config->group->package->leave->privs['leave-create'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 2, 'depend' => array('attend-personal', 'leave-personal'), 'recommend' => array('leave-delete', 'leave-edit', 'leave-switchstatus', 'leave-view'));
+$config->group->package->leave->privs['leave-edit'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 3, 'depend' => array('attend-personal', 'leave-personal'), 'recommend' => array('leave-create', 'leave-delete', 'leave-switchstatus', 'leave-view'));
+$config->group->package->leave->privs['leave-delete'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 4, 'depend' => array('attend-personal', 'leave-personal'), 'recommend' => array('leave-create', 'leave-edit', 'leave-switchstatus', 'leave-view'));
+$config->group->package->leave->privs['leave-view'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 1, 'depend' => array('attend-personal', 'leave-personal'), 'recommend' => array());
+$config->group->package->leave->privs['leave-switchstatus'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 5, 'depend' => array('attend-personal', 'leave-personal'), 'recommend' => array('leave-create', 'leave-delete', 'leave-edit', 'leave-view'));
+
+$config->group->package->makeup = new stdclass();
+$config->group->package->makeup->edition = 'open,biz,max,ipd';
+$config->group->package->makeup->vision = 'rnd,lite,or';
+$config->group->package->makeup->order = 5;
+$config->group->package->makeup->subset = 'makeup';
+$config->group->package->makeup->privs = array();
+$config->group->package->makeup->privs['makeup-personal'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 30, 'depend' => array('attend-personal'), 'recommend' => array('makeup-create', 'makeup-edit', 'makeup-view'));
+$config->group->package->makeup->privs['makeup-create'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 35, 'depend' => array('attend-personal', 'makeup-personal'), 'recommend' => array('makeup-delete', 'makeup-edit', 'makeup-switchstatus', 'makeup-view'));
+$config->group->package->makeup->privs['makeup-edit'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 40, 'depend' => array('attend-personal', 'makeup-personal'), 'recommend' => array('makeup-create', 'makeup-delete', 'makeup-switchstatus', 'makeup-view'));
+$config->group->package->makeup->privs['makeup-view'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 45, 'depend' => array('attend-personal', 'makeup-personal'), 'recommend' => array());
+$config->group->package->makeup->privs['makeup-delete'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 50, 'depend' => array('attend-personal', 'makeup-personal'), 'recommend' => array('makeup-create', 'makeup-edit', 'makeup-switchstatus', 'makeup-view'));
+$config->group->package->makeup->privs['makeup-switchstatus'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 55, 'depend' => array('attend-personal', 'makeup-personal'), 'recommend' => array('makeup-create', 'makeup-delete', 'makeup-edit', 'makeup-view'));
+
+$config->group->package->overtime = new stdclass();
+$config->group->package->overtime->edition = 'open,biz,max,ipd';
+$config->group->package->overtime->vision = 'rnd,lite,or';
+$config->group->package->overtime->order = 5;
+$config->group->package->overtime->subset = 'overtime';
+$config->group->package->overtime->privs = array();
+$config->group->package->overtime->privs['overtime-personal'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 30, 'depend' => array('attend-personal'), 'recommend' => array('overtime-create', 'overtime-edit', 'overtime-view'));
+$config->group->package->overtime->privs['overtime-create'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 35, 'depend' => array('attend-personal', 'overtime-personal'), 'recommend' => array('overtime-delete', 'overtime-edit', 'overtime-switchstatus', 'overtime-view'));
+$config->group->package->overtime->privs['overtime-edit'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 40, 'depend' => array('attend-personal', 'overtime-personal'), 'recommend' => array('overtime-create', 'overtime-delete', 'overtime-switchstatus', 'overtime-view'));
+$config->group->package->overtime->privs['overtime-view'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 45, 'depend' => array('attend-personal', 'overtime-personal'), 'recommend' => array());
+$config->group->package->overtime->privs['overtime-delete'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 50, 'depend' => array('attend-personal', 'overtime-personal'), 'recommend' => array('overtime-create', 'overtime-edit', 'overtime-switchstatus', 'overtime-view'));
+$config->group->package->overtime->privs['overtime-switchstatus'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 55, 'depend' => array('attend-personal', 'overtime-personal'), 'recommend' => array('overtime-create', 'overtime-delete', 'overtime-edit', 'overtime-view'));
+
+$config->group->package->lieu = new stdclass();
+$config->group->package->lieu->edition = 'open,biz,max,ipd';
+$config->group->package->lieu->vision = 'rnd,lite,or';
+$config->group->package->lieu->order = 5;
+$config->group->package->lieu->subset = 'lieu';
+$config->group->package->lieu->privs = array();
+$config->group->package->lieu->privs['lieu-personal'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 25, 'depend' => array('attend-personal'), 'recommend' => array('lieu-create', 'lieu-edit', 'lieu-view'));
+$config->group->package->lieu->privs['lieu-create'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 30, 'depend' => array('attend-personal', 'lieu-personal'), 'recommend' => array('lieu-delete', 'lieu-edit', 'lieu-switchstatus', 'lieu-view'));
+$config->group->package->lieu->privs['lieu-edit'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 35, 'depend' => array('attend-personal', 'lieu-personal'), 'recommend' => array('lieu-create', 'lieu-delete', 'lieu-switchstatus', 'lieu-view'));
+$config->group->package->lieu->privs['lieu-delete'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 40, 'depend' => array('attend-personal', 'lieu-personal'), 'recommend' => array('lieu-create', 'lieu-edit', 'lieu-switchstatus', 'lieu-view'));
+$config->group->package->lieu->privs['lieu-view'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 45, 'depend' => array('attend-personal', 'lieu-personal'), 'recommend' => array());
+$config->group->package->lieu->privs['lieu-switchstatus'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 50, 'depend' => array('attend-personal', 'lieu-personal'), 'recommend' => array('lieu-create', 'lieu-delete', 'lieu-edit', 'lieu-view'));
+
+$config->group->package->holiday = new stdclass();
+$config->group->package->holiday->edition = 'open,biz,max,ipd';
+$config->group->package->holiday->vision = 'rnd,lite,or';
+$config->group->package->holiday->order = 10;
+$config->group->package->holiday->subset = 'modelconfig';
+$config->group->package->holiday->privs = array();
+$config->group->package->holiday->privs['holiday-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array());
+$config->group->package->holiday->privs['holiday-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('holiday-browse'), 'recommend' => array('holiday-delete', 'holiday-edit'));
+$config->group->package->holiday->privs['holiday-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array('holiday-browse'), 'recommend' => array('holiday-create'));
+$config->group->package->holiday->privs['holiday-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 20, 'depend' => array('holiday-browse'), 'recommend' => array('holiday-create', 'holiday-edit'));
+$config->group->package->holiday->privs['holiday-import'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 25, 'depend' => array('holiday-browse'), 'recommend' => array('holiday-create'));
+
+$config->group->package->exportOffice = new stdclass();
+$config->group->package->exportOffice->edition = 'open,biz,max,ipd';
+$config->group->package->exportOffice->vision = 'rnd,lite,or';
+$config->group->package->exportOffice->order = 5;
+$config->group->package->exportOffice->subset = 'officeexport';
+$config->group->package->exportOffice->privs = array();
+$config->group->package->exportOffice->privs['attend-export'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 0, 'depend' => array('attend-department', 'attend-personal'), 'recommend' => array());
+$config->group->package->exportOffice->privs['attend-exportStat'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 2, 'depend' => array('attend-personal', 'attend-stat'), 'recommend' => array());
+$config->group->package->exportOffice->privs['attend-exportDetail'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 1, 'depend' => array('attend-detail', 'attend-personal'), 'recommend' => array());
+$config->group->package->exportOffice->privs['leave-export'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 3, 'depend' => array('attend-personal', 'leave-personal'), 'recommend' => array());
+$config->group->package->exportOffice->privs['makeup-export'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 5, 'depend' => array('attend-personal', 'makeup-personal'), 'recommend' => array());
+$config->group->package->exportOffice->privs['overtime-export'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 4, 'depend' => array('attend-personal'), 'recommend' => array());
+
+$config->group->package->browseFeedback = new stdclass();
+$config->group->package->browseFeedback->edition = 'open,biz,max,ipd';
+$config->group->package->browseFeedback->vision = 'rnd,lite,or';
+$config->group->package->browseFeedback->order = 5;
+$config->group->package->browseFeedback->subset = 'feedback';
+$config->group->package->browseFeedback->privs = array();
+$config->group->package->browseFeedback->privs['feedback-adminView'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 25, 'depend' => array('feedback-admin'), 'recommend' => array('feedback-create', 'feedback-edit'));
+$config->group->package->browseFeedback->privs['feedback-admin'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 30, 'depend' => array(), 'recommend' => array('feedback-adminView'));
+
+$config->group->package->manageFeedback = new stdclass();
+$config->group->package->manageFeedback->edition = 'open,biz,max,ipd';
+$config->group->package->manageFeedback->vision = 'rnd,lite,or';
+$config->group->package->manageFeedback->order = 10;
+$config->group->package->manageFeedback->subset = 'feedback';
+$config->group->package->manageFeedback->privs = array();
+$config->group->package->manageFeedback->privs['feedback-create'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 0, 'depend' => array('feedback-admin'), 'recommend' => array('feedback-activate', 'feedback-ask', 'feedback-assignTo', 'feedback-close', 'feedback-comment', 'feedback-edit'));
+$config->group->package->manageFeedback->privs['feedback-edit'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 1, 'depend' => array('feedback-admin'), 'recommend' => array('feedback-activate', 'feedback-ask', 'feedback-assignTo', 'feedback-batchEdit', 'feedback-close', 'feedback-comment', 'feedback-create'));
+$config->group->package->manageFeedback->privs['feedback-assignTo'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 4, 'depend' => array('feedback-admin'), 'recommend' => array('feedback-activate', 'feedback-ask', 'feedback-batchAssignTo', 'feedback-close', 'feedback-comment', 'feedback-create', 'feedback-edit'));
+$config->group->package->manageFeedback->privs['feedback-comment'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 5, 'depend' => array('feedback-admin'), 'recommend' => array('feedback-activate', 'feedback-ask', 'feedback-assignTo', 'feedback-close', 'feedback-create', 'feedback-edit'));
+$config->group->package->manageFeedback->privs['feedback-ask'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 6, 'depend' => array('feedback-admin'), 'recommend' => array('feedback-activate', 'feedback-assignTo', 'feedback-close', 'feedback-comment', 'feedback-create', 'feedback-edit'));
+$config->group->package->manageFeedback->privs['feedback-close'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 8, 'depend' => array('feedback-admin'), 'recommend' => array('feedback-activate', 'feedback-ask', 'feedback-assignTo', 'feedback-batchClose', 'feedback-comment', 'feedback-create', 'feedback-edit'));
+$config->group->package->manageFeedback->privs['feedback-activate'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('feedback-admin'), 'recommend' => array('feedback-ask', 'feedback-assignTo', 'feedback-close', 'feedback-comment', 'feedback-create', 'feedback-edit'));
+$config->group->package->manageFeedback->privs['feedback-batchEdit'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('feedback-admin'), 'recommend' => array('feedback-edit'));
+$config->group->package->manageFeedback->privs['feedback-batchClose'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 9, 'depend' => array('feedback-admin'), 'recommend' => array('feedback-close'));
+$config->group->package->manageFeedback->privs['feedback-batchAssignTo'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 7, 'depend' => array('feedback-admin'), 'recommend' => array('feedback-assignTo'));
+
+$config->group->package->importFeedback = new stdclass();
+$config->group->package->importFeedback->edition = 'open,biz,max,ipd';
+$config->group->package->importFeedback->vision = 'rnd,lite,or';
+$config->group->package->importFeedback->order = 15;
+$config->group->package->importFeedback->subset = 'feedback';
+$config->group->package->importFeedback->privs = array();
+$config->group->package->importFeedback->privs['feedback-export'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 0, 'depend' => array('feedback-admin'), 'recommend' => array());
+$config->group->package->importFeedback->privs['feedback-import'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('feedback-admin', 'feedback-exportTemplate'), 'recommend' => array());
+$config->group->package->importFeedback->privs['feedback-exportTemplate'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('feedback-admin', 'feedback-import'), 'recommend' => array());
+
+$config->group->package->manageFeedback = new stdclass();
+$config->group->package->manageFeedback->edition = 'open,biz,max,ipd';
+$config->group->package->manageFeedback->vision = 'rnd,lite,or';
+$config->group->package->manageFeedback->order = 20;
+$config->group->package->manageFeedback->subset = 'feedback';
+$config->group->package->manageFeedback->privs = array();
+$config->group->package->manageFeedback->privs['feedback-editOthers'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('feedback-admin'), 'recommend' => array('feedback-edit'));
+$config->group->package->manageFeedback->privs['feedback-toTask'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('feedback-admin'), 'recommend' => array('feedback-reply', 'feedback-review', 'feedback-toBug', 'feedback-toStory', 'feedback-toTicket', 'feedback-toTodo', 'feedback-toUserStory'));
+$config->group->package->manageFeedback->privs['feedback-toTodo'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 7, 'depend' => array('feedback-admin'), 'recommend' => array('feedback-reply', 'feedback-review', 'feedback-toBug', 'feedback-toStory', 'feedback-toTask', 'feedback-toTicket', 'feedback-toUserStory'));
+$config->group->package->manageFeedback->privs['feedback-toBug'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 6, 'depend' => array('feedback-admin'), 'recommend' => array('feedback-reply', 'feedback-review', 'feedback-toStory', 'feedback-toTask', 'feedback-toTicket', 'feedback-toTodo', 'feedback-toUserStory'));
+$config->group->package->manageFeedback->privs['feedback-toStory'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('feedback-admin'), 'recommend' => array('feedback-reply', 'feedback-review', 'feedback-toBug', 'feedback-toTask', 'feedback-toTicket', 'feedback-toTodo', 'feedback-toUserStory'));
+$config->group->package->manageFeedback->privs['feedback-toTicket'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 8, 'depend' => array('feedback-admin'), 'recommend' => array('feedback-reply', 'feedback-review', 'feedback-toBug', 'feedback-toStory', 'feedback-toTask', 'feedback-toTodo', 'feedback-toUserStory'));
+$config->group->package->manageFeedback->privs['feedback-toUserStory'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('feedback-admin'), 'recommend' => array('feedback-reply', 'feedback-review', 'feedback-toBug', 'feedback-toStory', 'feedback-toTask', 'feedback-toTicket', 'feedback-toTodo'));
+$config->group->package->manageFeedback->privs['feedback-review'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array('feedback-admin'), 'recommend' => array('feedback-batchReview', 'feedback-reply', 'feedback-toBug', 'feedback-toStory', 'feedback-toTask', 'feedback-toTicket', 'feedback-toTodo', 'feedback-toUserStory'));
+$config->group->package->manageFeedback->privs['feedback-reply'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('feedback-admin'), 'recommend' => array('feedback-review', 'feedback-toBug', 'feedback-toStory', 'feedback-toTask', 'feedback-toTicket', 'feedback-toTodo', 'feedback-toUserStory'));
+$config->group->package->manageFeedback->privs['feedback-batchReview'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('feedback-admin'), 'recommend' => array('feedback-review'));
+$config->group->package->manageFeedback->privs['feedback-syncProduct'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 9, 'depend' => array('feedback-admin'), 'recommend' => array());
+
+$config->group->package->faq = new stdclass();
+$config->group->package->faq->edition = 'open,biz,max,ipd';
+$config->group->package->faq->vision = 'rnd,lite,or';
+$config->group->package->faq->order = 5;
+$config->group->package->faq->subset = 'faq';
+$config->group->package->faq->privs = array();
+$config->group->package->faq->privs['faq-browse'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 5, 'depend' => array(), 'recommend' => array('faq-create', 'faq-edit'));
+$config->group->package->faq->privs['faq-create'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('faq-browse'), 'recommend' => array('faq-edit'));
+$config->group->package->faq->privs['faq-edit'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array('faq-browse'), 'recommend' => array('faq-create'));
+$config->group->package->faq->privs['faq-delete'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 20, 'depend' => array('faq-browse'), 'recommend' => array('faq-create', 'faq-edit'));
+
+$config->group->package->browseTicket = new stdclass();
+$config->group->package->browseTicket->edition = 'open,biz,max,ipd';
+$config->group->package->browseTicket->vision = 'rnd,lite,or';
+$config->group->package->browseTicket->order = 5;
+$config->group->package->browseTicket->subset = 'ticket';
+$config->group->package->browseTicket->privs = array();
+$config->group->package->browseTicket->privs['ticket-view'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 20, 'depend' => array('ticket-browse'), 'recommend' => array('ticket-edit'));
+$config->group->package->browseTicket->privs['ticket-browse'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 25, 'depend' => array(), 'recommend' => array('ticket-create', 'ticket-edit', 'ticket-view'));
+
+$config->group->package->manageTicket = new stdclass();
+$config->group->package->manageTicket->edition = 'open,biz,max,ipd';
+$config->group->package->manageTicket->vision = 'rnd,lite,or';
+$config->group->package->manageTicket->order = 10;
+$config->group->package->manageTicket->subset = 'ticket';
+$config->group->package->manageTicket->privs = array();
+$config->group->package->manageTicket->privs['ticket-create'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 0, 'depend' => array('ticket-browse'), 'recommend' => array('ticket-activate', 'ticket-close', 'ticket-edit'));
+$config->group->package->manageTicket->privs['ticket-edit'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 1, 'depend' => array('ticket-browse'), 'recommend' => array('ticket-activate', 'ticket-close', 'ticket-create'));
+$config->group->package->manageTicket->privs['ticket-assignTo'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 3, 'depend' => array('ticket-browse'), 'recommend' => array('ticket-batchAssignTo', 'ticket-create', 'ticket-edit'));
+$config->group->package->manageTicket->privs['ticket-createBug'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('ticket-browse'), 'recommend' => array('ticket-createStory', 'ticket-finish', 'ticket-start'));
+$config->group->package->manageTicket->privs['ticket-createStory'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 6, 'depend' => array('ticket-browse'), 'recommend' => array('ticket-createBug', 'ticket-finish', 'ticket-start'));
+$config->group->package->manageTicket->privs['ticket-start'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 7, 'depend' => array('ticket-browse'), 'recommend' => array('ticket-activate', 'ticket-assignTo', 'ticket-close', 'ticket-create', 'ticket-createBug', 'ticket-createStory', 'ticket-edit', 'ticket-finish'));
+$config->group->package->manageTicket->privs['ticket-finish'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 8, 'depend' => array('ticket-browse'), 'recommend' => array('ticket-createBug', 'ticket-createStory', 'ticket-start'));
+$config->group->package->manageTicket->privs['ticket-close'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 10, 'depend' => array('ticket-browse'), 'recommend' => array('ticket-batchClose', 'ticket-edit'));
+$config->group->package->manageTicket->privs['ticket-activate'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 12, 'depend' => array('ticket-browse'), 'recommend' => array('ticket-batchActivate'));
+$config->group->package->manageTicket->privs['ticket-batchEdit'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('ticket-browse'), 'recommend' => array('ticket-edit'));
+$config->group->package->manageTicket->privs['ticket-batchClose'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 11, 'depend' => array('ticket-browse'), 'recommend' => array('ticket-close'));
+$config->group->package->manageTicket->privs['ticket-batchActivate'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 13, 'depend' => array('ticket-browse'), 'recommend' => array('ticket-activate'));
+$config->group->package->manageTicket->privs['ticket-batchFinish'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 9, 'depend' => array('ticket-browse'), 'recommend' => array('ticket-finish'));
+$config->group->package->manageTicket->privs['ticket-batchAssignTo'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('ticket-browse'), 'recommend' => array('ticket-assignTo'));
+$config->group->package->manageTicket->privs['ticket-syncProduct'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 14, 'depend' => array('ticket-browse'), 'recommend' => array());
+
+$config->group->package->importTicket = new stdclass();
+$config->group->package->importTicket->edition = 'open,biz,max,ipd';
+$config->group->package->importTicket->vision = 'rnd,lite,or';
+$config->group->package->importTicket->order = 15;
+$config->group->package->importTicket->subset = 'ticket';
+$config->group->package->importTicket->privs = array();
+$config->group->package->importTicket->privs['ticket-exportTemplate'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 1, 'depend' => array('ticket-browse', 'ticket-import'), 'recommend' => array());
+$config->group->package->importTicket->privs['ticket-import'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 2, 'depend' => array('ticket-browse', 'ticket-exportTemplate'), 'recommend' => array());
+$config->group->package->importTicket->privs['ticket-export'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 0, 'depend' => array('ticket-browse'), 'recommend' => array());
+
+$config->group->package->deleteFeedback = new stdclass();
+$config->group->package->deleteFeedback->edition = 'open,biz,max,ipd';
+$config->group->package->deleteFeedback->vision = 'rnd,lite,or';
+$config->group->package->deleteFeedback->order = 25;
+$config->group->package->deleteFeedback->subset = 'feedback';
+$config->group->package->deleteFeedback->privs = array();
+$config->group->package->deleteFeedback->privs['feedback-delete'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 95, 'depend' => array('feedback-admin'), 'recommend' => array('feedback-create', 'feedback-edit'));
+
+$config->group->package->deleteTIcket = new stdclass();
+$config->group->package->deleteTIcket->edition = 'open,biz,max,ipd';
+$config->group->package->deleteTIcket->vision = 'rnd,lite,or';
+$config->group->package->deleteTIcket->order = 25;
+$config->group->package->deleteTIcket->subset = 'ticket';
+$config->group->package->deleteTIcket->privs = array();
+$config->group->package->deleteTIcket->privs['ticket-delete'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 65, 'depend' => array('ticket-browse'), 'recommend' => array('ticket-create', 'ticket-edit'));
+
+$config->group->package->feedbackPriv = new stdclass();
+$config->group->package->feedbackPriv->edition = 'open,biz,max,ipd';
+$config->group->package->feedbackPriv->vision = 'rnd,lite,or';
+$config->group->package->feedbackPriv->order = 5;
+$config->group->package->feedbackPriv->subset = 'feedbackpriv';
+$config->group->package->feedbackPriv->privs = array();
+$config->group->package->feedbackPriv->privs['feedback-products'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 135, 'depend' => array(), 'recommend' => array('feedback-manageProduct', 'feedback-productSetting'));
+$config->group->package->feedbackPriv->privs['feedback-manageProduct'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 140, 'depend' => array('feedback-products'), 'recommend' => array('feedback-productSetting'));
+$config->group->package->feedbackPriv->privs['feedback-productSetting'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 160, 'depend' => array('feedback-products'), 'recommend' => array('feedback-manageProduct'));
+
+$config->group->package->browseCourse = new stdclass();
+$config->group->package->browseCourse->edition = 'open,biz,max,ipd';
+$config->group->package->browseCourse->vision = 'rnd,lite,or';
+$config->group->package->browseCourse->order = 5;
+$config->group->package->browseCourse->subset = 'traincourse';
+$config->group->package->browseCourse->privs = array();
+$config->group->package->browseCourse->privs['traincourse-browse'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array());
+$config->group->package->browseCourse->privs['traincourse-viewCourse'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 30, 'depend' => array('traincourse-browse'), 'recommend' => array());
+$config->group->package->browseCourse->privs['traincourse-viewChapter'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 35, 'depend' => array('traincourse-browse', 'traincourse-viewCourse'), 'recommend' => array());
+
+$config->group->package->manageTrainCourse = new stdclass();
+$config->group->package->manageTrainCourse->edition = 'open,biz,max,ipd';
+$config->group->package->manageTrainCourse->vision = 'rnd,lite,or';
+$config->group->package->manageTrainCourse->order = 10;
+$config->group->package->manageTrainCourse->subset = 'traincourse';
+$config->group->package->manageTrainCourse->privs = array();
+$config->group->package->manageTrainCourse->privs['traincourse-admin'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array(), 'recommend' => array());
+$config->group->package->manageTrainCourse->privs['traincourse-deleteCourse'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('traincourse-admin'), 'recommend' => array('traincourse-uploadCourse'));
+$config->group->package->manageTrainCourse->privs['traincourse-changeStatus'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('traincourse-admin'), 'recommend' => array('traincourse-uploadCourse'));
+$config->group->package->manageTrainCourse->privs['traincourse-uploadCourse'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('traincourse-admin'), 'recommend' => array('traincourse-deleteCourse'));
+$config->group->package->manageTrainCourse->privs['traincourse-batchImport'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array(), 'recommend' => array());
+$config->group->package->manageTrainCourse->privs['traincourse-cloudImport'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->system = new stdclass();
+$config->group->package->system->edition = 'open,biz,max,ipd';
+$config->group->package->system->vision = 'rnd';
+$config->group->package->system->order = 2180;
+$config->group->package->system->subset = 'ops';
+$config->group->package->system->privs = array();
+$config->group->package->system->privs['system-dblist'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array());
+$config->group->package->system->privs['system-configdomain'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array(), 'recommend' => array());
+$config->group->package->system->privs['system-ossview'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->host = new stdclass();
+$config->group->package->host->edition = 'open,biz,max,ipd';
+$config->group->package->host->vision = 'rnd';
+$config->group->package->host->order = 2220;
+$config->group->package->host->subset = 'ops';
+$config->group->package->host->privs = array();
+$config->group->package->host->privs['host-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('ops-index'), 'recommend' => array('host-create', 'host-edit', 'host-treemap', 'host-view'));
+$config->group->package->host->privs['host-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('host-browse', 'ops-index'), 'recommend' => array('host-changeStatus', 'host-edit'));
+$config->group->package->host->privs['host-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array('host-browse', 'ops-index'), 'recommend' => array('host-changeStatus', 'host-create'));
+$config->group->package->host->privs['host-view'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 20, 'depend' => array('host-browse', 'ops-index'), 'recommend' => array('host-create', 'host-edit'));
+$config->group->package->host->privs['host-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 25, 'depend' => array('host-browse', 'ops-index'), 'recommend' => array('host-create', 'host-edit'));
+$config->group->package->host->privs['host-changeStatus'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 30, 'depend' => array('host-browse', 'ops-index'), 'recommend' => array('host-create', 'host-edit'));
+$config->group->package->host->privs['host-treemap'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 35, 'depend' => array('host-browse', 'ops-index'), 'recommend' => array());
+
+$config->group->package->serverRoom = new stdclass();
+$config->group->package->serverRoom->edition = 'open,biz,max,ipd';
+$config->group->package->serverRoom->vision = 'rnd';
+$config->group->package->serverRoom->order = 2240;
+$config->group->package->serverRoom->subset = 'ops';
+$config->group->package->serverRoom->privs = array();
+$config->group->package->serverRoom->privs['serverroom-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array('ops-index'), 'recommend' => array('serverroom-create', 'serverroom-edit', 'serverroom-view'));
+$config->group->package->serverRoom->privs['serverroom-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('ops-index', 'serverroom-browse'), 'recommend' => array('serverroom-edit'));
+$config->group->package->serverRoom->privs['serverroom-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('ops-index', 'serverroom-browse'), 'recommend' => array('serverroom-create'));
+$config->group->package->serverRoom->privs['serverroom-view'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('ops-index', 'serverroom-browse'), 'recommend' => array('serverroom-create', 'serverroom-edit'));
+$config->group->package->serverRoom->privs['serverroom-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('ops-index', 'serverroom-browse'), 'recommend' => array('serverroom-create', 'serverroom-edit'));
+
+$config->group->package->account = new stdclass();
+$config->group->package->account->edition = 'open,biz,max,ipd';
+$config->group->package->account->vision = 'rnd';
+$config->group->package->account->order = 2260;
+$config->group->package->account->subset = 'ops';
+$config->group->package->account->privs = array();
+$config->group->package->account->privs['account-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array('ops-index'), 'recommend' => array('account-create', 'account-edit', 'account-view'));
+$config->group->package->account->privs['account-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('account-browse', 'ops-index'), 'recommend' => array('account-edit'));
+$config->group->package->account->privs['account-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('account-browse', 'ops-index'), 'recommend' => array('account-create'));
+$config->group->package->account->privs['account-view'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('account-browse', 'ops-index'), 'recommend' => array('account-create', 'account-edit'));
+$config->group->package->account->privs['account-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('account-browse', 'ops-index'), 'recommend' => array('account-create', 'account-edit'));
+
+$config->group->package->domain = new stdclass();
+$config->group->package->domain->edition = 'biz,max,ipd';
+$config->group->package->domain->vision = 'rnd,lite,or';
+$config->group->package->domain->order = 2270;
+$config->group->package->domain->subset = 'ops';
+$config->group->package->domain->privs = array();
+$config->group->package->domain->privs['domain-browse'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array('ops-index'), 'recommend' => array('domain-create', 'domain-edit', 'domain-view'));
+$config->group->package->domain->privs['domain-create'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('domain-browse', 'ops-index'), 'recommend' => array('domain-edit'));
+$config->group->package->domain->privs['domain-edit'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('domain-browse', 'ops-index'), 'recommend' => array('domain-create'));
+$config->group->package->domain->privs['domain-view'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('domain-browse', 'ops-index'), 'recommend' => array('domain-create', 'domain-edit'));
+$config->group->package->domain->privs['domain-delete'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('domain-browse', 'ops-index'), 'recommend' => array('domain-create', 'domain-edit'));
+
+$config->group->package->service = new stdclass();
+$config->group->package->service->edition = 'biz,max,ipd';
+$config->group->package->service->vision = 'rnd';
+$config->group->package->service->order = 2280;
+$config->group->package->service->subset = 'ops';
+$config->group->package->service->privs = array();
+$config->group->package->service->privs['service-browse'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array('ops-index'), 'recommend' => array('service-create', 'service-edit', 'service-manage', 'service-view'));
+$config->group->package->service->privs['service-create'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('ops-index', 'service-browse'), 'recommend' => array('service-edit', 'service-manage'));
+$config->group->package->service->privs['service-edit'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('ops-index', 'service-browse'), 'recommend' => array('service-create', 'service-manage'));
+$config->group->package->service->privs['service-delete'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('ops-index', 'service-browse'), 'recommend' => array('service-create', 'service-edit', 'service-manage'));
+$config->group->package->service->privs['service-view'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('ops-index', 'service-browse'), 'recommend' => array('service-create', 'service-edit', 'service-manage'));
+$config->group->package->service->privs['service-manage'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('ops-index', 'service-browse'), 'recommend' => array('service-create', 'service-edit'));
+
+$config->group->package->deployPlan = new stdclass();
+$config->group->package->deployPlan->edition = 'open,biz,max,ipd';
+$config->group->package->deployPlan->vision = 'rnd,lite,or';
+$config->group->package->deployPlan->order = 5;
+$config->group->package->deployPlan->subset = 'deploy';
+$config->group->package->deployPlan->privs = array();
+$config->group->package->deployPlan->privs['deploy-browse'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array('ops-index'), 'recommend' => array('deploy-activate', 'deploy-create', 'deploy-edit', 'deploy-finish', 'deploy-view'));
+$config->group->package->deployPlan->privs['deploy-create'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('deploy-browse', 'ops-index'), 'recommend' => array('deploy-activate', 'deploy-edit', 'deploy-finish'));
+$config->group->package->deployPlan->privs['deploy-edit'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('deploy-browse', 'ops-index'), 'recommend' => array('deploy-activate', 'deploy-create', 'deploy-finish'));
+$config->group->package->deployPlan->privs['deploy-delete'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 6, 'depend' => array('deploy-browse', 'ops-index'), 'recommend' => array('deploy-create', 'deploy-edit'));
+$config->group->package->deployPlan->privs['deploy-activate'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('deploy-browse', 'ops-index'), 'recommend' => array('deploy-create', 'deploy-edit', 'deploy-finish'));
+$config->group->package->deployPlan->privs['deploy-finish'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('deploy-browse', 'ops-index'), 'recommend' => array('deploy-activate', 'deploy-create', 'deploy-edit'));
+$config->group->package->deployPlan->privs['deploy-view'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('deploy-browse', 'ops-index'), 'recommend' => array('deploy-activate', 'deploy-create', 'deploy-edit', 'deploy-finish'));
+$config->group->package->deployPlan->privs['ops-stage'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->deployScope = new stdclass();
+$config->group->package->deployScope->edition = 'open,biz,max,ipd';
+$config->group->package->deployScope->vision = 'rnd,lite,or';
+$config->group->package->deployScope->order = 10;
+$config->group->package->deployScope->subset = 'deploy';
+$config->group->package->deployScope->privs = array();
+$config->group->package->deployScope->privs['deploy-scope'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 35, 'depend' => array('deploy-browse', 'ops-index'), 'recommend' => array('deploy-manageScope'));
+$config->group->package->deployScope->privs['deploy-manageScope'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 40, 'depend' => array('deploy-browse', 'deploy-scope', 'ops-index'), 'recommend' => array());
+
+$config->group->package->deployStep = new stdclass();
+$config->group->package->deployStep->edition = 'open,biz,max,ipd';
+$config->group->package->deployStep->vision = 'rnd,lite,or';
+$config->group->package->deployStep->order = 15;
+$config->group->package->deployStep->subset = 'deploy';
+$config->group->package->deployStep->privs = array();
+$config->group->package->deployStep->privs['testtask-runDeployCase'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 6, 'depend' => array('deploy-browse', 'deploy-steps', 'ops-index'), 'recommend' => array('deploy-assignTo', 'deploy-editStep', 'deploy-finishStep', 'deploy-manageStep', 'testtask-deployCaseResults'));
+$config->group->package->deployStep->privs['testtask-deployCaseResults'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 7, 'depend' => array('deploy-browse', 'deploy-steps', 'ops-index'), 'recommend' => array('deploy-assignTo', 'deploy-editStep', 'deploy-finishStep', 'deploy-manageStep', 'testtask-runDeployCase'));
+$config->group->package->deployStep->privs['deploy-steps'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array('deploy-browse', 'ops-index'), 'recommend' => array('deploy-assignTo', 'deploy-editStep', 'deploy-finishStep', 'deploy-manageStep', 'deploy-viewStep', 'testtask-deployCaseResults', 'testtask-runDeployCase'));
+$config->group->package->deployStep->privs['deploy-manageStep'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('deploy-browse', 'deploy-steps', 'ops-index'), 'recommend' => array('deploy-assignTo', 'deploy-editStep', 'deploy-finishStep', 'testtask-deployCaseResults', 'testtask-runDeployCase'));
+$config->group->package->deployStep->privs['deploy-finishStep'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('deploy-browse', 'deploy-steps', 'ops-index'), 'recommend' => array('deploy-assignTo', 'deploy-editStep', 'deploy-manageStep', 'testtask-deployCaseResults', 'testtask-runDeployCase'));
+$config->group->package->deployStep->privs['deploy-assignTo'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('deploy-browse', 'deploy-steps', 'ops-index'), 'recommend' => array('deploy-editStep', 'deploy-finishStep', 'deploy-manageStep', 'testtask-deployCaseResults', 'testtask-runDeployCase'));
+$config->group->package->deployStep->privs['deploy-viewStep'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('deploy-browse', 'deploy-steps', 'ops-index'), 'recommend' => array('deploy-assignTo', 'deploy-editStep', 'deploy-finishStep', 'deploy-manageStep', 'testtask-deployCaseResults', 'testtask-runDeployCase'));
+$config->group->package->deployStep->privs['deploy-editStep'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('deploy-browse', 'deploy-steps', 'ops-index'), 'recommend' => array('deploy-assignTo', 'deploy-finishStep', 'deploy-manageStep', 'testtask-deployCaseResults', 'testtask-runDeployCase'));
+$config->group->package->deployStep->privs['deploy-deleteStep'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 8, 'depend' => array('deploy-browse', 'deploy-steps', 'ops-index'), 'recommend' => array('deploy-assignTo', 'deploy-editStep', 'deploy-finishStep', 'deploy-manageStep', 'testtask-deployCaseResults', 'testtask-runDeployCase'));
+
+$config->group->package->deployCase = new stdclass();
+$config->group->package->deployCase->edition = 'open,biz,max,ipd';
+$config->group->package->deployCase->vision = 'rnd,lite,or';
+$config->group->package->deployCase->order = 20;
+$config->group->package->deployCase->subset = 'deploy';
+$config->group->package->deployCase->privs = array();
+$config->group->package->deployCase->privs['deploy-cases'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 50, 'depend' => array('deploy-browse', 'ops-index'), 'recommend' => array('deploy-linkCases', 'deploy-unlinkCase'));
+$config->group->package->deployCase->privs['deploy-linkCases'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 55, 'depend' => array('deploy-browse', 'deploy-cases', 'ops-index'), 'recommend' => array('deploy-unlinkCase'));
+$config->group->package->deployCase->privs['deploy-unlinkCase'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 60, 'depend' => array('deploy-browse', 'deploy-cases', 'ops-index'), 'recommend' => array('deploy-batchUnlinkCases', 'deploy-linkCases'));
+$config->group->package->deployCase->privs['deploy-batchUnlinkCases'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 65, 'depend' => array('deploy-browse', 'deploy-cases', 'ops-index'), 'recommend' => array('deploy-unlinkCase'));
+
+$config->group->package->qaIndex = new stdclass();
+$config->group->package->qaIndex->edition = 'open,biz,max,ipd';
+$config->group->package->qaIndex->vision = 'rnd,lite,or';
+$config->group->package->qaIndex->order = 5;
+$config->group->package->qaIndex->subset = 'qa';
+$config->group->package->qaIndex->privs = array();
+$config->group->package->qaIndex->privs['qa-index'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->browseBug = new stdclass();
+$config->group->package->browseBug->edition = 'open,biz,max,ipd';
+$config->group->package->browseBug->vision = 'rnd,lite,or';
+$config->group->package->browseBug->order = 5;
+$config->group->package->browseBug->subset = 'bug';
+$config->group->package->browseBug->privs = array();
+$config->group->package->browseBug->privs['bug-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('qa-index'), 'recommend' => array('bug-report', 'bug-view'));
+$config->group->package->browseBug->privs['bug-view'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 35, 'depend' => array(), 'recommend' => array());
+$config->group->package->browseBug->privs['bug-report'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 85, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->manageBug = new stdclass();
+$config->group->package->manageBug->edition = 'open,biz,max,ipd';
+$config->group->package->manageBug->vision = 'rnd,lite,or';
+$config->group->package->manageBug->order = 10;
+$config->group->package->manageBug->subset = 'bug';
+$config->group->package->manageBug->privs = array();
+$config->group->package->manageBug->privs['bug-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array('bug-view'), 'recommend' => array('bug-activate', 'bug-assignTo', 'bug-batchCreate', 'bug-close', 'bug-confirmBug', 'bug-confirmStoryChange', 'bug-edit', 'bug-linkBugs', 'bug-resolve'));
+$config->group->package->manageBug->privs['bug-batchCreate'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array(), 'recommend' => array('bug-create'));
+$config->group->package->manageBug->privs['bug-batchEdit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array(), 'recommend' => array('bug-edit'));
+$config->group->package->manageBug->privs['bug-confirmBug'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('bug-view'), 'recommend' => array('bug-activate', 'bug-assignTo', 'bug-batchConfirm', 'bug-close', 'bug-confirmStoryChange', 'bug-create', 'bug-edit', 'bug-linkBugs', 'bug-resolve'));
+$config->group->package->manageBug->privs['bug-batchConfirm'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array('bug-confirmBug'));
+$config->group->package->manageBug->privs['bug-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('bug-view'), 'recommend' => array('bug-activate', 'bug-assignTo', 'bug-batchEdit', 'bug-close', 'bug-confirmBug', 'bug-confirmStoryChange', 'bug-create', 'bug-linkBugs', 'bug-resolve'));
+$config->group->package->manageBug->privs['bug-assignTo'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 6, 'depend' => array('bug-view'), 'recommend' => array('bug-activate', 'bug-batchAssignTo', 'bug-close', 'bug-confirmBug', 'bug-confirmStoryChange', 'bug-create', 'bug-edit', 'bug-linkBugs', 'bug-resolve'));
+$config->group->package->manageBug->privs['bug-batchAssignTo'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 7, 'depend' => array(), 'recommend' => array('bug-assignTo'));
+$config->group->package->manageBug->privs['bug-resolve'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 8, 'depend' => array('bug-view'), 'recommend' => array('bug-activate', 'bug-assignTo', 'bug-batchResolve', 'bug-close', 'bug-confirmBug', 'bug-confirmStoryChange', 'bug-create', 'bug-edit', 'bug-linkBugs'));
+$config->group->package->manageBug->privs['bug-batchResolve'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 9, 'depend' => array(), 'recommend' => array('bug-resolve'));
+$config->group->package->manageBug->privs['bug-batchClose'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 11, 'depend' => array(), 'recommend' => array('bug-close'));
+$config->group->package->manageBug->privs['bug-batchActivate'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 13, 'depend' => array(), 'recommend' => array('bug-activate'));
+$config->group->package->manageBug->privs['bug-activate'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 12, 'depend' => array('bug-view'), 'recommend' => array('bug-assignTo', 'bug-batchActivate', 'bug-close', 'bug-confirmBug', 'bug-confirmStoryChange', 'bug-create', 'bug-edit', 'bug-linkBugs', 'bug-resolve'));
+$config->group->package->manageBug->privs['bug-close'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('bug-view'), 'recommend' => array('bug-activate', 'bug-assignTo', 'bug-batchClose', 'bug-confirmBug', 'bug-confirmStoryChange', 'bug-create', 'bug-edit', 'bug-linkBugs', 'bug-resolve'));
+$config->group->package->manageBug->privs['bug-confirmStoryChange'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 14, 'depend' => array('bug-view'), 'recommend' => array('bug-activate', 'bug-assignTo', 'bug-close', 'bug-confirmBug', 'bug-create', 'bug-edit', 'bug-linkBugs', 'bug-resolve'));
+$config->group->package->manageBug->privs['bug-linkBugs'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array('bug-edit'), 'recommend' => array());
+$config->group->package->manageBug->privs['bug-batchChangeModule'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 16, 'depend' => array(), 'recommend' => array('bug-edit'));
+$config->group->package->manageBug->privs['bug-batchChangeBranch'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 17, 'depend' => array(), 'recommend' => array('bug-edit'));
+$config->group->package->manageBug->privs['bug-batchChangePlan'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 18, 'depend' => array(), 'recommend' => array('bug-edit'));
+
+$config->group->package->deleteBug = new stdclass();
+$config->group->package->deleteBug->edition = 'open,biz,max,ipd';
+$config->group->package->deleteBug->vision = 'rnd,lite,or';
+$config->group->package->deleteBug->order = 20;
+$config->group->package->deleteBug->subset = 'bug';
+$config->group->package->deleteBug->privs = array();
+$config->group->package->deleteBug->privs['bug-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 100, 'depend' => array('bug-view'), 'recommend' => array());
+
+$config->group->package->importBug = new stdclass();
+$config->group->package->importBug->edition = 'open,biz,max,ipd';
+$config->group->package->importBug->vision = 'rnd,lite,or';
+$config->group->package->importBug->order = 15;
+$config->group->package->importBug->subset = 'bug';
+$config->group->package->importBug->privs = array();
+$config->group->package->importBug->privs['bug-export'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 90, 'depend' => array(), 'recommend' => array());
+$config->group->package->importBug->privs['bug-import'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 125, 'depend' => array('bug-exportTemplate'), 'recommend' => array());
+$config->group->package->importBug->privs['bug-exportTemplate'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 130, 'depend' => array('bug-import'), 'recommend' => array());
+
+$config->group->package->browseCase = new stdclass();
+$config->group->package->browseCase->edition = 'open,biz,max,ipd';
+$config->group->package->browseCase->vision = 'rnd,lite,or';
+$config->group->package->browseCase->order = 10;
+$config->group->package->browseCase->subset = 'testcase';
+$config->group->package->browseCase->privs = array();
+$config->group->package->browseCase->privs['testcase-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('qa-index'), 'recommend' => array('testcase-groupCase', 'testcase-view', 'testcase-zeroCase'));
+$config->group->package->browseCase->privs['testcase-groupCase'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array(), 'recommend' => array());
+$config->group->package->browseCase->privs['testcase-zeroCase'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array(), 'recommend' => array());
+$config->group->package->browseCase->privs['testcase-view'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 35, 'depend' => array(), 'recommend' => array());
+$config->group->package->browseCase->privs['testcase-bugs'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 95, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->manageCase = new stdclass();
+$config->group->package->manageCase->edition = 'open,biz,max,ipd';
+$config->group->package->manageCase->vision = 'rnd,lite,or';
+$config->group->package->manageCase->order = 15;
+$config->group->package->manageCase->subset = 'testcase';
+$config->group->package->manageCase->privs = array();
+$config->group->package->manageCase->privs['testcase-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array('testcase-view'), 'recommend' => array('testcase-confirmChange', 'testcase-confirmLibcaseChange', 'testcase-confirmStoryChange', 'testcase-edit', 'testcase-ignoreLibcaseChange', 'testcase-linkBugs', 'testcase-linkCases', 'testcase-submit'));
+$config->group->package->manageCase->privs['testcase-batchCreate'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array(), 'recommend' => array('testcase-create'));
+$config->group->package->manageCase->privs['testcase-createBug'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('testcase-view'), 'recommend' => array('testcase-confirmChange', 'testcase-confirmLibcaseChange', 'testcase-confirmStoryChange', 'testcase-create', 'testcase-edit', 'testcase-ignoreLibcaseChange', 'testcase-linkBugs', 'testcase-linkCases', 'testcase-submit'));
+$config->group->package->manageCase->privs['testcase-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('testcase-view'), 'recommend' => array('testcase-confirmChange', 'testcase-confirmLibcaseChange', 'testcase-confirmStoryChange', 'testcase-create', 'testcase-ignoreLibcaseChange', 'testcase-linkBugs', 'testcase-linkCases', 'testcase-submit'));
+$config->group->package->manageCase->privs['testcase-confirmChange'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 6, 'depend' => array('testcase-view'), 'recommend' => array('testcase-confirmLibcaseChange', 'testcase-confirmStoryChange', 'testcase-create', 'testcase-edit', 'testcase-ignoreLibcaseChange', 'testcase-linkBugs', 'testcase-linkCases'));
+$config->group->package->manageCase->privs['testcase-confirmStoryChange'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 7, 'depend' => array('testcase-view'), 'recommend' => array('testcase-confirmChange', 'testcase-confirmLibcaseChange', 'testcase-create', 'testcase-edit', 'testcase-ignoreLibcaseChange', 'testcase-linkBugs', 'testcase-linkCases'));
+$config->group->package->manageCase->privs['testcase-batchEdit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array(), 'recommend' => array());
+$config->group->package->manageCase->privs['testcase-batchChangeModule'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 9, 'depend' => array(), 'recommend' => array('testcase-edit'));
+$config->group->package->manageCase->privs['testcase-batchChangeBranch'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array(), 'recommend' => array('testcase-edit'));
+$config->group->package->manageCase->privs['testcase-linkCases'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 12, 'depend' => array('testcase-view'), 'recommend' => array('testcase-create', 'testcase-edit', 'testcase-linkBugs'));
+$config->group->package->manageCase->privs['testcase-linkBugs'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 13, 'depend' => array('testcase-view'), 'recommend' => array('testcase-create', 'testcase-edit', 'testcase-linkCases'));
+$config->group->package->manageCase->privs['testcase-batchConfirmStoryChange'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 8, 'depend' => array(), 'recommend' => array());
+$config->group->package->manageCase->privs['testcase-batchCaseTypeChange'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 11, 'depend' => array(), 'recommend' => array('testcase-edit'));
+$config->group->package->manageCase->privs['testcase-confirmLibcaseChange'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 14, 'depend' => array('testcase-view'), 'recommend' => array('testcase-confirmChange', 'testcase-confirmStoryChange', 'testcase-create', 'testcase-edit', 'testcase-ignoreLibcaseChange'));
+$config->group->package->manageCase->privs['testcase-ignoreLibcaseChange'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array('testcase-view'), 'recommend' => array('testcase-confirmChange', 'testcase-confirmLibcaseChange', 'testcase-confirmStoryChange', 'testcase-create', 'testcase-edit'));
+$config->group->package->manageCase->privs['testcase-submit'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('testcase-view'), 'recommend' => array('testcase-confirmChange', 'testcase-confirmLibcaseChange', 'testcase-confirmStoryChange', 'testcase-create', 'testcase-edit', 'testcase-ignoreLibcaseChange', 'testcase-linkBugs', 'testcase-linkCases'));
+$config->group->package->manageCase->privs['testcase-updateOrder'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 30, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->importCase = new stdclass();
+$config->group->package->importCase->edition = 'open,biz,max,ipd';
+$config->group->package->importCase->vision = 'rnd,lite,or';
+$config->group->package->importCase->order = 25;
+$config->group->package->importCase->subset = 'testcase';
+$config->group->package->importCase->privs = array();
+$config->group->package->importCase->privs['testcase-export'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array(), 'recommend' => array('testcase-exportXmind'));
+$config->group->package->importCase->privs['testcase-importFromLib'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array('assetlib-caselib', 'caselib-browse'));
+$config->group->package->importCase->privs['testcase-exportTemplate'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('testcase-import'), 'recommend' => array());
+$config->group->package->importCase->privs['testcase-import'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('testcase-exportTemplate'), 'recommend' => array('testcase-importXmind'));
+$config->group->package->importCase->privs['testcase-importXmind'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 6, 'depend' => array(), 'recommend' => array('testcase-import'));
+$config->group->package->importCase->privs['testcase-exportXmind'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array(), 'recommend' => array('testcase-export'));
+
+$config->group->package->deleteCase = new stdclass();
+$config->group->package->deleteCase->edition = 'open,biz,max,ipd';
+$config->group->package->deleteCase->vision = 'rnd,lite,or';
+$config->group->package->deleteCase->order = 30;
+$config->group->package->deleteCase->subset = 'testcase';
+$config->group->package->deleteCase->privs = array();
+$config->group->package->deleteCase->privs['testcase-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 45, 'depend' => array('testcase-view'), 'recommend' => array('testcase-batchDelete'));
+$config->group->package->deleteCase->privs['testcase-batchDelete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 70, 'depend' => array(), 'recommend' => array('testcase-delete'));
+
+$config->group->package->reviewCase = new stdclass();
+$config->group->package->reviewCase->edition = 'open,biz,max,ipd';
+$config->group->package->reviewCase->vision = 'rnd,lite,or';
+$config->group->package->reviewCase->order = 20;
+$config->group->package->reviewCase->subset = 'testcase';
+$config->group->package->reviewCase->privs = array();
+$config->group->package->reviewCase->privs['testcase-review'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 100, 'depend' => array('testcase-view'), 'recommend' => array('testcase-batchReview'));
+$config->group->package->reviewCase->privs['testcase-batchReview'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 105, 'depend' => array(), 'recommend' => array('testcase-review'));
+
+$config->group->package->browseTesttask = new stdclass();
+$config->group->package->browseTesttask->edition = 'open,biz,max,ipd';
+$config->group->package->browseTesttask->vision = 'rnd,lite,or';
+$config->group->package->browseTesttask->order = 5;
+$config->group->package->browseTesttask->subset = 'testtask';
+$config->group->package->browseTesttask->privs = array();
+$config->group->package->browseTesttask->privs['testtask-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('qa-index'), 'recommend' => array());
+$config->group->package->browseTesttask->privs['testtask-view'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array(), 'recommend' => array());
+$config->group->package->browseTesttask->privs['testtask-cases'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 20, 'depend' => array(), 'recommend' => array('testtask-groupCase', 'testtask-report'));
+$config->group->package->browseTesttask->privs['testtask-groupCase'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 25, 'depend' => array('testtask-cases'), 'recommend' => array());
+$config->group->package->browseTesttask->privs['testtask-report'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 90, 'depend' => array('testtask-cases'), 'recommend' => array());
+
+$config->group->package->manageTesttask = new stdclass();
+$config->group->package->manageTesttask->edition = 'open,biz,max,ipd';
+$config->group->package->manageTesttask->vision = 'rnd,lite,or';
+$config->group->package->manageTesttask->order = 10;
+$config->group->package->manageTesttask->subset = 'testtask';
+$config->group->package->manageTesttask->privs = array();
+$config->group->package->manageTesttask->privs['testtask-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array(), 'recommend' => array('testtask-activate', 'testtask-block', 'testtask-close', 'testtask-edit', 'testtask-start'));
+$config->group->package->manageTesttask->privs['testtask-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array(), 'recommend' => array('testtask-activate', 'testtask-block', 'testtask-close', 'testtask-create', 'testtask-start'));
+$config->group->package->manageTesttask->privs['testtask-start'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array(), 'recommend' => array('testtask-activate', 'testtask-block', 'testtask-close', 'testtask-create', 'testtask-edit'));
+$config->group->package->manageTesttask->privs['testtask-activate'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array(), 'recommend' => array('testtask-block', 'testtask-close', 'testtask-create', 'testtask-edit', 'testtask-start'));
+$config->group->package->manageTesttask->privs['testtask-block'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array(), 'recommend' => array('testtask-activate', 'testtask-close', 'testtask-create', 'testtask-edit', 'testtask-start'));
+$config->group->package->manageTesttask->privs['testtask-close'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array('testtask-activate', 'testtask-block', 'testtask-create', 'testtask-edit', 'testtask-start'));
+$config->group->package->manageTesttask->privs['testtask-batchAssign'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 12, 'depend' => array('testtask-cases'), 'recommend' => array());
+$config->group->package->manageTesttask->privs['testtask-linkcase'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 6, 'depend' => array('testtask-cases'), 'recommend' => array('testtask-unlinkcase'));
+$config->group->package->manageTesttask->privs['testtask-unlinkcase'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 7, 'depend' => array('testtask-cases'), 'recommend' => array('testtask-linkcase'));
+$config->group->package->manageTesttask->privs['testtask-runcase'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 9, 'depend' => array('testtask-cases'), 'recommend' => array('testtask-results'));
+$config->group->package->manageTesttask->privs['testtask-results'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 11, 'depend' => array('testtask-cases'), 'recommend' => array('testtask-runcase'));
+$config->group->package->manageTesttask->privs['testtask-batchUnlinkCases'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 8, 'depend' => array('testtask-cases'), 'recommend' => array('testtask-unlinkcase'));
+$config->group->package->manageTesttask->privs['testtask-batchRun'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('testtask-cases'), 'recommend' => array('testtask-runcase'));
+
+$config->group->package->deleteTesttask = new stdclass();
+$config->group->package->deleteTesttask->edition = 'open,biz,max,ipd';
+$config->group->package->deleteTesttask->vision = 'rnd,lite,or';
+$config->group->package->deleteTesttask->order = 15;
+$config->group->package->deleteTesttask->subset = 'testtask';
+$config->group->package->deleteTesttask->privs = array();
+$config->group->package->deleteTesttask->privs['testtask-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 55, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->unitTest = new stdclass();
+$config->group->package->unitTest->edition = 'open,biz,max,ipd';
+$config->group->package->unitTest->vision = 'rnd,lite,or';
+$config->group->package->unitTest->order = 40;
+$config->group->package->unitTest->subset = 'testcase';
+$config->group->package->unitTest->privs = array();
+$config->group->package->unitTest->privs['testtask-browseUnits'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array(), 'recommend' => array());
+$config->group->package->unitTest->privs['testtask-unitCases'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('testtask-browseUnits'), 'recommend' => array());
+$config->group->package->unitTest->privs['testtask-importUnitResult'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('testtask-browseUnits'), 'recommend' => array());
+
+$config->group->package->testsuite = new stdclass();
+$config->group->package->testsuite->edition = 'open,biz,max,ipd';
+$config->group->package->testsuite->vision = 'rnd,lite,or';
+$config->group->package->testsuite->order = 5;
+$config->group->package->testsuite->subset = 'testsuite';
+$config->group->package->testsuite->privs = array();
+$config->group->package->testsuite->privs['testsuite-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array('qa-index'), 'recommend' => array());
+$config->group->package->testsuite->privs['testsuite-view'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->manageTestsuite = new stdclass();
+$config->group->package->manageTestsuite->edition = 'open,biz,max,ipd';
+$config->group->package->manageTestsuite->vision = 'rnd,lite,or';
+$config->group->package->manageTestsuite->order = 10;
+$config->group->package->manageTestsuite->subset = 'testsuite';
+$config->group->package->manageTestsuite->privs = array();
+$config->group->package->manageTestsuite->privs['testsuite-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array('testsuite-browse'), 'recommend' => array('testsuite-edit'));
+$config->group->package->manageTestsuite->privs['testsuite-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 25, 'depend' => array('testsuite-browse', 'testsuite-view'), 'recommend' => array('testsuite-create'));
+$config->group->package->manageTestsuite->privs['testsuite-linkCase'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 35, 'depend' => array('testsuite-view'), 'recommend' => array('testsuite-batchUnlinkCases', 'testsuite-unlinkCase'));
+$config->group->package->manageTestsuite->privs['testsuite-unlinkCase'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 40, 'depend' => array('testsuite-view'), 'recommend' => array('testsuite-linkCase'));
+$config->group->package->manageTestsuite->privs['testsuite-batchUnlinkCases'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 45, 'depend' => array('testsuite-view'), 'recommend' => array('testsuite-unlinkCase'));
+
+$config->group->package->deleteTestsuite = new stdclass();
+$config->group->package->deleteTestsuite->edition = 'open,biz,max,ipd';
+$config->group->package->deleteTestsuite->vision = 'rnd,lite,or';
+$config->group->package->deleteTestsuite->order = 15;
+$config->group->package->deleteTestsuite->subset = 'testsuite';
+$config->group->package->deleteTestsuite->privs = array();
+$config->group->package->deleteTestsuite->privs['testsuite-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 30, 'depend' => array('testsuite-browse', 'testsuite-view'), 'recommend' => array());
+
+$config->group->package->browseTestreport = new stdclass();
+$config->group->package->browseTestreport->edition = 'open,biz,max,ipd';
+$config->group->package->browseTestreport->vision = 'rnd,lite,or';
+$config->group->package->browseTestreport->order = 5;
+$config->group->package->browseTestreport->subset = 'testreport';
+$config->group->package->browseTestreport->privs = array();
+$config->group->package->browseTestreport->privs['testreport-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('qa-index'), 'recommend' => array('testreport-view'));
+$config->group->package->browseTestreport->privs['testreport-view'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->manageTestreport = new stdclass();
+$config->group->package->manageTestreport->edition = 'open,biz,max,ipd';
+$config->group->package->manageTestreport->vision = 'rnd,lite,or';
+$config->group->package->manageTestreport->order = 10;
+$config->group->package->manageTestreport->subset = 'testreport';
+$config->group->package->manageTestreport->privs = array();
+$config->group->package->manageTestreport->privs['testreport-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('testreport-view'), 'recommend' => array('testreport-edit'));
+$config->group->package->manageTestreport->privs['testreport-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 25, 'depend' => array('testreport-view'), 'recommend' => array('testreport-create'));
+
+$config->group->package->deleteTestreport = new stdclass();
+$config->group->package->deleteTestreport->edition = 'open,biz,max,ipd';
+$config->group->package->deleteTestreport->vision = 'rnd,lite,or';
+$config->group->package->deleteTestreport->order = 20;
+$config->group->package->deleteTestreport->subset = 'testreport';
+$config->group->package->deleteTestreport->privs = array();
+$config->group->package->deleteTestreport->privs['testreport-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 20, 'depend' => array('testreport-view'), 'recommend' => array());
+
+$config->group->package->importTestreport = new stdclass();
+$config->group->package->importTestreport->edition = 'open,biz,max,ipd';
+$config->group->package->importTestreport->vision = 'rnd,lite,or';
+$config->group->package->importTestreport->order = 15;
+$config->group->package->importTestreport->subset = 'testreport';
+$config->group->package->importTestreport->privs = array();
+$config->group->package->importTestreport->privs['testreport-export'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 30, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->browseZAHost = new stdclass();
+$config->group->package->browseZAHost->edition = 'open,biz,max,ipd';
+$config->group->package->browseZAHost->vision = 'rnd,lite,or';
+$config->group->package->browseZAHost->order = 5;
+$config->group->package->browseZAHost->subset = 'zahost';
+$config->group->package->browseZAHost->privs = array();
+$config->group->package->browseZAHost->privs['zahost-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('qa-index'), 'recommend' => array('zahost-view'));
+$config->group->package->browseZAHost->privs['zahost-view'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 25, 'depend' => array('zahost-browse'), 'recommend' => array());
+
+$config->group->package->manageZAHost = new stdclass();
+$config->group->package->manageZAHost->edition = 'open,biz,max,ipd';
+$config->group->package->manageZAHost->vision = 'rnd,lite,or';
+$config->group->package->manageZAHost->order = 10;
+$config->group->package->manageZAHost->subset = 'zahost';
+$config->group->package->manageZAHost->privs = array();
+$config->group->package->manageZAHost->privs['zahost-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('zahost-browse'), 'recommend' => array('zahost-edit'));
+$config->group->package->manageZAHost->privs['zahost-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array('zahost-browse'), 'recommend' => array('zahost-create'));
+
+$config->group->package->deleteZAHost = new stdclass();
+$config->group->package->deleteZAHost->edition = 'open,biz,max,ipd';
+$config->group->package->deleteZAHost->vision = 'rnd,lite,or';
+$config->group->package->deleteZAHost->order = 15;
+$config->group->package->deleteZAHost->subset = 'zahost';
+$config->group->package->deleteZAHost->privs = array();
+$config->group->package->deleteZAHost->privs['zahost-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 20, 'depend' => array('zahost-browse'), 'recommend' => array());
+
+$config->group->package->image = new stdclass();
+$config->group->package->image->edition = 'open,biz,max,ipd';
+$config->group->package->image->vision = 'rnd,lite,or';
+$config->group->package->image->order = 20;
+$config->group->package->image->subset = 'zahost';
+$config->group->package->image->privs = array();
+$config->group->package->image->privs['zahost-browseImage'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 30, 'depend' => array('zahost-browse'), 'recommend' => array());
+$config->group->package->image->privs['zahost-downloadImage'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 35, 'depend' => array('zahost-browseImage', 'zahost-cancelDownload'), 'recommend' => array());
+$config->group->package->image->privs['zahost-cancelDownload'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 40, 'depend' => array('zahost-downloadImage'), 'recommend' => array());
+
+$config->group->package->browseZANode = new stdclass();
+$config->group->package->browseZANode->edition = 'open,biz,max,ipd';
+$config->group->package->browseZANode->vision = 'rnd,lite,or';
+$config->group->package->browseZANode->order = 5;
+$config->group->package->browseZANode->subset = 'zanode';
+$config->group->package->browseZANode->privs = array();
+$config->group->package->browseZANode->privs['zanode-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('qa-index'), 'recommend' => array('zanode-view'));
+$config->group->package->browseZANode->privs['zanode-view'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 50, 'depend' => array('zanode-browse'), 'recommend' => array());
+
+$config->group->package->manageZANode = new stdclass();
+$config->group->package->manageZANode->edition = 'open,biz,max,ipd';
+$config->group->package->manageZANode->vision = 'rnd,lite,or';
+$config->group->package->manageZANode->order = 10;
+$config->group->package->manageZANode->subset = 'zanode';
+$config->group->package->manageZANode->privs = array();
+$config->group->package->manageZANode->privs['zanode-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('zanode-browse', 'zanode-view'), 'recommend' => array('zanode-close', 'zanode-edit', 'zanode-getVNC', 'zanode-reboot', 'zanode-resume', 'zanode-start', 'zanode-suspend'));
+$config->group->package->manageZANode->privs['zanode-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array('zanode-browse', 'zanode-view'), 'recommend' => array('zanode-close', 'zanode-create', 'zanode-getVNC', 'zanode-reboot', 'zanode-resume', 'zanode-start', 'zanode-suspend'));
+$config->group->package->manageZANode->privs['zanode-reboot'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 25, 'depend' => array('zanode-browse', 'zanode-view'), 'recommend' => array('zanode-close', 'zanode-create', 'zanode-edit', 'zanode-getVNC', 'zanode-resume', 'zanode-start', 'zanode-suspend'));
+$config->group->package->manageZANode->privs['zanode-resume'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 30, 'depend' => array('zanode-browse', 'zanode-view'), 'recommend' => array('zanode-close', 'zanode-create', 'zanode-edit', 'zanode-getVNC', 'zanode-reboot', 'zanode-start', 'zanode-suspend'));
+$config->group->package->manageZANode->privs['zanode-getVNC'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 35, 'depend' => array('zanode-browse', 'zanode-view'), 'recommend' => array('zanode-close', 'zanode-create', 'zanode-edit', 'zanode-reboot', 'zanode-resume', 'zanode-start', 'zanode-suspend'));
+$config->group->package->manageZANode->privs['zanode-start'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 40, 'depend' => array('zanode-browse', 'zanode-view'), 'recommend' => array('zanode-close', 'zanode-create', 'zanode-edit', 'zanode-getVNC', 'zanode-reboot', 'zanode-resume', 'zanode-suspend'));
+$config->group->package->manageZANode->privs['zanode-close'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 45, 'depend' => array('zanode-browse', 'zanode-view'), 'recommend' => array('zanode-create', 'zanode-edit', 'zanode-getVNC', 'zanode-reboot', 'zanode-resume', 'zanode-start', 'zanode-suspend'));
+$config->group->package->manageZANode->privs['zanode-suspend'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 85, 'depend' => array('zanode-browse', 'zanode-view'), 'recommend' => array('zanode-close', 'zanode-create', 'zanode-edit', 'zanode-getVNC', 'zanode-reboot', 'zanode-resume', 'zanode-start'));
+
+$config->group->package->importZANode = new stdclass();
+$config->group->package->importZANode->edition = 'open,biz,max,ipd';
+$config->group->package->importZANode->vision = 'rnd,lite,or';
+$config->group->package->importZANode->order = 15;
+$config->group->package->importZANode->subset = 'zanode';
+$config->group->package->importZANode->privs = array();
+$config->group->package->importZANode->privs['zanode-createImage'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 55, 'depend' => array('zanode-browse'), 'recommend' => array());
+
+$config->group->package->snapshot = new stdclass();
+$config->group->package->snapshot->edition = 'open,biz,max,ipd';
+$config->group->package->snapshot->vision = 'rnd,lite,or';
+$config->group->package->snapshot->order = 25;
+$config->group->package->snapshot->subset = 'zanode';
+$config->group->package->snapshot->privs = array();
+$config->group->package->snapshot->privs['zanode-browseSnapshot'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 60, 'depend' => array('zanode-view'), 'recommend' => array());
+$config->group->package->snapshot->privs['zanode-createSnapshot'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 65, 'depend' => array('zanode-browse', 'zanode-view'), 'recommend' => array('zanode-editSnapshot'));
+$config->group->package->snapshot->privs['zanode-editSnapshot'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 70, 'depend' => array('zanode-browseSnapshot'), 'recommend' => array('zanode-createSnapshot'));
+$config->group->package->snapshot->privs['zanode-restoreSnapshot'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 75, 'depend' => array('zanode-browseSnapshot'), 'recommend' => array());
+$config->group->package->snapshot->privs['zanode-deleteSnapshot'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 80, 'depend' => array('zanode-browseSnapshot'), 'recommend' => array());
+
+$config->group->package->companyTeam = new stdclass();
+$config->group->package->companyTeam->edition = 'open,biz,max,ipd';
+$config->group->package->companyTeam->vision = 'rnd,lite,or';
+$config->group->package->companyTeam->order = 5;
+$config->group->package->companyTeam->subset = 'systemteam';
+$config->group->package->companyTeam->privs = array();
+$config->group->package->companyTeam->privs['my-team'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 0, 'depend' => array(), 'recommend' => array('user-bug', 'user-dynamic', 'user-effort', 'user-effortcalendar', 'user-execution', 'user-issue', 'user-profile', 'user-risk', 'user-story', 'user-task', 'user-testCase', 'user-testTask', 'user-todo', 'user-todocalendar'));
+$config->group->package->companyTeam->privs['user-todo'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 2, 'depend' => array('my-team'), 'recommend' => array('user-bug', 'user-dynamic', 'user-effort', 'user-effortcalendar', 'user-execution', 'user-issue', 'user-profile', 'user-risk', 'user-story', 'user-task', 'user-testCase', 'user-testTask', 'user-todocalendar'));
+$config->group->package->companyTeam->privs['user-task'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 5, 'depend' => array('my-team', 'user-todo'), 'recommend' => array('user-bug', 'user-dynamic', 'user-effort', 'user-execution', 'user-issue', 'user-profile', 'user-risk', 'user-story', 'user-testCase', 'user-testTask'));
+$config->group->package->companyTeam->privs['user-bug'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 7, 'depend' => array('my-team', 'user-todo'), 'recommend' => array('user-dynamic', 'user-effort', 'user-execution', 'user-issue', 'user-profile', 'user-risk', 'user-story', 'user-task', 'user-testCase', 'user-testTask'));
+$config->group->package->companyTeam->privs['user-dynamic'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 13, 'depend' => array('my-team', 'user-todo'), 'recommend' => array('user-bug', 'user-effort', 'user-execution', 'user-issue', 'user-profile', 'user-risk', 'user-story', 'user-task', 'user-testCase', 'user-testTask'));
+$config->group->package->companyTeam->privs['user-profile'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 14, 'depend' => array('my-team', 'user-todo'), 'recommend' => array('user-bug', 'user-dynamic', 'user-effort', 'user-execution', 'user-issue', 'user-risk', 'user-story', 'user-task', 'user-testCase', 'user-testTask'));
+$config->group->package->companyTeam->privs['user-story'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 6, 'depend' => array('my-team', 'user-todo'), 'recommend' => array('user-bug', 'user-dynamic', 'user-effort', 'user-execution', 'user-issue', 'user-profile', 'user-risk', 'user-task', 'user-testCase', 'user-testTask'));
+$config->group->package->companyTeam->privs['user-testTask'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 8, 'depend' => array('my-team', 'user-todo'), 'recommend' => array('user-bug', 'user-dynamic', 'user-effort', 'user-execution', 'user-issue', 'user-profile', 'user-risk', 'user-story', 'user-task', 'user-testCase'));
+$config->group->package->companyTeam->privs['user-testCase'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 9, 'depend' => array('my-team', 'user-todo'), 'recommend' => array('user-bug', 'user-dynamic', 'user-effort', 'user-execution', 'user-issue', 'user-profile', 'user-risk', 'user-story', 'user-task', 'user-testTask'));
+$config->group->package->companyTeam->privs['user-execution'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 10, 'depend' => array('my-team', 'user-todo'), 'recommend' => array('user-bug', 'user-dynamic', 'user-effort', 'user-issue', 'user-profile', 'user-risk', 'user-story', 'user-task', 'user-testCase', 'user-testTask'));
+$config->group->package->companyTeam->privs['user-effortcalendar'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('my-team', 'user-todo'), 'recommend' => array());
+$config->group->package->companyTeam->privs['user-todocalendar'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('my-team', 'user-todo'), 'recommend' => array());
+$config->group->package->companyTeam->privs['user-effort'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('my-team', 'user-todo'), 'recommend' => array('user-bug', 'user-dynamic', 'user-execution', 'user-issue', 'user-profile', 'user-risk', 'user-story', 'user-task', 'user-testCase', 'user-testTask'));
+$config->group->package->companyTeam->privs['user-issue'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 11, 'depend' => array('my-team', 'user-todo'), 'recommend' => array('user-bug', 'user-dynamic', 'user-effort', 'user-execution', 'user-profile', 'user-risk', 'user-story', 'user-task', 'user-testCase', 'user-testTask'));
+$config->group->package->companyTeam->privs['user-risk'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 12, 'depend' => array('my-team', 'user-todo'), 'recommend' => array('user-bug', 'user-dynamic', 'user-effort', 'user-execution', 'user-issue', 'user-profile', 'user-story', 'user-task', 'user-testCase', 'user-testTask'));
+
+$config->group->package->companyCalendar = new stdclass();
+$config->group->package->companyCalendar->edition = 'open,biz,max,ipd';
+$config->group->package->companyCalendar->vision = 'rnd,lite,or';
+$config->group->package->companyCalendar->order = 5;
+$config->group->package->companyCalendar->subset = 'systemschedule';
+$config->group->package->companyCalendar->privs = array();
+$config->group->package->companyCalendar->privs['company-todo'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 30, 'depend' => array('my-team'), 'recommend' => array());
+
+$config->group->package->companyEffort = new stdclass();
+$config->group->package->companyEffort->edition = 'open,biz,max,ipd';
+$config->group->package->companyEffort->vision = 'rnd,lite,or';
+$config->group->package->companyEffort->order = 5;
+$config->group->package->companyEffort->subset = 'systemeffort';
+$config->group->package->companyEffort->privs = array();
+$config->group->package->companyEffort->privs['company-calendar'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 10, 'depend' => array('company-effort', 'my-team'), 'recommend' => array());
+$config->group->package->companyEffort->privs['company-effort'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 45, 'depend' => array('my-team'), 'recommend' => array('company-calendar'));
+
+$config->group->package->companyDynamic = new stdclass();
+$config->group->package->companyDynamic->edition = 'open,biz,max,ipd';
+$config->group->package->companyDynamic->vision = 'rnd,lite,or';
+$config->group->package->companyDynamic->order = 5;
+$config->group->package->companyDynamic->subset = 'systemdynamic';
+$config->group->package->companyDynamic->privs = array();
+$config->group->package->companyDynamic->privs['company-dynamic'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 20, 'depend' => array('my-team'), 'recommend' => array());
+
+$config->group->package->companySetting = new stdclass();
+$config->group->package->companySetting->edition = 'open,biz,max,ipd';
+$config->group->package->companySetting->vision = 'rnd,lite,or';
+$config->group->package->companySetting->order = 5;
+$config->group->package->companySetting->subset = 'systemcompany';
+$config->group->package->companySetting->privs = array();
+$config->group->package->companySetting->privs['company-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 15, 'depend' => array('company-view', 'my-team'), 'recommend' => array());
+$config->group->package->companySetting->privs['company-view'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 25, 'depend' => array('my-team'), 'recommend' => array('company-edit'));
+
+$config->group->package->companyDataPermission = new stdclass();
+$config->group->package->companyDataPermission->edition = 'open,biz,max,ipd';
+$config->group->package->companyDataPermission->vision = 'rnd,lite,or';
+$config->group->package->companyDataPermission->order = 5;
+$config->group->package->companyDataPermission->subset = 'dataaccess';
+$config->group->package->companyDataPermission->privs = array();
+$config->group->package->companyDataPermission->privs['company-allTodo'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 40, 'depend' => array('my-team', 'user-todo'), 'recommend' => array('company-alleffort'));
+$config->group->package->companyDataPermission->privs['company-alleffort'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 50, 'depend' => array('my-team', 'user-todo'), 'recommend' => array('company-allTodo'));
+
+$config->group->package->programPlan = new stdclass();
+$config->group->package->programPlan->edition = 'open,biz,max,ipd';
+$config->group->package->programPlan->vision = 'rnd,lite,or';
+$config->group->package->programPlan->order = 5;
+$config->group->package->programPlan->subset = 'programplan';
+$config->group->package->programPlan->privs = array();
+$config->group->package->programPlan->privs['programplan-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('programplan-browse'), 'recommend' => array('programplan-edit'));
+$config->group->package->programPlan->privs['programplan-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('programplan-browse'), 'recommend' => array('programplan-create'));
+
+$config->group->package->browseDesign = new stdclass();
+$config->group->package->browseDesign->edition = 'open,biz,max,ipd';
+$config->group->package->browseDesign->vision = 'rnd,lite,or';
+$config->group->package->browseDesign->order = 5;
+$config->group->package->browseDesign->subset = 'design';
+$config->group->package->browseDesign->privs = array();
+$config->group->package->browseDesign->privs['design-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('project-index'), 'recommend' => array('design-view'));
+$config->group->package->browseDesign->privs['design-view'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('design-browse'), 'recommend' => array());
+
+$config->group->package->manageDesign = new stdclass();
+$config->group->package->manageDesign->edition = 'open,biz,max,ipd';
+$config->group->package->manageDesign->vision = 'rnd,lite,or';
+$config->group->package->manageDesign->order = 10;
+$config->group->package->manageDesign->subset = 'design';
+$config->group->package->manageDesign->privs = array();
+$config->group->package->manageDesign->privs['design-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array('design-browse'), 'recommend' => array('design-assignTo', 'design-batchCreate', 'design-edit', 'design-linkCommit', 'design-submit', 'design-unlinkCommit'));
+$config->group->package->manageDesign->privs['design-batchCreate'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('design-browse'), 'recommend' => array('design-create'));
+$config->group->package->manageDesign->privs['design-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('design-browse'), 'recommend' => array('design-assignTo', 'design-create', 'design-linkCommit', 'design-revision', 'design-submit', 'design-unlinkCommit'));
+$config->group->package->manageDesign->privs['design-assignTo'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('design-browse'), 'recommend' => array('design-create', 'design-edit', 'design-linkCommit', 'design-revision', 'design-submit', 'design-unlinkCommit'));
+$config->group->package->manageDesign->privs['design-linkCommit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('design-browse'), 'recommend' => array('design-assignTo', 'design-create', 'design-edit', 'design-revision', 'design-submit', 'design-unlinkCommit', 'design-viewCommit'));
+$config->group->package->manageDesign->privs['design-viewCommit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 6, 'depend' => array('design-browse'), 'recommend' => array('design-linkCommit', 'design-revision'));
+$config->group->package->manageDesign->privs['design-unlinkCommit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('design-browse'), 'recommend' => array('design-assignTo', 'design-create', 'design-edit', 'design-linkCommit', 'design-revision', 'design-submit', 'design-viewCommit'));
+$config->group->package->manageDesign->privs['design-revision'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 45, 'depend' => array('design-viewCommit'), 'recommend' => array('design-linkCommit', 'design-unlinkCommit', 'design-viewCommit'));
+$config->group->package->manageDesign->privs['design-submit'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 7, 'depend' => array('design-browse'), 'recommend' => array());
+
+$config->group->package->deleteDesign = new stdclass();
+$config->group->package->deleteDesign->edition = 'open,biz,max,ipd';
+$config->group->package->deleteDesign->vision = 'rnd,lite,or';
+$config->group->package->deleteDesign->order = 15;
+$config->group->package->deleteDesign->subset = 'design';
+$config->group->package->deleteDesign->privs = array();
+$config->group->package->deleteDesign->privs['design-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 35, 'depend' => array('design-browse'), 'recommend' => array('design-assignTo', 'design-create', 'design-edit', 'design-linkCommit', 'design-submit', 'design-unlinkCommit'));
+
+$config->group->package->manageReview = new stdclass();
+$config->group->package->manageReview->edition = 'open,biz,max,ipd';
+$config->group->package->manageReview->vision = 'rnd,lite,or';
+$config->group->package->manageReview->order = 10;
+$config->group->package->manageReview->subset = 'projectreview';
+$config->group->package->manageReview->privs = array();
+$config->group->package->manageReview->privs['review-browse'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array('project-index'), 'recommend' => array('review-view'));
+$config->group->package->manageReview->privs['review-create'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('review-browse'), 'recommend' => array('review-edit', 'review-recall', 'review-report', 'review-submit', 'review-toAudit'));
+$config->group->package->manageReview->privs['review-edit'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('review-browse'), 'recommend' => array('review-create', 'review-delete', 'review-recall', 'review-report', 'review-submit', 'review-toAudit'));
+$config->group->package->manageReview->privs['review-view'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('review-browse'), 'recommend' => array());
+$config->group->package->manageReview->privs['review-submit'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('review-browse'), 'recommend' => array('review-create', 'review-edit', 'review-recall', 'review-report', 'review-toAudit'));
+$config->group->package->manageReview->privs['review-recall'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 6, 'depend' => array('review-browse'), 'recommend' => array('review-create', 'review-delete', 'review-edit', 'review-report', 'review-submit', 'review-toAudit'));
+$config->group->package->manageReview->privs['review-report'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 7, 'depend' => array('review-browse'), 'recommend' => array('review-create', 'review-delete', 'review-edit', 'review-recall', 'review-submit', 'review-toAudit'));
+$config->group->package->manageReview->privs['review-toAudit'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 8, 'depend' => array('review-browse'), 'recommend' => array('review-create', 'review-delete', 'review-edit', 'review-recall', 'review-report', 'review-submit'));
+$config->group->package->manageReview->privs['review-delete'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('review-browse'), 'recommend' => array('review-create', 'review-edit'));
+
+$config->group->package->manageIssue = new stdclass();
+$config->group->package->manageIssue->edition = 'open,biz,max,ipd';
+$config->group->package->manageIssue->vision = 'rnd,lite,or';
+$config->group->package->manageIssue->order = 5;
+$config->group->package->manageIssue->subset = 'projectreview';
+$config->group->package->manageIssue->privs = array();
+$config->group->package->manageIssue->privs['reviewissue-issue'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array('project-index', 'review-browse'), 'recommend' => array());
+$config->group->package->manageIssue->privs['reviewissue-updateStatus'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('reviewissue-issue'), 'recommend' => array('reviewissue-create', 'reviewissue-delete', 'reviewissue-edit', 'reviewissue-resolved'));
+$config->group->package->manageIssue->privs['reviewissue-resolved'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('reviewissue-issue'), 'recommend' => array('reviewissue-create', 'reviewissue-delete', 'reviewissue-edit', 'reviewissue-updateStatus'));
+$config->group->package->manageIssue->privs['reviewissue-create'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('reviewissue-issue'), 'recommend' => array('reviewissue-delete', 'reviewissue-edit', 'reviewissue-resolved', 'reviewissue-updateStatus'));
+$config->group->package->manageIssue->privs['reviewissue-edit'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('reviewissue-issue'), 'recommend' => array('reviewissue-create', 'reviewissue-delete', 'reviewissue-resolved', 'reviewissue-updateStatus'));
+$config->group->package->manageIssue->privs['reviewissue-view'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('reviewissue-issue'), 'recommend' => array());
+$config->group->package->manageIssue->privs['reviewissue-delete'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 6, 'depend' => array('reviewissue-issue'), 'recommend' => array('reviewissue-create', 'reviewissue-edit', 'reviewissue-resolved', 'reviewissue-updateStatus'));
+
+$config->group->package->projectSetting = new stdclass();
+$config->group->package->projectSetting->edition = 'open,biz,max,ipd';
+$config->group->package->projectSetting->vision = 'rnd,lite,or';
+$config->group->package->projectSetting->order = 5;
+$config->group->package->projectSetting->subset = 'cm';
+$config->group->package->projectSetting->privs = array();
+$config->group->package->projectSetting->privs['cm-create'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('cm-browse', 'cm-view'), 'recommend' => array('cm-delete', 'cm-edit', 'review-browse'));
+$config->group->package->projectSetting->privs['cm-delete'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('cm-browse', 'cm-view'), 'recommend' => array('cm-create', 'cm-edit'));
+$config->group->package->projectSetting->privs['cm-edit'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('cm-browse', 'cm-view'), 'recommend' => array('cm-create', 'cm-delete'));
+$config->group->package->projectSetting->privs['cm-browse'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array('project-index'), 'recommend' => array('cm-view'));
+$config->group->package->projectSetting->privs['cm-view'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('cm-browse'), 'recommend' => array());
+$config->group->package->projectSetting->privs['cm-report'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('cm-browse'), 'recommend' => array());
+
+$config->group->package->browseProjectRelease = new stdclass();
+$config->group->package->browseProjectRelease->edition = 'open,biz,max,ipd';
+$config->group->package->browseProjectRelease->vision = 'rnd,lite,or';
+$config->group->package->browseProjectRelease->order = 5;
+$config->group->package->browseProjectRelease->subset = 'projectrelease';
+$config->group->package->browseProjectRelease->privs = array();
+$config->group->package->browseProjectRelease->privs['projectrelease-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array('project-index'), 'recommend' => array('projectrelease-create', 'projectrelease-edit', 'projectrelease-view'));
+$config->group->package->browseProjectRelease->privs['projectrelease-view'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('projectrelease-browse'), 'recommend' => array('projectrelease-create', 'projectrelease-edit'));
+
+$config->group->package->projectWeekly = new stdclass();
+$config->group->package->projectWeekly->edition = 'open,biz,max,ipd';
+$config->group->package->projectWeekly->vision = 'rnd,lite,or';
+$config->group->package->projectWeekly->order = 5;
+$config->group->package->projectWeekly->subset = 'projectreport';
+$config->group->package->projectWeekly->privs = array();
+$config->group->package->projectWeekly->privs['weekly-index'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('project-index'), 'recommend' => array());
+$config->group->package->projectWeekly->privs['weekly-exportweeklyreport'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('weekly-index'), 'recommend' => array('weekly-index'));
+
+$config->group->package->projectMilestone = new stdclass();
+$config->group->package->projectMilestone->edition = 'open,biz,max,ipd';
+$config->group->package->projectMilestone->vision = 'rnd,lite,or';
+$config->group->package->projectMilestone->order = 10;
+$config->group->package->projectMilestone->subset = 'projectreport';
+$config->group->package->projectMilestone->privs = array();
+$config->group->package->projectMilestone->privs['milestone-index'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('project-index', 'weekly-index'), 'recommend' => array('milestone-saveOtherProblem'));
+$config->group->package->projectMilestone->privs['milestone-saveOtherProblem'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('milestone-index', 'weekly-index'), 'recommend' => array());
+
+$config->group->package->researchPlan = new stdclass();
+$config->group->package->researchPlan->edition = 'open,biz,max,ipd';
+$config->group->package->researchPlan->vision = 'rnd,lite,or';
+$config->group->package->researchPlan->order = 5;
+$config->group->package->researchPlan->subset = 'projectresearch';
+$config->group->package->researchPlan->privs = array();
+$config->group->package->researchPlan->privs['researchplan-browse'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array('project-index'), 'recommend' => array('researchplan-create', 'researchplan-edit', 'researchplan-view'));
+$config->group->package->researchPlan->privs['researchplan-create'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('researchplan-browse'), 'recommend' => array('researchplan-edit', 'researchplan-view'));
+$config->group->package->researchPlan->privs['researchplan-edit'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('researchplan-browse'), 'recommend' => array('researchplan-create', 'researchplan-view'));
+$config->group->package->researchPlan->privs['researchplan-delete'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('researchplan-browse'), 'recommend' => array('researchplan-create', 'researchplan-edit', 'researchplan-view'));
+$config->group->package->researchPlan->privs['researchplan-view'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('researchplan-browse'), 'recommend' => array('researchplan-create', 'researchplan-edit'));
+
+$config->group->package->researchReport = new stdclass();
+$config->group->package->researchReport->edition = 'open,biz,max,ipd';
+$config->group->package->researchReport->vision = 'rnd,lite,or';
+$config->group->package->researchReport->order = 10;
+$config->group->package->researchReport->subset = 'projectresearch';
+$config->group->package->researchReport->privs = array();
+$config->group->package->researchReport->privs['researchreport-browse'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array('project-index', 'researchplan-browse'), 'recommend' => array('researchreport-create', 'researchreport-edit', 'researchreport-view'));
+$config->group->package->researchReport->privs['researchreport-create'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('researchplan-browse', 'researchreport-browse'), 'recommend' => array('researchreport-edit', 'researchreport-view'));
+$config->group->package->researchReport->privs['researchreport-edit'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('researchplan-browse', 'researchreport-browse'), 'recommend' => array('researchreport-create', 'researchreport-view'));
+$config->group->package->researchReport->privs['researchreport-delete'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('researchplan-browse', 'researchreport-browse'), 'recommend' => array('researchreport-create', 'researchreport-edit', 'researchreport-view'));
+$config->group->package->researchReport->privs['researchreport-view'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('researchplan-browse', 'researchreport-browse'), 'recommend' => array('researchreport-create', 'researchreport-edit'));
+
+$config->group->package->budget = new stdclass();
+$config->group->package->budget->edition = 'open,biz,max,ipd';
+$config->group->package->budget->vision = 'rnd,lite,or';
+$config->group->package->budget->order = 15;
+$config->group->package->budget->subset = 'workestimation';
+$config->group->package->budget->privs = array();
+$config->group->package->budget->privs['budget-browse'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('project-index', 'workestimation-index'), 'recommend' => array('budget-summary'));
+$config->group->package->budget->privs['budget-summary'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('workestimation-index'), 'recommend' => array('budget-browse'));
+$config->group->package->budget->privs['budget-create'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array('workestimation-index'), 'recommend' => array('budget-batchCreate'));
+$config->group->package->budget->privs['budget-batchCreate'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 20, 'depend' => array('workestimation-index'), 'recommend' => array('budget-create'));
+$config->group->package->budget->privs['budget-edit'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 25, 'depend' => array('budget-browse', 'workestimation-index'), 'recommend' => array('budget-view'));
+$config->group->package->budget->privs['budget-view'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 30, 'depend' => array('budget-browse', 'workestimation-index'), 'recommend' => array('budget-edit'));
+$config->group->package->budget->privs['budget-delete'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 35, 'depend' => array('budget-browse', 'workestimation-index'), 'recommend' => array('budget-create', 'budget-edit'));
+
+$config->group->package->workEstimation = new stdclass();
+$config->group->package->workEstimation->edition = 'open,biz,max,ipd';
+$config->group->package->workEstimation->vision = 'rnd,lite,or';
+$config->group->package->workEstimation->order = 5;
+$config->group->package->workEstimation->subset = 'workestimation';
+$config->group->package->workEstimation->privs = array();
+$config->group->package->workEstimation->privs['workestimation-index'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('project-index'), 'recommend' => array());
+
+$config->group->package->durationEstimation = new stdclass();
+$config->group->package->durationEstimation->edition = 'open,biz,max,ipd';
+$config->group->package->durationEstimation->vision = 'rnd,lite,or';
+$config->group->package->durationEstimation->order = 10;
+$config->group->package->durationEstimation->subset = 'workestimation';
+$config->group->package->durationEstimation->privs = array();
+$config->group->package->durationEstimation->privs['durationestimation-index'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('budget-browse', 'project-index', 'workestimation-index'), 'recommend' => array('budget-edit', 'durationestimation-create'));
+$config->group->package->durationEstimation->privs['durationestimation-create'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('durationestimation-index', 'workestimation-index'), 'recommend' => array());
+
+$config->group->package->browseIssue = new stdclass();
+$config->group->package->browseIssue->edition = 'open,biz,max,ipd';
+$config->group->package->browseIssue->vision = 'rnd,lite,or';
+$config->group->package->browseIssue->order = 5;
+$config->group->package->browseIssue->subset = 'issue';
+$config->group->package->browseIssue->privs = array();
+$config->group->package->browseIssue->privs['issue-browse'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array('issue-view'));
+$config->group->package->browseIssue->privs['issue-view'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 60, 'depend' => array('issue-browse'), 'recommend' => array());
+
+$config->group->package->manageIssue = new stdclass();
+$config->group->package->manageIssue->edition = 'open,biz,max,ipd';
+$config->group->package->manageIssue->vision = 'rnd,lite,or';
+$config->group->package->manageIssue->order = 10;
+$config->group->package->manageIssue->subset = 'issue';
+$config->group->package->manageIssue->privs = array();
+$config->group->package->manageIssue->privs['issue-create'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('issue-browse', 'issue-view'), 'recommend' => array('issue-activate', 'issue-assignTo', 'issue-batchCreate', 'issue-cancel', 'issue-close', 'issue-confirm', 'issue-edit', 'issue-resolve'));
+$config->group->package->manageIssue->privs['issue-batchCreate'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array('issue-browse'), 'recommend' => array('issue-create'));
+$config->group->package->manageIssue->privs['issue-edit'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 25, 'depend' => array('issue-browse', 'issue-view'), 'recommend' => array('issue-activate', 'issue-assignTo', 'issue-cancel', 'issue-close', 'issue-confirm', 'issue-create', 'issue-resolve'));
+$config->group->package->manageIssue->privs['issue-confirm'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 30, 'depend' => array('issue-browse', 'issue-view'), 'recommend' => array('issue-activate', 'issue-assignTo', 'issue-cancel', 'issue-close', 'issue-create', 'issue-edit', 'issue-resolve'));
+$config->group->package->manageIssue->privs['issue-assignTo'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 35, 'depend' => array('issue-browse', 'issue-view'), 'recommend' => array('issue-activate', 'issue-cancel', 'issue-close', 'issue-confirm', 'issue-create', 'issue-edit', 'issue-resolve'));
+$config->group->package->manageIssue->privs['issue-close'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 40, 'depend' => array('issue-browse', 'issue-view'), 'recommend' => array('issue-activate', 'issue-assignTo', 'issue-cancel', 'issue-confirm', 'issue-create', 'issue-edit', 'issue-resolve'));
+$config->group->package->manageIssue->privs['issue-cancel'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 45, 'depend' => array('issue-browse', 'issue-view'), 'recommend' => array('issue-activate', 'issue-assignTo', 'issue-close', 'issue-confirm', 'issue-create', 'issue-edit', 'issue-resolve'));
+$config->group->package->manageIssue->privs['issue-activate'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 50, 'depend' => array('issue-browse', 'issue-view'), 'recommend' => array('issue-assignTo', 'issue-cancel', 'issue-close', 'issue-confirm', 'issue-create', 'issue-edit', 'issue-resolve'));
+$config->group->package->manageIssue->privs['issue-resolve'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 55, 'depend' => array('issue-browse', 'issue-view'), 'recommend' => array('issue-activate', 'issue-assignTo', 'issue-cancel', 'issue-close', 'issue-confirm', 'issue-create', 'issue-edit'));
+
+$config->group->package->importIssue = new stdclass();
+$config->group->package->importIssue->edition = 'open,biz,max,ipd';
+$config->group->package->importIssue->vision = 'rnd,lite,or';
+$config->group->package->importIssue->order = 15;
+$config->group->package->importIssue->subset = 'issue';
+$config->group->package->importIssue->privs = array();
+$config->group->package->importIssue->privs['issue-export'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 65, 'depend' => array('issue-browse'), 'recommend' => array());
+$config->group->package->importIssue->privs['issue-importFromLib'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 80, 'depend' => array('issue-browse'), 'recommend' => array('assetlib-issue', 'assetlib-issuelib'));
+
+$config->group->package->deleteIssue = new stdclass();
+$config->group->package->deleteIssue->edition = 'open,biz,max,ipd';
+$config->group->package->deleteIssue->vision = 'rnd,lite,or';
+$config->group->package->deleteIssue->order = 20;
+$config->group->package->deleteIssue->subset = 'issue';
+$config->group->package->deleteIssue->privs = array();
+$config->group->package->deleteIssue->privs['issue-delete'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 20, 'depend' => array('issue-browse'), 'recommend' => array());
+
+$config->group->package->importIssueLib = new stdclass();
+$config->group->package->importIssueLib->edition = 'open,biz,max,ipd';
+$config->group->package->importIssueLib->vision = 'rnd,lite,or';
+$config->group->package->importIssueLib->order = 25;
+$config->group->package->importIssueLib->subset = 'issue';
+$config->group->package->importIssueLib->privs = array();
+$config->group->package->importIssueLib->privs['issue-importToLib'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 70, 'depend' => array('issue-view'), 'recommend' => array('issue-batchImportToLib'));
+$config->group->package->importIssueLib->privs['issue-batchImportToLib'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 75, 'depend' => array('issue-browse'), 'recommend' => array('issue-importToLib'));
+
+$config->group->package->browseRisk = new stdclass();
+$config->group->package->browseRisk->edition = 'open,biz,max,ipd';
+$config->group->package->browseRisk->vision = 'rnd,lite,or';
+$config->group->package->browseRisk->order = 5;
+$config->group->package->browseRisk->subset = 'risk';
+$config->group->package->browseRisk->privs = array();
+$config->group->package->browseRisk->privs['risk-browse'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array('risk-view'));
+$config->group->package->browseRisk->privs['risk-view'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 55, 'depend' => array('risk-browse'), 'recommend' => array());
+
+$config->group->package->manageRisk = new stdclass();
+$config->group->package->manageRisk->edition = 'open,biz,max,ipd';
+$config->group->package->manageRisk->vision = 'rnd,lite,or';
+$config->group->package->manageRisk->order = 10;
+$config->group->package->manageRisk->subset = 'risk';
+$config->group->package->manageRisk->privs = array();
+$config->group->package->manageRisk->privs['risk-create'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array('risk-browse', 'risk-view'), 'recommend' => array('risk-activate', 'risk-assignTo', 'risk-batchCreate', 'risk-cancel', 'risk-close', 'risk-edit', 'risk-hangup', 'risk-track'));
+$config->group->package->manageRisk->privs['risk-edit'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('risk-browse', 'risk-view'), 'recommend' => array('risk-activate', 'risk-assignTo', 'risk-cancel', 'risk-close', 'risk-create', 'risk-hangup', 'risk-track'));
+$config->group->package->manageRisk->privs['risk-activate'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('risk-browse', 'risk-view'), 'recommend' => array('risk-assignTo', 'risk-cancel', 'risk-close', 'risk-create', 'risk-edit', 'risk-hangup', 'risk-track'));
+$config->group->package->manageRisk->privs['risk-close'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 8, 'depend' => array('risk-browse', 'risk-view'), 'recommend' => array('risk-activate', 'risk-assignTo', 'risk-cancel', 'risk-create', 'risk-edit', 'risk-hangup', 'risk-track'));
+$config->group->package->manageRisk->privs['risk-hangup'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 6, 'depend' => array('risk-browse', 'risk-view'), 'recommend' => array('risk-activate', 'risk-assignTo', 'risk-cancel', 'risk-close', 'risk-create', 'risk-edit', 'risk-track'));
+$config->group->package->manageRisk->privs['risk-batchCreate'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('risk-browse', 'risk-view'), 'recommend' => array('risk-create'));
+$config->group->package->manageRisk->privs['risk-cancel'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 7, 'depend' => array('risk-browse', 'risk-view'), 'recommend' => array('risk-activate', 'risk-assignTo', 'risk-close', 'risk-create', 'risk-edit', 'risk-hangup', 'risk-track'));
+$config->group->package->manageRisk->privs['risk-track'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('risk-browse', 'risk-view'), 'recommend' => array('risk-activate', 'risk-assignTo', 'risk-cancel', 'risk-close', 'risk-create', 'risk-edit', 'risk-hangup'));
+$config->group->package->manageRisk->privs['risk-assignTo'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('risk-browse', 'risk-view'), 'recommend' => array('risk-activate', 'risk-cancel', 'risk-close', 'risk-create', 'risk-edit', 'risk-hangup', 'risk-track'));
+
+$config->group->package->importRisk = new stdclass();
+$config->group->package->importRisk->edition = 'open,biz,max,ipd';
+$config->group->package->importRisk->vision = 'rnd,lite,or';
+$config->group->package->importRisk->order = 15;
+$config->group->package->importRisk->subset = 'risk';
+$config->group->package->importRisk->privs = array();
+$config->group->package->importRisk->privs['risk-importFromLib'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('risk-browse', 'risk-view'), 'recommend' => array('assetlib-risk', 'assetlib-risklib'));
+$config->group->package->importRisk->privs['risk-export'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array('risk-browse'), 'recommend' => array());
+
+$config->group->package->deleteRisk = new stdclass();
+$config->group->package->deleteRisk->edition = 'open,biz,max,ipd';
+$config->group->package->deleteRisk->vision = 'rnd,lite,or';
+$config->group->package->deleteRisk->order = 20;
+$config->group->package->deleteRisk->subset = 'risk';
+$config->group->package->deleteRisk->privs = array();
+$config->group->package->deleteRisk->privs['risk-delete'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 20, 'depend' => array('risk-browse'), 'recommend' => array());
+
+$config->group->package->importRiskLib = new stdclass();
+$config->group->package->importRiskLib->edition = 'open,biz,max,ipd';
+$config->group->package->importRiskLib->vision = 'rnd,lite,or';
+$config->group->package->importRiskLib->order = 25;
+$config->group->package->importRiskLib->subset = 'risk';
+$config->group->package->importRiskLib->privs = array();
+$config->group->package->importRiskLib->privs['risk-importToLib'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 65, 'depend' => array('risk-view'), 'recommend' => array('risk-batchImportToLib'));
+$config->group->package->importRiskLib->privs['risk-batchImportToLib'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 70, 'depend' => array('risk-browse'), 'recommend' => array('risk-importToLib'));
+
+$config->group->package->browseOpportunity = new stdclass();
+$config->group->package->browseOpportunity->edition = 'open,biz,max,ipd';
+$config->group->package->browseOpportunity->vision = 'rnd,lite,or';
+$config->group->package->browseOpportunity->order = 5;
+$config->group->package->browseOpportunity->subset = 'opportunity';
+$config->group->package->browseOpportunity->privs = array();
+$config->group->package->browseOpportunity->privs['opportunity-browse'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array('opportunity-view'));
+$config->group->package->browseOpportunity->privs['opportunity-view'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 50, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->manageOpportunity = new stdclass();
+$config->group->package->manageOpportunity->edition = 'open,biz,max,ipd';
+$config->group->package->manageOpportunity->vision = 'rnd,lite,or';
+$config->group->package->manageOpportunity->order = 10;
+$config->group->package->manageOpportunity->subset = 'opportunity';
+$config->group->package->manageOpportunity->privs = array();
+$config->group->package->manageOpportunity->privs['opportunity-create'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array('opportunity-browse', 'opportunity-view'), 'recommend' => array('opportunity-activate', 'opportunity-assignTo', 'opportunity-batchCreate', 'opportunity-cancel', 'opportunity-close', 'opportunity-edit', 'opportunity-hangup', 'opportunity-track'));
+$config->group->package->manageOpportunity->privs['opportunity-edit'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('opportunity-browse', 'opportunity-view'), 'recommend' => array('opportunity-activate', 'opportunity-assignTo', 'opportunity-batchEdit', 'opportunity-cancel', 'opportunity-close', 'opportunity-create', 'opportunity-hangup', 'opportunity-track'));
+$config->group->package->manageOpportunity->privs['opportunity-activate'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('opportunity-browse', 'opportunity-view'), 'recommend' => array('opportunity-assignTo', 'opportunity-batchActivate', 'opportunity-cancel', 'opportunity-close', 'opportunity-create', 'opportunity-edit', 'opportunity-hangup', 'opportunity-track'));
+$config->group->package->manageOpportunity->privs['opportunity-close'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('opportunity-browse', 'opportunity-view'), 'recommend' => array('opportunity-activate', 'opportunity-assignTo', 'opportunity-batchClose', 'opportunity-cancel', 'opportunity-create', 'opportunity-edit', 'opportunity-hangup', 'opportunity-track'));
+$config->group->package->manageOpportunity->privs['opportunity-hangup'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 8, 'depend' => array('opportunity-browse', 'opportunity-view'), 'recommend' => array('opportunity-activate', 'opportunity-assignTo', 'opportunity-batchHangup', 'opportunity-cancel', 'opportunity-close', 'opportunity-create', 'opportunity-edit', 'opportunity-track'));
+$config->group->package->manageOpportunity->privs['opportunity-cancel'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 13, 'depend' => array('opportunity-browse', 'opportunity-view'), 'recommend' => array('opportunity-activate', 'opportunity-assignTo', 'opportunity-batchCancel', 'opportunity-close', 'opportunity-create', 'opportunity-edit', 'opportunity-hangup', 'opportunity-track'));
+$config->group->package->manageOpportunity->privs['opportunity-track'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 12, 'depend' => array('opportunity-browse', 'opportunity-view'), 'recommend' => array('opportunity-activate', 'opportunity-assignTo', 'opportunity-cancel', 'opportunity-close', 'opportunity-create', 'opportunity-edit', 'opportunity-hangup'));
+$config->group->package->manageOpportunity->privs['opportunity-assignTo'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 6, 'depend' => array('opportunity-browse', 'opportunity-view'), 'recommend' => array('opportunity-activate', 'opportunity-batchAssignTo', 'opportunity-cancel', 'opportunity-close', 'opportunity-create', 'opportunity-edit', 'opportunity-hangup', 'opportunity-track'));
+$config->group->package->manageOpportunity->privs['opportunity-batchCreate'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('opportunity-browse'), 'recommend' => array('opportunity-create'));
+$config->group->package->manageOpportunity->privs['opportunity-batchEdit'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('opportunity-browse'), 'recommend' => array('opportunity-edit'));
+$config->group->package->manageOpportunity->privs['opportunity-batchAssignTo'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 7, 'depend' => array('opportunity-browse'), 'recommend' => array('opportunity-assignTo'));
+$config->group->package->manageOpportunity->privs['opportunity-batchClose'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 11, 'depend' => array('opportunity-browse'), 'recommend' => array('opportunity-close'));
+$config->group->package->manageOpportunity->privs['opportunity-batchCancel'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 14, 'depend' => array('opportunity-browse'), 'recommend' => array('opportunity-cancel'));
+$config->group->package->manageOpportunity->privs['opportunity-batchHangup'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 9, 'depend' => array('opportunity-browse'), 'recommend' => array('opportunity-hangup'));
+$config->group->package->manageOpportunity->privs['opportunity-batchActivate'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('opportunity-browse'), 'recommend' => array('opportunity-activate'));
+
+$config->group->package->deleteOpportunity = new stdclass();
+$config->group->package->deleteOpportunity->edition = 'open,biz,max,ipd';
+$config->group->package->deleteOpportunity->vision = 'rnd,lite,or';
+$config->group->package->deleteOpportunity->order = 20;
+$config->group->package->deleteOpportunity->subset = 'opportunity';
+$config->group->package->deleteOpportunity->privs = array();
+$config->group->package->deleteOpportunity->privs['opportunity-delete'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 20, 'depend' => array('opportunity-browse'), 'recommend' => array());
+
+$config->group->package->importOpportunityLib = new stdclass();
+$config->group->package->importOpportunityLib->edition = 'open,biz,max,ipd';
+$config->group->package->importOpportunityLib->vision = 'rnd,lite,or';
+$config->group->package->importOpportunityLib->order = 25;
+$config->group->package->importOpportunityLib->subset = 'opportunity';
+$config->group->package->importOpportunityLib->privs = array();
+$config->group->package->importOpportunityLib->privs['opportunity-importToLib'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 95, 'depend' => array('opportunity-view'), 'recommend' => array('opportunity-batchImportToLib'));
+$config->group->package->importOpportunityLib->privs['opportunity-batchImportToLib'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 100, 'depend' => array('opportunity-browse'), 'recommend' => array('opportunity-importToLib'));
+
+$config->group->package->importOpportunity = new stdclass();
+$config->group->package->importOpportunity->edition = 'open,biz,max,ipd';
+$config->group->package->importOpportunity->vision = 'rnd,lite,or';
+$config->group->package->importOpportunity->order = 15;
+$config->group->package->importOpportunity->subset = 'opportunity';
+$config->group->package->importOpportunity->privs = array();
+$config->group->package->importOpportunity->privs['opportunity-importFromLib'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 105, 'depend' => array('opportunity-browse'), 'recommend' => array('assetlib-opportunity', 'assetlib-opportunitylib'));
+$config->group->package->importOpportunity->privs['opportunity-export'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 110, 'depend' => array('opportunity-browse'), 'recommend' => array());
+
+$config->group->package->pssp = new stdclass();
+$config->group->package->pssp->edition = 'open,biz,max,ipd';
+$config->group->package->pssp->vision = 'rnd,lite,or';
+$config->group->package->pssp->order = 5;
+$config->group->package->pssp->subset = 'pssp';
+$config->group->package->pssp->privs = array();
+$config->group->package->pssp->privs['pssp-browse'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('project-index'), 'recommend' => array());
+$config->group->package->pssp->privs['pssp-update'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('pssp-browse'), 'recommend' => array());
+
+$config->group->package->measrecord = new stdclass();
+$config->group->package->measrecord->edition = 'open,biz,max,ipd';
+$config->group->package->measrecord->vision = 'rnd,lite,or';
+$config->group->package->measrecord->order = 5;
+$config->group->package->measrecord->subset = 'measrecord';
+$config->group->package->measrecord->privs = array();
+$config->group->package->measrecord->privs['measrecord-browse'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array('project-index'), 'recommend' => array());
+$config->group->package->measrecord->privs['report-show'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array(), 'recommend' => array());
+$config->group->package->measrecord->privs['report-customeredReport'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array(), 'recommend' => array());
+$config->group->package->measrecord->privs['report-viewReport'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('report-customeredReport'), 'recommend' => array());
+$config->group->package->measrecord->privs['report-projectSummary'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array(), 'recommend' => array());
+$config->group->package->measrecord->privs['report-projectWorkload'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->manageAuditPlan = new stdclass();
+$config->group->package->manageAuditPlan->edition = 'open,biz,max,ipd';
+$config->group->package->manageAuditPlan->vision = 'rnd,lite,or';
+$config->group->package->manageAuditPlan->order = 5;
+$config->group->package->manageAuditPlan->subset = 'projectauditplan';
+$config->group->package->manageAuditPlan->privs = array();
+$config->group->package->manageAuditPlan->privs['auditplan-browse'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array(), 'recommend' => array());
+$config->group->package->manageAuditPlan->privs['auditplan-create'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('auditplan-browse'), 'recommend' => array('auditplan-assignTo', 'auditplan-batchCreate', 'auditplan-check', 'auditplan-delete', 'auditplan-edit', 'auditplan-nc', 'auditplan-result'));
+$config->group->package->manageAuditPlan->privs['auditplan-edit'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('auditplan-browse'), 'recommend' => array('auditplan-assignTo', 'auditplan-batchEdit', 'auditplan-check', 'auditplan-create', 'auditplan-delete', 'auditplan-nc', 'auditplan-result'));
+$config->group->package->manageAuditPlan->privs['auditplan-batchCreate'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('auditplan-browse'), 'recommend' => array('auditplan-create'));
+$config->group->package->manageAuditPlan->privs['auditplan-batchEdit'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('auditplan-browse'), 'recommend' => array('auditplan-edit'));
+$config->group->package->manageAuditPlan->privs['auditplan-nc'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 8, 'depend' => array('auditplan-browse'), 'recommend' => array('auditplan-assignTo', 'auditplan-check', 'auditplan-create', 'auditplan-edit', 'auditplan-result'));
+$config->group->package->manageAuditPlan->privs['auditplan-result'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 7, 'depend' => array('auditplan-browse'), 'recommend' => array('auditplan-assignTo', 'auditplan-check', 'auditplan-create', 'auditplan-edit', 'auditplan-nc'));
+$config->group->package->manageAuditPlan->privs['auditplan-delete'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('auditplan-browse'), 'recommend' => array('auditplan-create', 'auditplan-edit'));
+$config->group->package->manageAuditPlan->privs['auditplan-assignTo'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 9, 'depend' => array('auditplan-browse'), 'recommend' => array('auditplan-check', 'auditplan-create', 'auditplan-edit', 'auditplan-nc', 'auditplan-result'));
+
+$config->group->package->nc = new stdclass();
+$config->group->package->nc->edition = 'open,biz,max,ipd';
+$config->group->package->nc->vision = 'rnd,lite,or';
+$config->group->package->nc->order = 10;
+$config->group->package->nc->subset = 'projectauditplan';
+$config->group->package->nc->privs = array();
+$config->group->package->nc->privs['nc-browse'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array(), 'recommend' => array());
+$config->group->package->nc->privs['nc-create'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('nc-browse'), 'recommend' => array('nc-activate', 'nc-assignTo', 'nc-close', 'nc-delete', 'nc-edit', 'nc-resolve'));
+$config->group->package->nc->privs['nc-edit'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('nc-browse'), 'recommend' => array('nc-activate', 'nc-assignTo', 'nc-close', 'nc-create', 'nc-delete', 'nc-resolve'));
+$config->group->package->nc->privs['nc-resolve'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('nc-browse'), 'recommend' => array('nc-activate', 'nc-assignTo', 'nc-close', 'nc-create', 'nc-delete', 'nc-edit'));
+$config->group->package->nc->privs['nc-view'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('nc-browse'), 'recommend' => array());
+$config->group->package->nc->privs['nc-close'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('nc-browse'), 'recommend' => array('nc-activate', 'nc-assignTo', 'nc-create', 'nc-delete', 'nc-edit', 'nc-resolve'));
+$config->group->package->nc->privs['nc-delete'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 6, 'depend' => array('nc-browse'), 'recommend' => array('nc-activate', 'nc-assignTo', 'nc-close', 'nc-create', 'nc-edit', 'nc-resolve'));
+$config->group->package->nc->privs['nc-assignTo'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 7, 'depend' => array('nc-browse'), 'recommend' => array('nc-activate', 'nc-close', 'nc-create', 'nc-delete', 'nc-edit', 'nc-resolve'));
+$config->group->package->nc->privs['nc-activate'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 8, 'depend' => array('nc-browse'), 'recommend' => array('nc-assignTo', 'nc-close', 'nc-create', 'nc-delete', 'nc-edit', 'nc-resolve'));
+$config->group->package->nc->privs['nc-export'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 9, 'depend' => array('nc-browse'), 'recommend' => array());
+
+$config->group->package->meeting = new stdclass();
+$config->group->package->meeting->edition = 'open,biz,max,ipd';
+$config->group->package->meeting->vision = 'rnd,lite,or';
+$config->group->package->meeting->order = 5;
+$config->group->package->meeting->subset = 'meeting';
+$config->group->package->meeting->privs = array();
+$config->group->package->meeting->privs['meeting-browse'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array(), 'recommend' => array());
+$config->group->package->meeting->privs['meeting-create'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('meeting-browse'), 'recommend' => array('meeting-delete', 'meeting-edit', 'meeting-minutes', 'meeting-view'));
+$config->group->package->meeting->privs['meeting-edit'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('meeting-browse'), 'recommend' => array('meeting-create', 'meeting-delete', 'meeting-minutes', 'meeting-view'));
+$config->group->package->meeting->privs['meeting-delete'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('meeting-view'), 'recommend' => array('meeting-create'));
+$config->group->package->meeting->privs['meeting-view'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('meeting-browse'), 'recommend' => array('meeting-create', 'meeting-delete', 'meeting-edit', 'meeting-minutes'));
+$config->group->package->meeting->privs['meeting-minutes'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('meeting-browse'), 'recommend' => array('meeting-create', 'meeting-edit', 'meeting-view'));
+
+$config->group->package->trainPlan = new stdclass();
+$config->group->package->trainPlan->edition = 'open,biz,max,ipd';
+$config->group->package->trainPlan->vision = 'rnd,lite,or';
+$config->group->package->trainPlan->order = 5;
+$config->group->package->trainPlan->subset = 'projectgapanalysis';
+$config->group->package->trainPlan->privs = array();
+$config->group->package->trainPlan->privs['trainplan-browse'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array(), 'recommend' => array());
+$config->group->package->trainPlan->privs['trainplan-create'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('trainplan-browse'), 'recommend' => array('trainplan-delete', 'trainplan-edit', 'trainplan-finish', 'trainplan-summary'));
+$config->group->package->trainPlan->privs['trainplan-edit'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('trainplan-browse'), 'recommend' => array('trainplan-batchEdit', 'trainplan-create', 'trainplan-delete', 'trainplan-finish', 'trainplan-summary'));
+$config->group->package->trainPlan->privs['trainplan-batchCreate'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('trainplan-browse'), 'recommend' => array('trainplan-create'));
+$config->group->package->trainPlan->privs['trainplan-batchEdit'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('trainplan-browse'), 'recommend' => array('trainplan-edit'));
+$config->group->package->trainPlan->privs['trainplan-batchFinish'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 7, 'depend' => array('trainplan-browse'), 'recommend' => array('trainplan-finish'));
+$config->group->package->trainPlan->privs['trainplan-delete'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 8, 'depend' => array('trainplan-view'), 'recommend' => array('trainplan-create', 'trainplan-edit'));
+$config->group->package->trainPlan->privs['trainplan-finish'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 6, 'depend' => array('trainplan-browse'), 'recommend' => array('trainplan-batchFinish', 'trainplan-create', 'trainplan-delete', 'trainplan-edit', 'trainplan-summary'));
+$config->group->package->trainPlan->privs['trainplan-summary'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 9, 'depend' => array('trainplan-browse'), 'recommend' => array('trainplan-finish'));
+$config->group->package->trainPlan->privs['trainplan-view'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('trainplan-browse'), 'recommend' => array());
+
+$config->group->package->gapAnalysis = new stdclass();
+$config->group->package->gapAnalysis->edition = 'open,biz,max,ipd';
+$config->group->package->gapAnalysis->vision = 'rnd,lite,or';
+$config->group->package->gapAnalysis->order = 10;
+$config->group->package->gapAnalysis->subset = 'projectgapanalysis';
+$config->group->package->gapAnalysis->privs = array();
+$config->group->package->gapAnalysis->privs['gapanalysis-browse'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array(), 'recommend' => array());
+$config->group->package->gapAnalysis->privs['gapanalysis-create'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('gapanalysis-browse'), 'recommend' => array('gapanalysis-batchCreate', 'gapanalysis-delete', 'gapanalysis-edit'));
+$config->group->package->gapAnalysis->privs['gapanalysis-edit'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('gapanalysis-browse'), 'recommend' => array('gapanalysis-batchEdit', 'gapanalysis-create', 'gapanalysis-delete'));
+$config->group->package->gapAnalysis->privs['gapanalysis-batchCreate'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('gapanalysis-browse'), 'recommend' => array('gapanalysis-create'));
+$config->group->package->gapAnalysis->privs['gapanalysis-batchEdit'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('gapanalysis-browse'), 'recommend' => array('gapanalysis-batchCreate', 'gapanalysis-edit'));
+$config->group->package->gapAnalysis->privs['gapanalysis-delete'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 6, 'depend' => array('gapanalysis-view'), 'recommend' => array('gapanalysis-create'));
+$config->group->package->gapAnalysis->privs['gapanalysis-view'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('gapanalysis-browse'), 'recommend' => array());
+
+$config->group->package->workflowField = new stdclass();
+$config->group->package->workflowField->edition = 'open,biz,max,ipd';
+$config->group->package->workflowField->vision = 'rnd,lite,or';
+$config->group->package->workflowField->order = 10;
+$config->group->package->workflowField->subset = 'workflow';
+$config->group->package->workflowField->privs = array();
+$config->group->package->workflowField->privs['workflowfield-browse'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 5, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowField->privs['workflowfield-create'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 10, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowField->privs['workflowfield-edit'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 15, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowField->privs['workflowfield-delete'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 20, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowField->privs['workflowfield-sort'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 25, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowField->privs['workflowfield-import'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 30, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowField->privs['workflowfield-showImport'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 35, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowField->privs['workflowfield-exportTemplate'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 40, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowField->privs['workflowfield-setValue'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 45, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowField->privs['workflowfield-setExport'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 50, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowField->privs['workflowfield-setSearch'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 55, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+
+$config->group->package->workflowAction = new stdclass();
+$config->group->package->workflowAction->edition = 'open,biz,max,ipd';
+$config->group->package->workflowAction->vision = 'rnd,lite,or';
+$config->group->package->workflowAction->order = 15;
+$config->group->package->workflowAction->subset = 'workflow';
+$config->group->package->workflowAction->privs = array();
+$config->group->package->workflowAction->privs['workflowaction-browse'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 5, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowAction->privs['workflowaction-create'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 10, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowAction->privs['workflowaction-edit'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 15, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowAction->privs['workflowaction-view'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 20, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowAction->privs['workflowaction-delete'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 25, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowAction->privs['workflowaction-sort'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 30, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowAction->privs['workflowaction-setVerification'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 35, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowAction->privs['workflowaction-setNotice'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 40, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowAction->privs['workflowaction-setJS'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 45, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowAction->privs['workflowaction-setCSS'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 50, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+
+$config->group->package->workflowLayout = new stdclass();
+$config->group->package->workflowLayout->edition = 'open,biz,max,ipd';
+$config->group->package->workflowLayout->vision = 'rnd,lite,or';
+$config->group->package->workflowLayout->order = 20;
+$config->group->package->workflowLayout->subset = 'workflow';
+$config->group->package->workflowLayout->privs = array();
+$config->group->package->workflowLayout->privs['workflowlayout-admin'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 5, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowLayout->privs['workflowlayout-block'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 10, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+
+$config->group->package->workflowCondition = new stdclass();
+$config->group->package->workflowCondition->edition = 'open,biz,max,ipd';
+$config->group->package->workflowCondition->vision = 'rnd,lite,or';
+$config->group->package->workflowCondition->order = 25;
+$config->group->package->workflowCondition->subset = 'workflow';
+$config->group->package->workflowCondition->privs = array();
+$config->group->package->workflowCondition->privs['workflowcondition-browse'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 5, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowCondition->privs['workflowcondition-create'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 10, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowCondition->privs['workflowcondition-edit'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 15, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowCondition->privs['workflowcondition-delete'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 20, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+
+$config->group->package->workflowLinkage = new stdclass();
+$config->group->package->workflowLinkage->edition = 'open,biz,max,ipd';
+$config->group->package->workflowLinkage->vision = 'rnd,lite,or';
+$config->group->package->workflowLinkage->order = 30;
+$config->group->package->workflowLinkage->subset = 'workflow';
+$config->group->package->workflowLinkage->privs = array();
+$config->group->package->workflowLinkage->privs['workflowlinkage-browse'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 5, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowLinkage->privs['workflowlinkage-create'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 10, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowLinkage->privs['workflowlinkage-edit'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 15, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowLinkage->privs['workflowlinkage-delete'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 20, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+
+$config->group->package->workflowHook = new stdclass();
+$config->group->package->workflowHook->edition = 'open,biz,max,ipd';
+$config->group->package->workflowHook->vision = 'rnd,lite,or';
+$config->group->package->workflowHook->order = 35;
+$config->group->package->workflowHook->subset = 'workflow';
+$config->group->package->workflowHook->privs = array();
+$config->group->package->workflowHook->privs['workflowhook-browse'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 5, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowHook->privs['workflowhook-create'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 10, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowHook->privs['workflowhook-edit'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 15, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowHook->privs['workflowhook-delete'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 20, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+
+$config->group->package->workflowLabel = new stdclass();
+$config->group->package->workflowLabel->edition = 'open,biz,max,ipd';
+$config->group->package->workflowLabel->vision = 'rnd,lite,or';
+$config->group->package->workflowLabel->order = 40;
+$config->group->package->workflowLabel->subset = 'workflow';
+$config->group->package->workflowLabel->privs = array();
+$config->group->package->workflowLabel->privs['workflowlabel-browse'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 5, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowLabel->privs['workflowlabel-create'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 10, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowLabel->privs['workflowlabel-edit'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 15, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowLabel->privs['workflowlabel-delete'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 20, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowLabel->privs['workflowlabel-sort'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 25, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+
+$config->group->package->workflowReport = new stdclass();
+$config->group->package->workflowReport->edition = 'open,biz,max,ipd';
+$config->group->package->workflowReport->vision = 'rnd,lite,or';
+$config->group->package->workflowReport->order = 50;
+$config->group->package->workflowReport->subset = 'workflow';
+$config->group->package->workflowReport->privs = array();
+$config->group->package->workflowReport->privs['workflowreport-browse'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 5, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowReport->privs['workflowreport-create'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 10, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowReport->privs['workflowreport-edit'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 15, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowReport->privs['workflowreport-delete'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 20, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowReport->privs['workflowreport-sort'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 25, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+
+$config->group->package->workflowDatasource = new stdclass();
+$config->group->package->workflowDatasource->edition = 'open,biz,max,ipd';
+$config->group->package->workflowDatasource->vision = 'rnd,lite,or';
+$config->group->package->workflowDatasource->order = 55;
+$config->group->package->workflowDatasource->subset = 'workflow';
+$config->group->package->workflowDatasource->privs = array();
+$config->group->package->workflowDatasource->privs['workflowdatasource-browse'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 5, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowDatasource->privs['workflowdatasource-create'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 10, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowDatasource->privs['workflowdatasource-edit'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 15, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowDatasource->privs['workflowdatasource-delete'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 20, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+
+$config->group->package->workflowRule = new stdclass();
+$config->group->package->workflowRule->edition = 'open,biz,max,ipd';
+$config->group->package->workflowRule->vision = 'rnd,lite,or';
+$config->group->package->workflowRule->order = 60;
+$config->group->package->workflowRule->subset = 'workflow';
+$config->group->package->workflowRule->privs = array();
+$config->group->package->workflowRule->privs['workflowrule-browse'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 5, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowRule->privs['workflowrule-create'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 10, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowRule->privs['workflowrule-edit'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 15, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowRule->privs['workflowrule-view'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 20, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflowRule->privs['workflowrule-delete'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 25, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+
+$config->group->package->workflow = new stdclass();
+$config->group->package->workflow->edition = 'open,biz,max,ipd';
+$config->group->package->workflow->vision = 'rnd,lite,or';
+$config->group->package->workflow->order = 5;
+$config->group->package->workflow->subset = 'workflow';
+$config->group->package->workflow->privs = array();
+$config->group->package->workflow->privs['workflow-browseFlow'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 5, 'depend' => array(), 'recommend' => array());
+$config->group->package->workflow->privs['workflow-browseDB'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 10, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflow->privs['workflow-create'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 15, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflow->privs['workflow-copy'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 20, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflow->privs['workflow-edit'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 25, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflow->privs['workflow-backup'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 30, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflow->privs['workflow-upgrade'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 35, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflow->privs['workflow-view'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 40, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflow->privs['workflow-delete'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 45, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflow->privs['workflow-flowchart'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 50, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflow->privs['workflow-ui'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 55, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflow->privs['workflow-release'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 60, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflow->privs['workflow-deactivate'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 65, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflow->privs['workflow-activate'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 70, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflow->privs['workflow-setApproval'] = array('edition' => 'max', 'vision' => 'rnd', 'order' => 75, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflow->privs['workflow-setJS'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 80, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+$config->group->package->workflow->privs['workflow-setCSS'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 85, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+
+$config->group->package->downloadCode = new stdclass();
+$config->group->package->downloadCode->edition = 'open,biz,max,ipd';
+$config->group->package->downloadCode->vision = 'rnd,lite,or';
+$config->group->package->downloadCode->order = 10;
+$config->group->package->downloadCode->subset = 'repocode';
+
+$config->group->package->dev = new stdclass();
+$config->group->package->dev->edition = 'open,biz,max,ipd';
+$config->group->package->dev->vision = 'rnd,lite,or';
+$config->group->package->dev->order = 5;
+$config->group->package->dev->subset = 'dev';
+$config->group->package->dev->privs = array();
+$config->group->package->dev->privs['dev-api'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array());
+$config->group->package->dev->privs['dev-db'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->browseCodeIssue = new stdclass();
+$config->group->package->browseCodeIssue->edition = 'biz,max,ipd';
+$config->group->package->browseCodeIssue->vision = 'rnd,lite,or';
+$config->group->package->browseCodeIssue->order = 2600;
+$config->group->package->browseCodeIssue->subset = 'codereview';
+$config->group->package->browseCodeIssue->privs = array();
+$config->group->package->browseCodeIssue->privs['repo-review'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array('repo-diff'), 'recommend' => array('repo-addBug', 'repo-editBug'));
+
+$config->group->package->editor = new stdclass();
+$config->group->package->editor->edition = 'open,biz,max,ipd';
+$config->group->package->editor->vision = 'rnd,lite,or';
+$config->group->package->editor->order = 10;
+$config->group->package->editor->subset = 'dev';
+$config->group->package->editor->privs = array();
+$config->group->package->editor->privs['editor-index'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array());
+$config->group->package->editor->privs['editor-extend'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array(), 'recommend' => array());
+$config->group->package->editor->privs['editor-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array(), 'recommend' => array());
+$config->group->package->editor->privs['editor-newPage'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 20, 'depend' => array(), 'recommend' => array());
+$config->group->package->editor->privs['editor-save'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 25, 'depend' => array(), 'recommend' => array());
+$config->group->package->editor->privs['editor-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 30, 'depend' => array(), 'recommend' => array());
+$config->group->package->editor->privs['api-debug'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 35, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->serverLink = new stdclass();
+$config->group->package->serverLink->edition = 'open,biz,max,ipd';
+$config->group->package->serverLink->vision = 'rnd,lite,or';
+$config->group->package->serverLink->order = 15;
+$config->group->package->serverLink->subset = 'dev';
+$config->group->package->serverLink->privs = array();
+$config->group->package->serverLink->privs['app-serverlink'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->browseMR = new stdclass();
+$config->group->package->browseMR->edition = 'open,biz,max,ipd';
+$config->group->package->browseMR->vision = 'rnd,lite,or';
+$config->group->package->browseMR->order = 5;
+$config->group->package->browseMR->subset = 'mr';
+$config->group->package->browseMR->privs = array();
+$config->group->package->browseMR->privs['mr-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('mr-accept'), 'recommend' => array('mr-addReview', 'mr-approval', 'mr-close', 'mr-create', 'mr-diff', 'mr-edit', 'mr-link', 'mr-linkBug', 'mr-linkStory', 'mr-linkTask', 'mr-reopen', 'mr-unlink', 'mr-view'));
+$config->group->package->browseMR->privs['mr-view'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('mr-accept'), 'recommend' => array('mr-diff', 'mr-link'));
+$config->group->package->browseMR->privs['mr-diff'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array('mr-accept'), 'recommend' => array('mr-link', 'mr-view'));
+$config->group->package->browseMR->privs['mr-link'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 20, 'depend' => array('mr-accept'), 'recommend' => array('mr-diff', 'mr-view'));
+
+$config->group->package->managePriv = new stdclass();
+$config->group->package->managePriv->edition = 'open,biz,max,ipd';
+$config->group->package->managePriv->vision = 'rnd,lite,or';
+$config->group->package->managePriv->order = 20;
+$config->group->package->managePriv->subset = 'staffmanage';
+$config->group->package->managePriv->privs = array();
+$config->group->package->managePriv->privs['group-managePriv'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 0, 'depend' => array('admin-index', 'admin-register', 'group-browse'), 'recommend' => array());
+
+$config->group->package->dept = new stdclass();
+$config->group->package->dept->edition = 'open,biz,max,ipd';
+$config->group->package->dept->vision = 'rnd,lite,or';
+$config->group->package->dept->order = 5;
+$config->group->package->dept->subset = 'staffmanage';
+$config->group->package->dept->privs = array();
+$config->group->package->dept->privs['dept-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 5, 'depend' => array('admin-index', 'admin-register', 'dept-edit'), 'recommend' => array('dept-delete', 'dept-manageChild', 'dept-updateOrder'));
+$config->group->package->dept->privs['dept-updateOrder'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 10, 'depend' => array('admin-index', 'admin-register', 'dept-browse'), 'recommend' => array('dept-delete', 'dept-edit', 'dept-manageChild', 'tree-updateOrder'));
+$config->group->package->dept->privs['dept-manageChild'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 15, 'depend' => array('admin-index', 'admin-register', 'dept-browse'), 'recommend' => array('dept-delete', 'dept-edit', 'tree-updateOrder'));
+$config->group->package->dept->privs['dept-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 20, 'depend' => array('admin-index', 'admin-register', 'dept-browse'), 'recommend' => array('dept-delete', 'dept-manageChild', 'tree-updateOrder'));
+$config->group->package->dept->privs['dept-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 25, 'depend' => array('admin-index', 'admin-register', 'dept-browse'), 'recommend' => array('dept-edit', 'dept-manageChild', 'tree-updateOrder'));
+
+$config->group->package->group = new stdclass();
+$config->group->package->group->edition = 'open,biz,max,ipd';
+$config->group->package->group->vision = 'rnd,lite,or';
+$config->group->package->group->order = 15;
+$config->group->package->group->subset = 'staffmanage';
+$config->group->package->group->privs = array();
+$config->group->package->group->privs['group-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 0, 'depend' => array('admin-index', 'admin-register'), 'recommend' => array());
+$config->group->package->group->privs['group-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 1, 'depend' => array('admin-index', 'admin-register', 'group-browse'), 'recommend' => array('group-copy', 'group-delete', 'group-edit', 'group-manageMember', 'group-manageProjectAdmin', 'group-manageView'));
+$config->group->package->group->privs['group-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 2, 'depend' => array('admin-index', 'admin-register', 'group-browse'), 'recommend' => array('group-copy', 'group-create', 'group-delete', 'group-manageMember', 'group-manageProjectAdmin', 'group-manageView'));
+$config->group->package->group->privs['group-copy'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 3, 'depend' => array('admin-index', 'admin-register', 'group-browse'), 'recommend' => array('group-create', 'group-delete', 'group-edit', 'group-manageMember', 'group-manageProjectAdmin', 'group-manageView'));
+$config->group->package->group->privs['group-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 4, 'depend' => array('admin-index', 'admin-register', 'group-browse'), 'recommend' => array('group-copy', 'group-create', 'group-edit', 'group-manageMember', 'group-manageProjectAdmin', 'group-manageView'));
+$config->group->package->group->privs['group-manageMember'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 6, 'depend' => array('admin-index', 'admin-register', 'group-browse'), 'recommend' => array('group-copy', 'group-create', 'group-delete', 'group-edit', 'group-manageProjectAdmin', 'group-manageView'));
+$config->group->package->group->privs['group-manageProjectAdmin'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 8, 'depend' => array('admin-index', 'admin-register', 'group-browse'), 'recommend' => array('group-copy', 'group-create', 'group-delete', 'group-edit', 'group-manageMember', 'group-manageView'));
+$config->group->package->group->privs['group-manageView'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 5, 'depend' => array('admin-index', 'admin-register', 'group-browse'), 'recommend' => array('group-copy', 'group-create', 'group-delete', 'group-edit', 'group-manageMember', 'group-manageProjectAdmin'));
+
+$config->group->package->user = new stdclass();
+$config->group->package->user->edition = 'open,biz,max,ipd';
+$config->group->package->user->vision = 'rnd,lite,or';
+$config->group->package->user->order = 10;
+$config->group->package->user->subset = 'staffmanage';
+$config->group->package->user->privs = array();
+$config->group->package->user->privs['company-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 0, 'depend' => array('admin-index', 'admin-register'), 'recommend' => array('user-view'));
+$config->group->package->user->privs['user-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 2, 'depend' => array('admin-index', 'admin-register', 'company-browse'), 'recommend' => array('user-batchCreate', 'user-delete', 'user-edit', 'user-unlock'));
+$config->group->package->user->privs['user-batchCreate'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 3, 'depend' => array('admin-index', 'admin-register', 'company-browse'), 'recommend' => array('user-create'));
+$config->group->package->user->privs['user-view'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 1, 'depend' => array('admin-index', 'admin-register', 'company-browse'), 'recommend' => array());
+$config->group->package->user->privs['user-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 4, 'depend' => array('admin-index', 'admin-register', 'company-browse', 'user-view'), 'recommend' => array('user-batchEdit', 'user-create', 'user-delete', 'user-unlock'));
+$config->group->package->user->privs['user-unlock'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 6, 'depend' => array('admin-index', 'admin-register', 'company-browse', 'user-view'), 'recommend' => array('user-create', 'user-delete', 'user-edit'));
+$config->group->package->user->privs['user-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 7, 'depend' => array('admin-index', 'admin-register', 'company-browse', 'user-view'), 'recommend' => array('user-create', 'user-edit', 'user-unlock'));
+$config->group->package->user->privs['user-batchEdit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 5, 'depend' => array('admin-index', 'admin-register', 'company-browse', 'user-view'), 'recommend' => array('user-edit'));
+$config->group->package->user->privs['user-unbind'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 8, 'depend' => array('admin-index', 'admin-register'), 'recommend' => array());
+$config->group->package->user->privs['user-export'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,or', 'order' => 9, 'depend' => array('company-browse'), 'recommend' => array());
+$config->group->package->user->privs['user-exportTemplate'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,or', 'order' => 10, 'depend' => array('company-browse', 'user-import'), 'recommend' => array());
+$config->group->package->user->privs['user-import'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,or', 'order' => 11, 'depend' => array('company-browse', 'user-exportTemplate'), 'recommend' => array());
+$config->group->package->user->privs['admin-sso'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 65, 'depend' => array('admin-index', 'admin-register'), 'recommend' => array());
+
+$config->group->package->extension = new stdclass();
+$config->group->package->extension->edition = 'open,biz,max,ipd';
+$config->group->package->extension->vision = 'rnd,lite,or';
+$config->group->package->extension->order = 5;
+$config->group->package->extension->subset = 'extension';
+$config->group->package->extension->privs = array();
+$config->group->package->extension->privs['extension-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 0, 'depend' => array(), 'recommend' => array());
+$config->group->package->extension->privs['extension-obtain'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 2, 'depend' => array('extension-browse'), 'recommend' => array('extension-activate', 'extension-deactivate', 'extension-erase', 'extension-install', 'extension-structure', 'extension-uninstall', 'extension-upgrade', 'extension-upload'));
+$config->group->package->extension->privs['extension-structure'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 3, 'depend' => array('extension-browse'), 'recommend' => array('extension-activate', 'extension-deactivate', 'extension-erase', 'extension-install', 'extension-obtain', 'extension-uninstall', 'extension-upgrade', 'extension-upload'));
+$config->group->package->extension->privs['extension-install'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 4, 'depend' => array('extension-browse'), 'recommend' => array('extension-activate', 'extension-deactivate', 'extension-erase', 'extension-obtain', 'extension-structure', 'extension-uninstall', 'extension-upgrade', 'extension-upload'));
+$config->group->package->extension->privs['extension-uninstall'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 5, 'depend' => array('extension-browse'), 'recommend' => array('extension-activate', 'extension-deactivate', 'extension-erase', 'extension-install', 'extension-obtain', 'extension-structure', 'extension-upgrade', 'extension-upload'));
+$config->group->package->extension->privs['extension-activate'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 6, 'depend' => array('extension-browse'), 'recommend' => array('extension-deactivate', 'extension-erase', 'extension-install', 'extension-obtain', 'extension-structure', 'extension-uninstall', 'extension-upgrade', 'extension-upload'));
+$config->group->package->extension->privs['extension-deactivate'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 7, 'depend' => array('extension-browse'), 'recommend' => array('extension-activate', 'extension-erase', 'extension-install', 'extension-obtain', 'extension-structure', 'extension-uninstall', 'extension-upgrade', 'extension-upload'));
+$config->group->package->extension->privs['extension-upload'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 1, 'depend' => array('extension-browse'), 'recommend' => array('extension-activate', 'extension-deactivate', 'extension-erase', 'extension-install', 'extension-obtain', 'extension-structure', 'extension-uninstall', 'extension-upgrade'));
+$config->group->package->extension->privs['extension-erase'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 8, 'depend' => array('extension-browse'), 'recommend' => array('extension-activate', 'extension-deactivate', 'extension-install', 'extension-obtain', 'extension-structure', 'extension-uninstall', 'extension-upgrade', 'extension-upload'));
+$config->group->package->extension->privs['extension-upgrade'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 9, 'depend' => array('extension-browse'), 'recommend' => array('extension-activate', 'extension-deactivate', 'extension-erase', 'extension-install', 'extension-obtain', 'extension-structure', 'extension-uninstall', 'extension-upload'));
+
+$config->group->package->message = new stdclass();
+$config->group->package->message->edition = 'open,biz,max,ipd';
+$config->group->package->message->vision = 'rnd,lite,or';
+$config->group->package->message->order = 5;
+$config->group->package->message->subset = 'notifysetting';
+$config->group->package->message->privs = array();
+$config->group->package->message->privs['message-index'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'lite,rnd,or', 'order' => 5, 'depend' => array(), 'recommend' => array());
+$config->group->package->message->privs['message-browser'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'lite,rnd,or', 'order' => 10, 'depend' => array(), 'recommend' => array());
+$config->group->package->message->privs['message-setting'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'lite,rnd,or', 'order' => 15, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->mail = new stdclass();
+$config->group->package->mail->edition = 'open,biz,max,ipd';
+$config->group->package->mail->vision = 'rnd,lite,or';
+$config->group->package->mail->order = 10;
+$config->group->package->mail->subset = 'notifysetting';
+$config->group->package->mail->privs = array();
+$config->group->package->mail->privs['mail-index'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'lite,rnd,or', 'order' => 0, 'depend' => array(), 'recommend' => array());
+$config->group->package->mail->privs['mail-detect'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'lite,rnd,or', 'order' => 5, 'depend' => array(), 'recommend' => array());
+$config->group->package->mail->privs['mail-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'lite,rnd,or', 'order' => 1, 'depend' => array('message-index'), 'recommend' => array());
+$config->group->package->mail->privs['mail-save'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'lite,rnd,or', 'order' => 3, 'depend' => array('mail-edit'), 'recommend' => array('mail-reset'));
+$config->group->package->mail->privs['mail-test'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'lite,rnd,or', 'order' => 2, 'depend' => array('mail-edit'), 'recommend' => array());
+$config->group->package->mail->privs['mail-reset'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'lite,rnd,or', 'order' => 4, 'depend' => array('mail-edit'), 'recommend' => array('mail-save'));
+$config->group->package->mail->privs['mail-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'lite,rnd,or', 'order' => 6, 'depend' => array('mail-edit'), 'recommend' => array());
+$config->group->package->mail->privs['mail-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'lite,rnd,or', 'order' => 7, 'depend' => array('mail-browse'), 'recommend' => array());
+$config->group->package->mail->privs['mail-batchDelete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'lite,rnd,or', 'order' => 8, 'depend' => array('mail-browse'), 'recommend' => array('mail-delete'));
+$config->group->package->mail->privs['mail-resend'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'lite,rnd,or', 'order' => 9, 'depend' => array('mail-browse'), 'recommend' => array());
+
+$config->group->package->webhook = new stdclass();
+$config->group->package->webhook->edition = 'open,biz,max,ipd';
+$config->group->package->webhook->vision = 'rnd,lite,or';
+$config->group->package->webhook->order = 15;
+$config->group->package->webhook->subset = 'notifysetting';
+$config->group->package->webhook->privs = array();
+$config->group->package->webhook->privs['webhook-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'lite,rnd,or', 'order' => 5, 'depend' => array(), 'recommend' => array());
+$config->group->package->webhook->privs['webhook-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'lite,rnd,or', 'order' => 10, 'depend' => array('webhook-browse'), 'recommend' => array('webhook-bind', 'webhook-chooseDept', 'webhook-delete', 'webhook-edit', 'webhook-log'));
+$config->group->package->webhook->privs['webhook-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'lite,rnd,or', 'order' => 15, 'depend' => array('webhook-browse'), 'recommend' => array('webhook-bind', 'webhook-chooseDept', 'webhook-create', 'webhook-delete', 'webhook-log'));
+$config->group->package->webhook->privs['webhook-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'lite,rnd,or', 'order' => 20, 'depend' => array('webhook-browse'), 'recommend' => array('webhook-bind', 'webhook-chooseDept', 'webhook-create', 'webhook-edit', 'webhook-log'));
+$config->group->package->webhook->privs['webhook-log'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'lite,rnd,or', 'order' => 25, 'depend' => array('webhook-browse'), 'recommend' => array('webhook-bind', 'webhook-chooseDept', 'webhook-create', 'webhook-delete', 'webhook-edit'));
+$config->group->package->webhook->privs['webhook-bind'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'lite,rnd,or', 'order' => 30, 'depend' => array('webhook-chooseDept'), 'recommend' => array());
+$config->group->package->webhook->privs['webhook-chooseDept'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'lite,rnd,or', 'order' => 35, 'depend' => array('webhook-browse'), 'recommend' => array('webhook-create', 'webhook-delete', 'webhook-edit'));
+
+$config->group->package->gitlab = new stdclass();
+$config->group->package->gitlab->edition = 'open,biz,max,ipd';
+$config->group->package->gitlab->vision = 'rnd,lite,or';
+$config->group->package->gitlab->order = 10;
+$config->group->package->gitlab->subset = 'repo';
+
+$config->group->package->sms = new stdclass();
+$config->group->package->sms->edition = 'open,biz,max,ipd';
+$config->group->package->sms->vision = 'rnd,lite,or';
+$config->group->package->sms->order = 20;
+$config->group->package->sms->subset = 'notifysetting';
+$config->group->package->sms->privs = array();
+$config->group->package->sms->privs['sms-index'] = array('edition' => 'biz,max,ipd', 'vision' => 'lite,rnd,or', 'order' => 5, 'depend' => array(), 'recommend' => array());
+$config->group->package->sms->privs['sms-test'] = array('edition' => 'biz,max,ipd', 'vision' => 'lite,rnd,or', 'order' => 10, 'depend' => array('sms-index'), 'recommend' => array());
+$config->group->package->sms->privs['sms-reset'] = array('edition' => 'biz,max,ipd', 'vision' => 'lite,rnd,or', 'order' => 15, 'depend' => array('sms-index'), 'recommend' => array());
+
+$config->group->package->gogs = new stdclass();
+$config->group->package->gogs->edition = 'open,biz,max,ipd';
+$config->group->package->gogs->vision = 'rnd,lite,or';
+$config->group->package->gogs->order = 15;
+$config->group->package->gogs->subset = 'repo';
+
+$config->group->package->gitea = new stdclass();
+$config->group->package->gitea->edition = 'open,biz,max,ipd';
+$config->group->package->gitea->vision = 'rnd,lite,or';
+$config->group->package->gitea->order = 20;
+$config->group->package->gitea->subset = 'repo';
+
+$config->group->package->sonarqube = new stdclass();
+$config->group->package->sonarqube->edition = 'open,biz,max,ipd';
+$config->group->package->sonarqube->vision = 'rnd,lite,or';
+$config->group->package->sonarqube->order = 30;
+$config->group->package->sonarqube->subset = 'repo';
+
+$config->group->package->repoRules = new stdclass();
+$config->group->package->repoRules->edition = 'open,biz,max,ipd';
+$config->group->package->repoRules->vision = 'rnd';
+$config->group->package->repoRules->order = 2380;
+$config->group->package->repoRules->subset = 'ops';
+$config->group->package->repoRules->privs = array();
+$config->group->package->repoRules->privs['repo-setRules'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->browseJob = new stdclass();
+$config->group->package->browseJob->edition = 'open,biz,max,ipd';
+$config->group->package->browseJob->vision = 'rnd,lite,or';
+$config->group->package->browseJob->order = 5;
+$config->group->package->browseJob->subset = 'pipeline';
+$config->group->package->browseJob->privs = array();
+$config->group->package->browseJob->privs['job-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array('job-create', 'job-edit'));
+$config->group->package->browseJob->privs['job-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('job-browse'), 'recommend' => array('job-create', 'job-edit'));
+$config->group->package->browseJob->privs['job-view'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('job-browse'), 'recommend' => array('compile-browse', 'compile-logs', 'job-exec'));
+
+$config->group->package->manageJob = new stdclass();
+$config->group->package->manageJob->edition = 'open,biz,max,ipd';
+$config->group->package->manageJob->vision = 'rnd,lite,or';
+$config->group->package->manageJob->order = 10;
+$config->group->package->manageJob->subset = 'pipeline';
+$config->group->package->manageJob->privs = array();
+$config->group->package->manageJob->privs['compile-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 20, 'depend' => array('job-browse'), 'recommend' => array('compile-logs', 'job-exec', 'job-view'));
+$config->group->package->manageJob->privs['compile-logs'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 25, 'depend' => array('job-browse'), 'recommend' => array('compile-browse', 'job-exec', 'job-view'));
+$config->group->package->manageJob->privs['compile-syncCompile'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 30, 'depend' => array('job-browse'), 'recommend' => array());
+$config->group->package->manageJob->privs['job-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('job-browse'), 'recommend' => array('job-edit'));
+$config->group->package->manageJob->privs['job-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('job-browse'), 'recommend' => array('job-create'));
+$config->group->package->manageJob->privs['job-exec'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array('job-browse'), 'recommend' => array('compile-browse', 'compile-logs', 'job-view'));
+
+$config->group->package->manageMR = new stdclass();
+$config->group->package->manageMR->edition = 'open,biz,max,ipd';
+$config->group->package->manageMR->vision = 'rnd,lite,or';
+$config->group->package->manageMR->order = 10;
+$config->group->package->manageMR->subset = 'mr';
+$config->group->package->manageMR->privs = array();
+$config->group->package->manageMR->privs['mr-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('mr-accept'), 'recommend' => array('mr-edit'));
+$config->group->package->manageMR->privs['mr-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('mr-accept'), 'recommend' => array('mr-create', 'mr-linkBug', 'mr-linkStory', 'mr-linkTask', 'mr-unlink'));
+$config->group->package->manageMR->privs['mr-accept'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 20, 'depend' => array(), 'recommend' => array('mr-browse', 'mr-create', 'mr-edit'));
+$config->group->package->manageMR->privs['mr-linkStory'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 25, 'depend' => array('mr-accept', 'mr-link'), 'recommend' => array('mr-approval', 'mr-close', 'mr-diff', 'mr-linkBug', 'mr-linkTask', 'mr-reopen', 'mr-unlink'));
+$config->group->package->manageMR->privs['mr-linkBug'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 30, 'depend' => array('mr-accept', 'mr-link'), 'recommend' => array('mr-linkStory', 'mr-linkTask', 'mr-unlink'));
+$config->group->package->manageMR->privs['mr-linkTask'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 35, 'depend' => array('mr-accept', 'mr-link'), 'recommend' => array('mr-linkBug', 'mr-linkStory', 'mr-unlink'));
+$config->group->package->manageMR->privs['mr-unlink'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 40, 'depend' => array('mr-accept'), 'recommend' => array('mr-link', 'mr-linkBug', 'mr-linkStory', 'mr-linkTask'));
+$config->group->package->manageMR->privs['mr-approval'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 45, 'depend' => array('mr-accept'), 'recommend' => array('mr-close', 'mr-reopen'));
+$config->group->package->manageMR->privs['mr-close'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 50, 'depend' => array('mr-accept'), 'recommend' => array('mr-approval', 'mr-reopen'));
+$config->group->package->manageMR->privs['mr-reopen'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 55, 'depend' => array('mr-accept'), 'recommend' => array('mr-approval', 'mr-close'));
+
+$config->group->package->backup = new stdclass();
+$config->group->package->backup->edition = 'open,biz,max,ipd';
+$config->group->package->backup->vision = 'rnd,lite,or';
+$config->group->package->backup->order = 5;
+$config->group->package->backup->subset = 'admin';
+$config->group->package->backup->privs = array();
+$config->group->package->backup->privs['backup-index'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'lite,rnd,or', 'order' => 0, 'depend' => array(), 'recommend' => array());
+$config->group->package->backup->privs['backup-backup'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'lite,rnd,or', 'order' => 2, 'depend' => array('backup-index'), 'recommend' => array());
+$config->group->package->backup->privs['backup-restore'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'lite,rnd,or', 'order' => 3, 'depend' => array('backup-index'), 'recommend' => array());
+$config->group->package->backup->privs['backup-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'lite,rnd,or', 'order' => 4, 'depend' => array('backup-index'), 'recommend' => array());
+$config->group->package->backup->privs['backup-setting'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'lite,rnd,or', 'order' => 1, 'depend' => array('backup-index'), 'recommend' => array('backup-change'));
+$config->group->package->backup->privs['backup-rmPHPHeader'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'lite,rnd,or', 'order' => 5, 'depend' => array('backup-index'), 'recommend' => array());
+$config->group->package->backup->privs['backup-change'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'lite,rnd,or', 'order' => 6, 'depend' => array('backup-setting'), 'recommend' => array());
+
+$config->group->package->trash = new stdclass();
+$config->group->package->trash->edition = 'open,biz,max,ipd';
+$config->group->package->trash->vision = 'rnd,lite,or';
+$config->group->package->trash->order = 15;
+$config->group->package->trash->subset = 'systemsetting';
+$config->group->package->trash->privs = array();
+$config->group->package->trash->privs['action-trash'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 0, 'depend' => array(), 'recommend' => array());
+$config->group->package->trash->privs['action-undelete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 1, 'depend' => array('action-trash'), 'recommend' => array());
+$config->group->package->trash->privs['action-hideOne'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 2, 'depend' => array('action-trash'), 'recommend' => array('action-hideAll'));
+$config->group->package->trash->privs['action-hideAll'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 3, 'depend' => array('action-trash'), 'recommend' => array('action-hideOne'));
+
+$config->group->package->security = new stdclass();
+$config->group->package->security->edition = 'open,biz,max,ipd';
+$config->group->package->security->vision = 'rnd,lite,or';
+$config->group->package->security->order = 20;
+$config->group->package->security->subset = 'systemsetting';
+$config->group->package->security->privs = array();
+$config->group->package->security->privs['admin-checkWeak'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 1, 'depend' => array('admin-index'), 'recommend' => array());
+$config->group->package->security->privs['admin-resetPWDSetting'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 2, 'depend' => array('admin-index'), 'recommend' => array());
+$config->group->package->security->privs['admin-safe'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 0, 'depend' => array('admin-index'), 'recommend' => array());
+
+$config->group->package->cron = new stdclass();
+$config->group->package->cron->edition = 'open,biz,max,ipd';
+$config->group->package->cron->vision = 'rnd,lite,or';
+$config->group->package->cron->order = 25;
+$config->group->package->cron->subset = 'systemsetting';
+$config->group->package->cron->privs = array();
+$config->group->package->cron->privs['cron-index'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 0, 'depend' => array(), 'recommend' => array());
+$config->group->package->cron->privs['cron-turnon'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 1, 'depend' => array('cron-index'), 'recommend' => array());
+$config->group->package->cron->privs['cron-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 3, 'depend' => array('cron-index'), 'recommend' => array('cron-delete', 'cron-edit', 'cron-toggle'));
+$config->group->package->cron->privs['cron-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 5, 'depend' => array('cron-index'), 'recommend' => array('cron-create', 'cron-delete', 'cron-toggle'));
+$config->group->package->cron->privs['cron-toggle'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 4, 'depend' => array('cron-index'), 'recommend' => array('cron-create', 'cron-delete', 'cron-edit'));
+$config->group->package->cron->privs['cron-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 6, 'depend' => array('cron-index'), 'recommend' => array('cron-create', 'cron-edit', 'cron-toggle'));
+$config->group->package->cron->privs['cron-openProcess'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 2, 'depend' => array('cron-index'), 'recommend' => array());
+
+$config->group->package->ldap = new stdclass();
+$config->group->package->ldap->edition = 'open,biz,max,ipd';
+$config->group->package->ldap->vision = 'rnd,lite,or';
+$config->group->package->ldap->order = 30;
+$config->group->package->ldap->subset = 'systemsetting';
+$config->group->package->ldap->privs = array();
+$config->group->package->ldap->privs['user-importldap'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,or', 'order' => 15, 'depend' => array('ldap-set'), 'recommend' => array());
+$config->group->package->ldap->privs['ldap-set'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->chat = new stdclass();
+$config->group->package->chat->edition = 'open,biz,max,ipd';
+$config->group->package->chat->vision = 'rnd,lite,or';
+$config->group->package->chat->order = 35;
+$config->group->package->chat->subset = 'systemsetting';
+$config->group->package->chat->privs = array();
+$config->group->package->chat->privs['admin-xuanxuan'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 8, 'depend' => array(), 'recommend' => array());
+$config->group->package->chat->privs['conference-admin'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array(), 'recommend' => array());
+$config->group->package->chat->privs['setting-xuanxuan'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 0, 'depend' => array(), 'recommend' => array());
+$config->group->package->chat->privs['im-downloadXxdPackage'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 2, 'depend' => array(), 'recommend' => array());
+$config->group->package->chat->privs['im-debug'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 1, 'depend' => array(), 'recommend' => array());
+$config->group->package->chat->privs['client-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 4, 'depend' => array(), 'recommend' => array());
+$config->group->package->chat->privs['client-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 5, 'depend' => array(), 'recommend' => array());
+$config->group->package->chat->privs['client-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 6, 'depend' => array(), 'recommend' => array());
+$config->group->package->chat->privs['client-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 7, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->jenkins = new stdclass();
+$config->group->package->jenkins->edition = 'open,biz,max,ipd';
+$config->group->package->jenkins->vision = 'rnd,lite,or';
+$config->group->package->jenkins->order = 25;
+$config->group->package->jenkins->subset = 'repo';
+
+$config->group->package->systemSetting = new stdclass();
+$config->group->package->systemSetting->edition = 'open,biz,max,ipd';
+$config->group->package->systemSetting->vision = 'rnd,lite,or';
+$config->group->package->systemSetting->order = 5;
+$config->group->package->systemSetting->subset = 'systemsetting';
+$config->group->package->systemSetting->privs = array();
+$config->group->package->systemSetting->privs['admin-tableEngine'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 45, 'depend' => array('admin-index'), 'recommend' => array());
+$config->group->package->systemSetting->privs['custom-timezone'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 45, 'depend' => array('admin-index'), 'recommend' => array());
+$config->group->package->systemSetting->privs['custom-libreoffice'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 100, 'depend' => array(), 'recommend' => array());
+$config->group->package->systemSetting->privs['search-buildIndex'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 35, 'depend' => array('admin-index'), 'recommend' => array());
+
+$config->group->package->search = new stdclass();
+$config->group->package->search->edition = 'open,biz,max,ipd';
+$config->group->package->search->vision = 'rnd,lite,or';
+$config->group->package->search->order = 5;
+$config->group->package->search->subset = 'search';
+$config->group->package->search->privs = array();
+$config->group->package->search->privs['search-buildForm'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 0, 'depend' => array(), 'recommend' => array());
+$config->group->package->search->privs['search-buildQuery'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 1, 'depend' => array('search-buildForm'), 'recommend' => array());
+$config->group->package->search->privs['search-saveQuery'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 2, 'depend' => array('search-buildForm'), 'recommend' => array('search-deleteQuery'));
+$config->group->package->search->privs['search-deleteQuery'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 3, 'depend' => array('search-buildForm'), 'recommend' => array('search-saveQuery'));
+$config->group->package->search->privs['search-index'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 4, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->comment = new stdclass();
+$config->group->package->comment->edition = 'open,biz,max,ipd';
+$config->group->package->comment->vision = 'rnd,lite,or';
+$config->group->package->comment->order = 5;
+$config->group->package->comment->subset = 'generalcomment';
+$config->group->package->comment->privs = array();
+$config->group->package->comment->privs['action-comment'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 5, 'depend' => array(), 'recommend' => array());
+$config->group->package->comment->privs['action-editComment'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 10, 'depend' => array('action-comment'), 'recommend' => array());
+
+$config->group->package->module = new stdclass();
+$config->group->package->module->edition = 'open,biz,max,ipd';
+$config->group->package->module->vision = 'rnd,lite,or';
+$config->group->package->module->order = 5;
+$config->group->package->module->subset = 'tree';
+$config->group->package->module->privs = array();
+$config->group->package->module->privs['tree-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 0, 'depend' => array('tree-edit'), 'recommend' => array('tree-delete', 'tree-manageChild'));
+$config->group->package->module->privs['tree-browseTask'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 1, 'depend' => array('tree-edit'), 'recommend' => array('tree-delete', 'tree-manageChild'));
+$config->group->package->module->privs['tree-updateOrder'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 5, 'depend' => array(), 'recommend' => array());
+$config->group->package->module->privs['tree-manageChild'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 6, 'depend' => array('tree-edit'), 'recommend' => array('tree-delete'));
+$config->group->package->module->privs['tree-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 7, 'depend' => array(), 'recommend' => array());
+$config->group->package->module->privs['tree-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 8, 'depend' => array(), 'recommend' => array());
+$config->group->package->module->privs['tree-editHost'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 4, 'depend' => array(), 'recommend' => array());
+$config->group->package->module->privs['tree-fix'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 9, 'depend' => array(), 'recommend' => array());
+$config->group->package->module->privs['tree-browsehost'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 3, 'depend' => array(), 'recommend' => array());
+$config->group->package->module->privs['tree-browsegroup'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->file = new stdclass();
+$config->group->package->file->edition = 'open,biz,max,ipd';
+$config->group->package->file->vision = 'rnd,lite,or';
+$config->group->package->file->order = 5;
+$config->group->package->file->subset = 'file';
+$config->group->package->file->privs = array();
+$config->group->package->file->privs['file-download'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 1, 'depend' => array(), 'recommend' => array());
+$config->group->package->file->privs['file-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 0, 'depend' => array(), 'recommend' => array());
+$config->group->package->file->privs['file-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 2, 'depend' => array(), 'recommend' => array('file-edit'));
+$config->group->package->file->privs['file-uploadImages'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 3, 'depend' => array(), 'recommend' => array());
+$config->group->package->file->privs['file-setPublic'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 25, 'depend' => array(), 'recommend' => array());
+$config->group->package->file->privs['file-preview'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 26, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->commonEffort = new stdclass();
+$config->group->package->commonEffort->edition = 'open,biz,max,ipd';
+$config->group->package->commonEffort->vision = 'rnd,lite,or';
+$config->group->package->commonEffort->order = 5;
+$config->group->package->commonEffort->subset = 'generaleffort';
+$config->group->package->commonEffort->privs = array();
+$config->group->package->commonEffort->privs['effort-createForObject'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 3, 'depend' => array(), 'recommend' => array('effort-delete', 'effort-edit'));
+
+$config->group->package->docTemplate = new stdclass();
+$config->group->package->docTemplate->edition = 'open,biz,max,ipd';
+$config->group->package->docTemplate->vision = 'rnd,lite,or';
+$config->group->package->docTemplate->order = 5;
+$config->group->package->docTemplate->subset = 'doctemplate';
+$config->group->package->docTemplate->privs = array();
+$config->group->package->docTemplate->privs['baseline-templateType'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array(), 'recommend' => array());
+$config->group->package->docTemplate->privs['baseline-template'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array(), 'recommend' => array());
+$config->group->package->docTemplate->privs['baseline-createTemplate'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('baseline-template'), 'recommend' => array('baseline-delete', 'baseline-editBook', 'baseline-editTemplate', 'baseline-manageBook'));
+$config->group->package->docTemplate->privs['baseline-view'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('baseline-template'), 'recommend' => array());
+$config->group->package->docTemplate->privs['baseline-editTemplate'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('baseline-template'), 'recommend' => array('baseline-createTemplate', 'baseline-delete', 'baseline-editBook', 'baseline-manageBook'));
+$config->group->package->docTemplate->privs['baseline-editBook'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('baseline-template'), 'recommend' => array('baseline-createTemplate', 'baseline-delete', 'baseline-editTemplate', 'baseline-manageBook'));
+$config->group->package->docTemplate->privs['baseline-manageBook'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 7, 'depend' => array('baseline-template'), 'recommend' => array('baseline-createTemplate', 'baseline-delete', 'baseline-editBook', 'baseline-editTemplate'));
+$config->group->package->docTemplate->privs['baseline-delete'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 6, 'depend' => array('baseline-template'), 'recommend' => array('baseline-createTemplate'));
+
+$config->group->package->importStoryLib = new stdclass();
+$config->group->package->importStoryLib->edition = 'open,biz,max,ipd';
+$config->group->package->importStoryLib->vision = 'rnd,lite,or';
+$config->group->package->importStoryLib->order = 30;
+$config->group->package->importStoryLib->subset = 'story';
+$config->group->package->importStoryLib->privs = array();
+$config->group->package->importStoryLib->privs['story-importToLib'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 165, 'depend' => array('story-view'), 'recommend' => array('story-batchImportToLib'));
+$config->group->package->importStoryLib->privs['story-batchImportToLib'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 170, 'depend' => array('product-browse'), 'recommend' => array('story-importToLib'));
+
+$config->group->package->projectStakeholder = new stdclass();
+$config->group->package->projectStakeholder->edition = 'open,biz,max,ipd';
+$config->group->package->projectStakeholder->vision = 'rnd,lite,or';
+$config->group->package->projectStakeholder->order = 5;
+$config->group->package->projectStakeholder->subset = 'projectsettings';
+$config->group->package->projectStakeholder->privs = array();
+$config->group->package->projectStakeholder->privs['stakeholder-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array('project-index'), 'recommend' => array('stakeholder-view'));
+$config->group->package->projectStakeholder->privs['stakeholder-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('stakeholder-browse'), 'recommend' => array('stakeholder-batchCreate', 'stakeholder-communicate', 'stakeholder-delete', 'stakeholder-edit', 'stakeholder-expect', 'stakeholder-userIssue'));
+$config->group->package->projectStakeholder->privs['stakeholder-batchCreate'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('stakeholder-browse'), 'recommend' => array('stakeholder-create'));
+$config->group->package->projectStakeholder->privs['stakeholder-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('stakeholder-browse'), 'recommend' => array('stakeholder-batchCreate', 'stakeholder-communicate', 'stakeholder-create', 'stakeholder-delete', 'stakeholder-expect', 'stakeholder-userIssue'));
+$config->group->package->projectStakeholder->privs['stakeholder-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('stakeholder-browse'), 'recommend' => array('stakeholder-batchCreate', 'stakeholder-communicate', 'stakeholder-create', 'stakeholder-edit', 'stakeholder-expect', 'stakeholder-userIssue'));
+$config->group->package->projectStakeholder->privs['stakeholder-view'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('stakeholder-browse'), 'recommend' => array());
+$config->group->package->projectStakeholder->privs['stakeholder-communicate'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 6, 'depend' => array('stakeholder-browse'), 'recommend' => array('stakeholder-batchCreate', 'stakeholder-create', 'stakeholder-delete', 'stakeholder-edit', 'stakeholder-expect', 'stakeholder-userIssue'));
+$config->group->package->projectStakeholder->privs['stakeholder-expect'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 7, 'depend' => array('stakeholder-browse'), 'recommend' => array('stakeholder-batchCreate', 'stakeholder-communicate', 'stakeholder-create', 'stakeholder-delete', 'stakeholder-edit', 'stakeholder-userIssue'));
+$config->group->package->projectStakeholder->privs['stakeholder-userIssue'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 8, 'depend' => array('stakeholder-browse'), 'recommend' => array('stakeholder-batchCreate', 'stakeholder-communicate', 'stakeholder-create', 'stakeholder-delete', 'stakeholder-edit', 'stakeholder-expect'));
+
+$config->group->package->projectBuild = new stdclass();
+$config->group->package->projectBuild->edition = 'open,biz,max,ipd';
+$config->group->package->projectBuild->vision = 'rnd,lite,or';
+$config->group->package->projectBuild->order = 5;
+$config->group->package->projectBuild->subset = 'projectbuild';
+$config->group->package->projectBuild->privs = array();
+$config->group->package->projectBuild->privs['projectbuild-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array('project-index'), 'recommend' => array('projectbuild-view'));
+$config->group->package->projectBuild->privs['projectbuild-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array(), 'recommend' => array('projectbuild-batchUnlinkBug', 'projectbuild-batchUnlinkStory', 'projectbuild-delete', 'projectbuild-edit', 'projectbuild-linkBug', 'projectbuild-linkStory', 'projectbuild-unlinkBug', 'projectbuild-unlinkStory'));
+$config->group->package->projectBuild->privs['projectbuild-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array(), 'recommend' => array('projectbuild-batchUnlinkBug', 'projectbuild-batchUnlinkStory', 'projectbuild-create', 'projectbuild-delete', 'projectbuild-linkBug', 'projectbuild-linkStory', 'projectbuild-unlinkBug', 'projectbuild-unlinkStory'));
+$config->group->package->projectBuild->privs['projectbuild-view'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('projectbuild-browse'), 'recommend' => array());
+$config->group->package->projectBuild->privs['projectbuild-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array(), 'recommend' => array('projectbuild-batchUnlinkBug', 'projectbuild-batchUnlinkStory', 'projectbuild-create', 'projectbuild-edit', 'projectbuild-linkBug', 'projectbuild-linkStory', 'projectbuild-unlinkBug', 'projectbuild-unlinkStory'));
+$config->group->package->projectBuild->privs['projectbuild-linkStory'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array('projectbuild-create', 'projectbuild-delete', 'projectbuild-edit', 'projectbuild-linkBug', 'projectbuild-unlinkStory'));
+$config->group->package->projectBuild->privs['projectbuild-unlinkStory'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 6, 'depend' => array(), 'recommend' => array('projectbuild-batchUnlinkStory', 'projectbuild-create', 'projectbuild-delete', 'projectbuild-edit', 'projectbuild-linkStory'));
+$config->group->package->projectBuild->privs['projectbuild-batchUnlinkStory'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 7, 'depend' => array(), 'recommend' => array('projectbuild-unlinkStory'));
+$config->group->package->projectBuild->privs['projectbuild-linkBug'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 8, 'depend' => array(), 'recommend' => array('projectbuild-create', 'projectbuild-delete', 'projectbuild-edit', 'projectbuild-unlinkBug'));
+$config->group->package->projectBuild->privs['projectbuild-unlinkBug'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 9, 'depend' => array(), 'recommend' => array('projectbuild-batchUnlinkStory', 'projectbuild-create', 'projectbuild-delete', 'projectbuild-edit', 'projectbuild-linkStory'));
+$config->group->package->projectBuild->privs['projectbuild-batchUnlinkBug'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array(), 'recommend' => array('projectbuild-unlinkBug'));
+
+$config->group->package->importToCaseLib = new stdclass();
+$config->group->package->importToCaseLib->edition = 'open,biz,max,ipd';
+$config->group->package->importToCaseLib->vision = 'rnd,lite,or';
+$config->group->package->importToCaseLib->order = 35;
+$config->group->package->importToCaseLib->subset = 'testcase';
+$config->group->package->importToCaseLib->privs = array();
+$config->group->package->importToCaseLib->privs['testcase-importToLib'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 135, 'depend' => array('testcase-view'), 'recommend' => array());
+
+$config->group->package->commonSetting = new stdclass();
+$config->group->package->commonSetting->edition = 'open,biz,max,ipd';
+$config->group->package->commonSetting->vision = 'rnd,lite,or';
+$config->group->package->commonSetting->order = 5;
+$config->group->package->commonSetting->subset = 'modelconfig';
+$config->group->package->commonSetting->privs = array();
+$config->group->package->commonSetting->privs['stage-setType'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 25, 'depend' => array(), 'recommend' => array());
+$config->group->package->commonSetting->privs['custom-flow'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 35, 'depend' => array('admin-index', 'admin-register'), 'recommend' => array());
+$config->group->package->commonSetting->privs['custom-estimate'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 50, 'depend' => array(), 'recommend' => array());
+$config->group->package->commonSetting->privs['custom-code'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 80, 'depend' => array('admin-index', 'admin-register'), 'recommend' => array());
+$config->group->package->commonSetting->privs['custom-hours'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 85, 'depend' => array('admin-index', 'admin-register'), 'recommend' => array());
+$config->group->package->commonSetting->privs['custom-percent'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 90, 'depend' => array('admin-index', 'admin-register'), 'recommend' => array());
+$config->group->package->commonSetting->privs['subject-browse'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 35, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->stageSetting = new stdclass();
+$config->group->package->stageSetting->edition = 'open,biz,max,ipd';
+$config->group->package->stageSetting->vision = 'rnd,lite,or';
+$config->group->package->stageSetting->order = 15;
+$config->group->package->stageSetting->subset = 'modelconfig';
+$config->group->package->stageSetting->privs = array();
+$config->group->package->stageSetting->privs['stage-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array(), 'recommend' => array());
+$config->group->package->stageSetting->privs['stage-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array(), 'recommend' => array('stage-batchCreate', 'stage-delete', 'stage-edit'));
+$config->group->package->stageSetting->privs['stage-batchCreate'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array(), 'recommend' => array('stage-create'));
+$config->group->package->stageSetting->privs['stage-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array(), 'recommend' => array('stage-create', 'stage-delete'));
+$config->group->package->stageSetting->privs['stage-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array('stage-create', 'stage-edit'));
+$config->group->package->stageSetting->privs['stage-plusBrowse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->classify = new stdclass();
+$config->group->package->classify->edition = 'open,biz,max,ipd';
+$config->group->package->classify->vision = 'rnd,lite,or';
+$config->group->package->classify->order = 30;
+$config->group->package->classify->subset = 'modelconfig';
+$config->group->package->classify->privs = array();
+$config->group->package->classify->privs['classify-browse'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->cmcl = new stdclass();
+$config->group->package->cmcl->edition = 'open,biz,max,ipd';
+$config->group->package->cmcl->vision = 'rnd,lite,or';
+$config->group->package->cmcl->order = 50;
+$config->group->package->cmcl->subset = 'modelconfig';
+$config->group->package->cmcl->privs = array();
+$config->group->package->cmcl->privs['cmcl-batchCreate'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array(), 'recommend' => array('cmcl-delete', 'cmcl-edit'));
+$config->group->package->cmcl->privs['cmcl-delete'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array('cmcl-batchCreate', 'cmcl-edit'));
+$config->group->package->cmcl->privs['cmcl-edit'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array(), 'recommend' => array('cmcl-batchCreate', 'cmcl-delete'));
+$config->group->package->cmcl->privs['cmcl-browse'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array(), 'recommend' => array());
+$config->group->package->cmcl->privs['cmcl-view'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array(), 'recommend' => array());
+$config->group->package->cmcl->privs['cmcl-waterfallplusBrowse'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->auditcl = new stdclass();
+$config->group->package->auditcl->edition = 'open,biz,max,ipd';
+$config->group->package->auditcl->vision = 'rnd,lite,or';
+$config->group->package->auditcl->order = 20;
+$config->group->package->auditcl->subset = 'modelconfig';
+$config->group->package->auditcl->privs = array();
+$config->group->package->auditcl->privs['auditcl-batchCreate'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array('auditcl-batchEdit', 'auditcl-delete', 'auditcl-edit'));
+$config->group->package->auditcl->privs['auditcl-batchEdit'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 7, 'depend' => array(), 'recommend' => array('auditcl-batchCreate', 'auditcl-delete', 'auditcl-edit'));
+$config->group->package->auditcl->privs['auditcl-delete'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 8, 'depend' => array(), 'recommend' => array('auditcl-batchCreate', 'auditcl-batchEdit', 'auditcl-edit'));
+$config->group->package->auditcl->privs['auditcl-edit'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 6, 'depend' => array(), 'recommend' => array('auditcl-batchCreate', 'auditcl-batchEdit', 'auditcl-delete'));
+$config->group->package->auditcl->privs['auditcl-scrumBrowse'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array(), 'recommend' => array());
+$config->group->package->auditcl->privs['auditcl-browse'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array(), 'recommend' => array());
+$config->group->package->auditcl->privs['auditcl-agilePlusBrowse'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array(), 'recommend' => array());
+$config->group->package->auditcl->privs['auditcl-waterfallplusBrowse'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->reviewcl = new stdclass();
+$config->group->package->reviewcl->edition = 'open,biz,max,ipd';
+$config->group->package->reviewcl->vision = 'rnd,lite,or';
+$config->group->package->reviewcl->order = 45;
+$config->group->package->reviewcl->subset = 'modelconfig';
+$config->group->package->reviewcl->privs = array();
+$config->group->package->reviewcl->privs['reviewcl-browse'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array(), 'recommend' => array());
+$config->group->package->reviewcl->privs['reviewcl-create'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array('reviewcl-batchCreate', 'reviewcl-delete', 'reviewcl-edit', 'reviewcl-view'));
+$config->group->package->reviewcl->privs['reviewcl-batchCreate'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 6, 'depend' => array(), 'recommend' => array('reviewcl-create'));
+$config->group->package->reviewcl->privs['reviewcl-delete'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 8, 'depend' => array(), 'recommend' => array('reviewcl-create', 'reviewcl-edit', 'reviewcl-view'));
+$config->group->package->reviewcl->privs['reviewcl-edit'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 7, 'depend' => array(), 'recommend' => array('reviewcl-create', 'reviewcl-delete', 'reviewcl-view'));
+$config->group->package->reviewcl->privs['reviewcl-view'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array(), 'recommend' => array());
+$config->group->package->reviewcl->privs['reviewcl-waterfallplusBrowse'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array(), 'recommend' => array());
+$config->group->package->reviewcl->privs['reviewsetting-version'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array(), 'recommend' => array());
+$config->group->package->reviewcl->privs['reviewsetting-waterfallplusVersion'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->process = new stdclass();
+$config->group->package->process->edition = 'open,biz,max,ipd';
+$config->group->package->process->vision = 'rnd,lite,or';
+$config->group->package->process->order = 25;
+$config->group->package->process->subset = 'modelconfig';
+$config->group->package->process->privs = array();
+$config->group->package->process->privs['process-create'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array('process-activityList', 'process-batchCreate', 'process-delete', 'process-edit', 'process-updateOrder', 'process-view'));
+$config->group->package->process->privs['process-batchCreate'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 6, 'depend' => array(), 'recommend' => array('process-create'));
+$config->group->package->process->privs['process-delete'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 8, 'depend' => array(), 'recommend' => array('process-create'));
+$config->group->package->process->privs['process-edit'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 7, 'depend' => array(), 'recommend' => array('process-activityList', 'process-create', 'process-delete', 'process-updateOrder', 'process-view'));
+$config->group->package->process->privs['process-view'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array(), 'recommend' => array('process-activityList'));
+$config->group->package->process->privs['process-updateOrder'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 9, 'depend' => array(), 'recommend' => array('process-create', 'process-edit'));
+$config->group->package->process->privs['process-activityList'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array(), 'recommend' => array('process-create', 'process-edit', 'process-view'));
+$config->group->package->process->privs['process-scrumBrowse'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array(), 'recommend' => array());
+$config->group->package->process->privs['process-browse'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array(), 'recommend' => array());
+$config->group->package->process->privs['process-agilePlusBrowse'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array(), 'recommend' => array());
+$config->group->package->process->privs['process-waterfallPlusBrowse'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->activity = new stdclass();
+$config->group->package->activity->edition = 'open,biz,max,ipd';
+$config->group->package->activity->vision = 'rnd,lite,or';
+$config->group->package->activity->order = 35;
+$config->group->package->activity->subset = 'modelconfig';
+$config->group->package->activity->privs = array();
+$config->group->package->activity->privs['activity-browse'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array(), 'recommend' => array());
+$config->group->package->activity->privs['activity-create'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('activity-browse'), 'recommend' => array('activity-assignTo', 'activity-batchCreate', 'activity-delete', 'activity-edit', 'activity-outputList', 'activity-updateOrder', 'activity-view'));
+$config->group->package->activity->privs['activity-batchCreate'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('activity-browse'), 'recommend' => array('activity-create'));
+$config->group->package->activity->privs['activity-delete'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('activity-browse'), 'recommend' => array('activity-create'));
+$config->group->package->activity->privs['activity-edit'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('activity-browse'), 'recommend' => array('activity-assignTo', 'activity-batchCreate', 'activity-create', 'activity-delete', 'activity-outputList', 'activity-updateOrder', 'activity-view'));
+$config->group->package->activity->privs['activity-view'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('activity-browse'), 'recommend' => array('activity-outputList'));
+$config->group->package->activity->privs['activity-assignTo'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 6, 'depend' => array('activity-browse'), 'recommend' => array('activity-create', 'activity-edit'));
+$config->group->package->activity->privs['activity-outputList'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 8, 'depend' => array('activity-browse'), 'recommend' => array('activity-create', 'activity-edit', 'activity-view'));
+$config->group->package->activity->privs['activity-updateOrder'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 7, 'depend' => array('activity-browse'), 'recommend' => array('activity-create', 'activity-edit'));
+
+$config->group->package->zoutput = new stdclass();
+$config->group->package->zoutput->edition = 'open,biz,max,ipd';
+$config->group->package->zoutput->vision = 'rnd,lite,or';
+$config->group->package->zoutput->order = 40;
+$config->group->package->zoutput->subset = 'modelconfig';
+$config->group->package->zoutput->privs = array();
+$config->group->package->zoutput->privs['zoutput-browse'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array(), 'recommend' => array());
+$config->group->package->zoutput->privs['zoutput-create'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('zoutput-browse'), 'recommend' => array('zoutput-batchCreate', 'zoutput-delete', 'zoutput-edit', 'zoutput-updateOrder', 'zoutput-view'));
+$config->group->package->zoutput->privs['zoutput-edit'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('zoutput-browse'), 'recommend' => array('zoutput-batchEdit', 'zoutput-create', 'zoutput-delete', 'zoutput-updateOrder', 'zoutput-view'));
+$config->group->package->zoutput->privs['zoutput-batchCreate'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('zoutput-browse'), 'recommend' => array('zoutput-create'));
+$config->group->package->zoutput->privs['zoutput-batchEdit'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('zoutput-browse'), 'recommend' => array('zoutput-edit'));
+$config->group->package->zoutput->privs['zoutput-delete'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 6, 'depend' => array('zoutput-browse'), 'recommend' => array('zoutput-create'));
+$config->group->package->zoutput->privs['zoutput-view'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('zoutput-browse'), 'recommend' => array());
+$config->group->package->zoutput->privs['zoutput-updateOrder'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 7, 'depend' => array('zoutput-browse'), 'recommend' => array('zoutput-create', 'zoutput-edit'));
+
+$config->group->package->custom = new stdclass();
+$config->group->package->custom->edition = 'open,biz,max,ipd';
+$config->group->package->custom->vision = 'rnd,lite,or';
+$config->group->package->custom->order = 5;
+$config->group->package->custom->subset = 'featureconfig';
+$config->group->package->custom->privs = array();
+$config->group->package->custom->privs['custom-set'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 0, 'depend' => array('admin-index', 'admin-register'), 'recommend' => array());
+$config->group->package->custom->privs['custom-product'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 3, 'depend' => array('admin-index', 'admin-register'), 'recommend' => array());
+$config->group->package->custom->privs['custom-execution'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 9, 'depend' => array('admin-index', 'admin-register'), 'recommend' => array());
+$config->group->package->custom->privs['custom-required'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 1, 'depend' => array('admin-index', 'admin-register'), 'recommend' => array());
+$config->group->package->custom->privs['custom-restore'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 2, 'depend' => array('admin-index', 'admin-register'), 'recommend' => array());
+$config->group->package->custom->privs['custom-editStoryConcept'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 7, 'depend' => array('admin-index', 'admin-register', 'custom-browseStoryConcept'), 'recommend' => array());
+$config->group->package->custom->privs['custom-browseStoryConcept'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 4, 'depend' => array('admin-index', 'admin-register'), 'recommend' => array());
+$config->group->package->custom->privs['custom-setDefaultConcept'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 5, 'depend' => array('admin-index', 'admin-register', 'custom-browseStoryConcept'), 'recommend' => array());
+$config->group->package->custom->privs['custom-deleteStoryConcept'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 8, 'depend' => array('admin-index', 'admin-register', 'custom-browseStoryConcept'), 'recommend' => array());
+$config->group->package->custom->privs['custom-kanban'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 11, 'depend' => array('admin-index', 'admin-register'), 'recommend' => array());
+$config->group->package->custom->privs['custom-setStoryConcept'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 6, 'depend' => array('admin-index', 'admin-register', 'custom-browseStoryConcept'), 'recommend' => array());
+$config->group->package->custom->privs['custom-limitTaskDate'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('admin-index', 'admin-register', 'custom-execution'), 'recommend' => array());
+
+$config->group->package->cmcl = new stdclass();
+$config->group->package->cmcl->edition = 'open,biz,max,ipd';
+$config->group->package->cmcl->vision = 'rnd,lite,or';
+$config->group->package->cmcl->order = 10;
+$config->group->package->cmcl->subset = 'featureconfig';
+$config->group->package->cmcl->privs = array();
+$config->group->package->cmcl->privs['approval-progress'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array(), 'recommend' => array());
+$config->group->package->cmcl->privs['approvalflow-browse'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array(), 'recommend' => array());
+$config->group->package->cmcl->privs['approvalflow-create'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 6, 'depend' => array('approvalflow-browse'), 'recommend' => array('approvalflow-delete', 'approvalflow-design', 'approvalflow-edit', 'approvalflow-view'));
+$config->group->package->cmcl->privs['approvalflow-edit'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 7, 'depend' => array('approvalflow-browse'), 'recommend' => array('approvalflow-create', 'approvalflow-delete', 'approvalflow-design', 'approvalflow-view'));
+$config->group->package->cmcl->privs['approvalflow-view'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('approvalflow-browse'), 'recommend' => array());
+$config->group->package->cmcl->privs['approvalflow-design'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 8, 'depend' => array('approvalflow-browse'), 'recommend' => array('approvalflow-create', 'approvalflow-delete', 'approvalflow-edit', 'approvalflow-view'));
+$config->group->package->cmcl->privs['approvalflow-delete'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 9, 'depend' => array('approvalflow-browse'), 'recommend' => array('approvalflow-create', 'approvalflow-design', 'approvalflow-edit', 'approvalflow-view'));
+$config->group->package->cmcl->privs['approvalflow-role'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array(), 'recommend' => array());
+$config->group->package->cmcl->privs['approvalflow-createRole'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('approvalflow-role'), 'recommend' => array('approvalflow-deleteRole', 'approvalflow-editRole'));
+$config->group->package->cmcl->privs['approvalflow-editRole'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('approvalflow-role'), 'recommend' => array('approvalflow-createRole', 'approvalflow-deleteRole'));
+$config->group->package->cmcl->privs['approvalflow-deleteRole'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('approvalflow-role'), 'recommend' => array('approvalflow-createRole', 'approvalflow-editRole'));
+
+$config->group->package->measurement = new stdclass();
+$config->group->package->measurement->edition = 'open,biz,max,ipd';
+$config->group->package->measurement->vision = 'rnd,lite,or';
+$config->group->package->measurement->order = 15;
+$config->group->package->measurement->subset = 'featureconfig';
+$config->group->package->measurement->privs = array();
+$config->group->package->measurement->privs['measurement-settips'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array(), 'recommend' => array());
+$config->group->package->measurement->privs['measurement-setSQL'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('measurement-browse'), 'recommend' => array('measurement-createBasic', 'measurement-delete', 'measurement-editBasic'));
+$config->group->package->measurement->privs['measurement-browse'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array(), 'recommend' => array());
+$config->group->package->measurement->privs['measurement-createBasic'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('measurement-browse'), 'recommend' => array('measurement-delete', 'measurement-editBasic', 'measurement-setSQL'));
+$config->group->package->measurement->privs['measurement-delete'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 6, 'depend' => array('measurement-browse'), 'recommend' => array('measurement-batchEdit', 'measurement-createBasic', 'measurement-editBasic', 'measurement-setSQL'));
+$config->group->package->measurement->privs['measurement-editBasic'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('measurement-browse'), 'recommend' => array('measurement-batchEdit', 'measurement-createBasic', 'measurement-delete', 'measurement-setSQL'));
+$config->group->package->measurement->privs['measurement-searchMeas'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 14, 'depend' => array(), 'recommend' => array());
+$config->group->package->measurement->privs['measurement-template'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 7, 'depend' => array(), 'recommend' => array());
+$config->group->package->measurement->privs['measurement-createTemplate'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 23, 'depend' => array('measurement-template'), 'recommend' => array('measurement-editTemplate', 'measurement-viewTemplate'));
+$config->group->package->measurement->privs['measurement-editTemplate'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 9, 'depend' => array(), 'recommend' => array('measurement-createTemplate', 'measurement-viewTemplate'));
+$config->group->package->measurement->privs['measurement-viewTemplate'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 8, 'depend' => array(), 'recommend' => array());
+$config->group->package->measurement->privs['measurement-batchEdit'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('measurement-browse'), 'recommend' => array('measurement-editBasic'));
+$config->group->package->measurement->privs['measurement-saveReport'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 24, 'depend' => array('measurement-viewTemplate'), 'recommend' => array());
+$config->group->package->measurement->privs['report-custom'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 17, 'depend' => array(), 'recommend' => array());
+$config->group->package->measurement->privs['report-editReport'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 18, 'depend' => array(), 'recommend' => array());
+$config->group->package->measurement->privs['report-useReport'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 19, 'depend' => array(), 'recommend' => array());
+$config->group->package->measurement->privs['report-deleteReport'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 20, 'depend' => array(), 'recommend' => array());
+$config->group->package->measurement->privs['report-saveReport'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 21, 'depend' => array(), 'recommend' => array());
+$config->group->package->measurement->privs['report-crystalExport'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 22, 'depend' => array(), 'recommend' => array());
+$config->group->package->measurement->privs['report-export'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 25, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->usercl = new stdclass();
+$config->group->package->usercl->edition = 'open,biz,max,ipd';
+$config->group->package->usercl->vision = 'rnd,lite,or';
+$config->group->package->usercl->order = 25;
+$config->group->package->usercl->subset = 'featureconfig';
+
+$config->group->package->meetingroom = new stdclass();
+$config->group->package->meetingroom->edition = 'open,biz,max,ipd';
+$config->group->package->meetingroom->vision = 'rnd,lite,or';
+$config->group->package->meetingroom->order = 30;
+$config->group->package->meetingroom->subset = 'featureconfig';
+$config->group->package->meetingroom->privs = array();
+$config->group->package->meetingroom->privs['meetingroom-browse'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array(), 'recommend' => array());
+$config->group->package->meetingroom->privs['meetingroom-create'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('meetingroom-browse'), 'recommend' => array('meetingroom-batchCreate', 'meetingroom-delete', 'meetingroom-edit', 'meetingroom-view'));
+$config->group->package->meetingroom->privs['meetingroom-edit'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('meetingroom-browse'), 'recommend' => array('meetingroom-batchEdit', 'meetingroom-create', 'meetingroom-delete', 'meetingroom-view'));
+$config->group->package->meetingroom->privs['meetingroom-delete'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 6, 'depend' => array('meetingroom-view'), 'recommend' => array('meetingroom-create', 'meetingroom-edit'));
+$config->group->package->meetingroom->privs['meetingroom-view'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('meetingroom-browse'), 'recommend' => array('meetingroom-batchCreate', 'meetingroom-batchEdit', 'meetingroom-create', 'meetingroom-delete', 'meetingroom-edit'));
+$config->group->package->meetingroom->privs['meetingroom-batchCreate'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('meetingroom-browse'), 'recommend' => array('meetingroom-create'));
+$config->group->package->meetingroom->privs['meetingroom-batchEdit'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('meetingroom-browse'), 'recommend' => array('meetingroom-create'));
+
+$config->group->package->sqlBuilder = new stdclass();
+$config->group->package->sqlBuilder->edition = 'open,biz,max,ipd';
+$config->group->package->sqlBuilder->vision = 'rnd,lite,or';
+$config->group->package->sqlBuilder->order = 20;
+$config->group->package->sqlBuilder->subset = 'featureconfig';
+$config->group->package->sqlBuilder->privs = array();
+$config->group->package->sqlBuilder->privs['sqlbuilder-browseSQLView'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array());
+$config->group->package->sqlBuilder->privs['sqlbuilder-createSQLView'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('sqlbuilder-browseSQLView'), 'recommend' => array('sqlbuilder-deleteSQLView', 'sqlbuilder-editSQLView'));
+$config->group->package->sqlBuilder->privs['sqlbuilder-editSQLView'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array('sqlbuilder-browseSQLView'), 'recommend' => array('sqlbuilder-createSQLView', 'sqlbuilder-deleteSQLView'));
+$config->group->package->sqlBuilder->privs['sqlbuilder-deleteSQLView'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 20, 'depend' => array('sqlbuilder-browseSQLView'), 'recommend' => array('sqlbuilder-createSQLView', 'sqlbuilder-editSQLView'));
+
+$config->group->package->designSetting = new stdclass();
+$config->group->package->designSetting->edition = 'open,biz,max,ipd';
+$config->group->package->designSetting->vision = 'rnd,lite,or';
+$config->group->package->designSetting->order = 55;
+$config->group->package->designSetting->subset = 'modelconfig';
+$config->group->package->designSetting->privs = array();
+$config->group->package->designSetting->privs['design-setType'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 65, 'depend' => array(), 'recommend' => array());
+$config->group->package->designSetting->privs['design-setPlusType'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 70, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->kanbanSpace = new stdclass();
+$config->group->package->kanbanSpace->edition = 'open,biz,max,ipd';
+$config->group->package->kanbanSpace->vision = 'rnd,lite,or';
+$config->group->package->kanbanSpace->order = 5;
+$config->group->package->kanbanSpace->subset = 'managespace';
+$config->group->package->kanbanSpace->privs = array();
+$config->group->package->kanbanSpace->privs['kanban-space'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 0, 'depend' => array(), 'recommend' => array('kanban-createSpace'));
+$config->group->package->kanbanSpace->privs['kanban-createSpace'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 1, 'depend' => array('kanban-space'), 'recommend' => array('kanban-activateSpace', 'kanban-closeSpace', 'kanban-editSpace'));
+$config->group->package->kanbanSpace->privs['kanban-editSpace'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 2, 'depend' => array('kanban-space'), 'recommend' => array('kanban-activateSpace', 'kanban-closeSpace', 'kanban-createSpace'));
+$config->group->package->kanbanSpace->privs['kanban-closeSpace'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 4, 'depend' => array('kanban-space'), 'recommend' => array('kanban-activateSpace', 'kanban-createSpace', 'kanban-editSpace'));
+$config->group->package->kanbanSpace->privs['kanban-activateSpace'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('kanban-space'), 'recommend' => array('kanban-closeSpace', 'kanban-createSpace', 'kanban-editSpace'));
+
+$config->group->package->deleteKanbanSpace = new stdclass();
+$config->group->package->deleteKanbanSpace->edition = 'open,biz,max,ipd';
+$config->group->package->deleteKanbanSpace->vision = 'rnd,lite,or';
+$config->group->package->deleteKanbanSpace->order = 10;
+$config->group->package->deleteKanbanSpace->subset = 'managespace';
+$config->group->package->deleteKanbanSpace->privs = array();
+$config->group->package->deleteKanbanSpace->privs['kanban-deleteSpace'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 25, 'depend' => array('kanban-space'), 'recommend' => array());
+
+$config->group->package->browseKanban = new stdclass();
+$config->group->package->browseKanban->edition = 'open,biz,max,ipd';
+$config->group->package->browseKanban->vision = 'rnd,lite,or';
+$config->group->package->browseKanban->order = 5;
+$config->group->package->browseKanban->subset = 'kanban';
+$config->group->package->browseKanban->privs = array();
+$config->group->package->browseKanban->privs['kanban-view'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 45, 'depend' => array('kanban-space'), 'recommend' => array('kanban-activate', 'kanban-close', 'kanban-create', 'kanban-edit', 'kanban-setting'));
+
+$config->group->package->manageKanban = new stdclass();
+$config->group->package->manageKanban->edition = 'open,biz,max,ipd';
+$config->group->package->manageKanban->vision = 'rnd,lite,or';
+$config->group->package->manageKanban->order = 10;
+$config->group->package->manageKanban->subset = 'kanban';
+$config->group->package->manageKanban->privs = array();
+$config->group->package->manageKanban->privs['kanban-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 0, 'depend' => array('kanban-view'), 'recommend' => array('kanban-activate', 'kanban-close', 'kanban-edit', 'kanban-setting'));
+$config->group->package->manageKanban->privs['kanban-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 1, 'depend' => array('kanban-view'), 'recommend' => array('kanban-activate', 'kanban-close', 'kanban-create', 'kanban-setting'));
+$config->group->package->manageKanban->privs['kanban-close'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 3, 'depend' => array('kanban-view'), 'recommend' => array('kanban-activate', 'kanban-create', 'kanban-edit', 'kanban-setting'));
+$config->group->package->manageKanban->privs['kanban-createRegion'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 14, 'depend' => array('kanban-view'), 'recommend' => array('kanban-deleteRegion', 'kanban-editRegion', 'kanban-sortRegion'));
+$config->group->package->manageKanban->privs['kanban-editRegion'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 15, 'depend' => array('kanban-view'), 'recommend' => array('kanban-createRegion', 'kanban-deleteRegion', 'kanban-sortRegion'));
+$config->group->package->manageKanban->privs['kanban-sortRegion'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 16, 'depend' => array('kanban-view'), 'recommend' => array('kanban-createRegion', 'kanban-deleteRegion', 'kanban-editRegion'));
+$config->group->package->manageKanban->privs['kanban-sortGroup'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 22, 'depend' => array('kanban-view'), 'recommend' => array('kanban-createLane', 'kanban-deleteLane', 'kanban-editLaneColor', 'kanban-editLaneName', 'kanban-sortLane'));
+$config->group->package->manageKanban->privs['kanban-deleteRegion'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 17, 'depend' => array('kanban-view'), 'recommend' => array('kanban-createRegion', 'kanban-editRegion', 'kanban-sortRegion'));
+$config->group->package->manageKanban->privs['kanban-createLane'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 18, 'depend' => array('kanban-view'), 'recommend' => array('kanban-deleteLane', 'kanban-editLaneColor', 'kanban-editLaneName', 'kanban-sortGroup', 'kanban-sortLane'));
+$config->group->package->manageKanban->privs['kanban-sortLane'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 21, 'depend' => array('kanban-view'), 'recommend' => array('kanban-createLane', 'kanban-deleteLane', 'kanban-editLaneColor', 'kanban-editLaneName', 'kanban-sortGroup'));
+$config->group->package->manageKanban->privs['kanban-deleteLane'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 23, 'depend' => array('kanban-view'), 'recommend' => array('kanban-createLane', 'kanban-editLaneColor', 'kanban-editLaneName', 'kanban-sortGroup', 'kanban-sortLane'));
+$config->group->package->manageKanban->privs['kanban-createColumn'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 5, 'depend' => array('kanban-view'), 'recommend' => array('kanban-archiveColumn', 'kanban-deleteColumn', 'kanban-restoreColumn', 'kanban-setColumn', 'kanban-setWIP', 'kanban-sortColumn', 'kanban-splitColumn', 'kanban-viewArchivedColumn'));
+$config->group->package->manageKanban->privs['kanban-setColumn'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 7, 'depend' => array('kanban-view'), 'recommend' => array('kanban-archiveColumn', 'kanban-createColumn', 'kanban-deleteColumn', 'kanban-restoreColumn', 'kanban-setWIP', 'kanban-sortColumn', 'kanban-splitColumn', 'kanban-viewArchivedColumn'));
+$config->group->package->manageKanban->privs['kanban-setWIP'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 19, 'depend' => array('kanban-view'), 'recommend' => array('kanban-archiveColumn', 'kanban-createColumn', 'kanban-deleteColumn', 'kanban-restoreColumn', 'kanban-setColumn', 'kanban-sortColumn', 'kanban-splitColumn', 'kanban-viewArchivedColumn'));
+$config->group->package->manageKanban->privs['kanban-sortColumn'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 9, 'depend' => array('kanban-view'), 'recommend' => array('kanban-archiveColumn', 'kanban-createColumn', 'kanban-deleteColumn', 'kanban-restoreColumn', 'kanban-setColumn', 'kanban-setWIP', 'kanban-splitColumn', 'kanban-viewArchivedColumn'));
+$config->group->package->manageKanban->privs['kanban-deleteColumn'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 13, 'depend' => array('kanban-view'), 'recommend' => array('kanban-archiveColumn', 'kanban-createColumn', 'kanban-restoreColumn', 'kanban-setColumn', 'kanban-setWIP', 'kanban-sortColumn', 'kanban-splitColumn', 'kanban-viewArchivedColumn'));
+$config->group->package->manageKanban->privs['kanban-viewArchivedColumn'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 11, 'depend' => array('kanban-view'), 'recommend' => array('kanban-archiveColumn', 'kanban-createColumn', 'kanban-deleteColumn', 'kanban-restoreColumn', 'kanban-setColumn', 'kanban-setWIP', 'kanban-sortColumn', 'kanban-splitColumn'));
+$config->group->package->manageKanban->privs['kanban-setting'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('kanban-view'), 'recommend' => array('kanban-activate', 'kanban-close', 'kanban-create', 'kanban-edit'));
+$config->group->package->manageKanban->privs['kanban-activate'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('kanban-view'), 'recommend' => array('kanban-close', 'kanban-create', 'kanban-edit', 'kanban-setting'));
+$config->group->package->manageKanban->privs['kanban-editLaneColor'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 8, 'depend' => array('kanban-view'), 'recommend' => array('kanban-createLane', 'kanban-deleteLane', 'kanban-editLaneName', 'kanban-sortGroup', 'kanban-sortLane'));
+$config->group->package->manageKanban->privs['kanban-editLaneName'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 20, 'depend' => array('kanban-view'), 'recommend' => array('kanban-createLane', 'kanban-deleteLane', 'kanban-editLaneColor', 'kanban-sortGroup', 'kanban-sortLane'));
+$config->group->package->manageKanban->privs['kanban-splitColumn'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 6, 'depend' => array('kanban-view'), 'recommend' => array('kanban-archiveColumn', 'kanban-createColumn', 'kanban-deleteColumn', 'kanban-restoreColumn', 'kanban-setColumn', 'kanban-setWIP', 'kanban-sortColumn', 'kanban-viewArchivedColumn'));
+$config->group->package->manageKanban->privs['kanban-archiveColumn'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 10, 'depend' => array('kanban-view'), 'recommend' => array('kanban-createColumn', 'kanban-deleteColumn', 'kanban-restoreColumn', 'kanban-setColumn', 'kanban-setWIP', 'kanban-sortColumn', 'kanban-splitColumn', 'kanban-viewArchivedColumn'));
+$config->group->package->manageKanban->privs['kanban-restoreColumn'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 12, 'depend' => array('kanban-view'), 'recommend' => array('kanban-archiveColumn', 'kanban-createColumn', 'kanban-deleteColumn', 'kanban-setColumn', 'kanban-setWIP', 'kanban-sortColumn', 'kanban-splitColumn', 'kanban-viewArchivedColumn'));
+
+$config->group->package->deleteKanban = new stdclass();
+$config->group->package->deleteKanban->edition = 'open,biz,max,ipd';
+$config->group->package->deleteKanban->vision = 'rnd,lite,or';
+$config->group->package->deleteKanban->order = 15;
+$config->group->package->deleteKanban->subset = 'kanban';
+$config->group->package->deleteKanban->privs = array();
+$config->group->package->deleteKanban->privs['kanban-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 55, 'depend' => array('kanban-view'), 'recommend' => array('kanban-create', 'kanban-edit'));
+
+$config->group->package->deleteZANode = new stdclass();
+$config->group->package->deleteZANode->edition = 'open,biz,max,ipd';
+$config->group->package->deleteZANode->vision = 'rnd,lite,or';
+$config->group->package->deleteZANode->order = 20;
+$config->group->package->deleteZANode->subset = 'zanode';
+$config->group->package->deleteZANode->privs = array();
+$config->group->package->deleteZANode->privs['zanode-destroy'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 20, 'depend' => array('zanode-browse', 'zanode-view'), 'recommend' => array());
+
+$config->group->package->autotesting = new stdclass();
+$config->group->package->autotesting->edition = 'open,biz,max,ipd';
+$config->group->package->autotesting->vision = 'rnd,lite,or';
+$config->group->package->autotesting->order = 45;
+$config->group->package->autotesting->subset = 'testcase';
+$config->group->package->autotesting->privs = array();
+$config->group->package->autotesting->privs['testcase-automation'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 140, 'depend' => array('testcase-browse'), 'recommend' => array());
+$config->group->package->autotesting->privs['testcase-showScript'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 145, 'depend' => array('testcase-browse'), 'recommend' => array());
+
+$config->group->package->executionTesting = new stdclass();
+$config->group->package->executionTesting->edition = 'open,biz,max,ipd';
+$config->group->package->executionTesting->vision = 'rnd,lite,or';
+$config->group->package->executionTesting->order = 5;
+$config->group->package->executionTesting->subset = 'executionqa';
+$config->group->package->executionTesting->privs = array();
+$config->group->package->executionTesting->privs['execution-testcase'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array(), 'recommend' => array('execution-testreport', 'execution-testtask'));
+$config->group->package->executionTesting->privs['execution-bug'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array(), 'recommend' => array('execution-testcase', 'execution-testreport', 'execution-testtask'));
+$config->group->package->executionTesting->privs['execution-testtask'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array(), 'recommend' => array('execution-testcase', 'execution-testreport'));
+$config->group->package->executionTesting->privs['execution-testreport'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array(), 'recommend' => array('execution-testcase', 'execution-testtask'));
+
+$config->group->package->manageEffort = new stdclass();
+$config->group->package->manageEffort->edition = 'open,biz,max,ipd';
+$config->group->package->manageEffort->vision = 'rnd,lite,or';
+$config->group->package->manageEffort->order = 5;
+$config->group->package->manageEffort->subset = 'effort';
+$config->group->package->manageEffort->privs = array();
+$config->group->package->manageEffort->privs['my-effort'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 1, 'depend' => array('effort-calendar'), 'recommend' => array());
+$config->group->package->manageEffort->privs['effort-calendar'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 0, 'depend' => array(), 'recommend' => array());
+$config->group->package->manageEffort->privs['effort-batchCreate'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 3, 'depend' => array('effort-calendar'), 'recommend' => array('effort-delete', 'effort-edit', 'effort-view'));
+$config->group->package->manageEffort->privs['effort-edit'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 4, 'depend' => array(), 'recommend' => array('effort-batchCreate', 'effort-batchEdit', 'effort-createForObject', 'effort-delete', 'effort-export', 'effort-view'));
+$config->group->package->manageEffort->privs['effort-batchEdit'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 5, 'depend' => array('my-effort'), 'recommend' => array('effort-edit'));
+$config->group->package->manageEffort->privs['effort-view'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 2, 'depend' => array('effort-calendar'), 'recommend' => array('effort-delete', 'effort-edit', 'my-effort'));
+$config->group->package->manageEffort->privs['effort-delete'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 6, 'depend' => array(), 'recommend' => array('effort-batchCreate', 'effort-batchEdit', 'effort-createForObject', 'effort-edit', 'effort-export', 'effort-view'));
+$config->group->package->manageEffort->privs['effort-export'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 7, 'depend' => array('effort-calendar', 'my-effort'), 'recommend' => array('effort-view'));
+
+$config->group->package->projectTesting = new stdclass();
+$config->group->package->projectTesting->edition = 'open,biz,max,ipd';
+$config->group->package->projectTesting->vision = 'rnd,lite,or';
+$config->group->package->projectTesting->order = 5;
+$config->group->package->projectTesting->subset = 'projectqa';
+$config->group->package->projectTesting->privs = array();
+$config->group->package->projectTesting->privs['project-bug'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 140, 'depend' => array('project-index'), 'recommend' => array('project-testcase', 'project-testreport', 'project-testtask'));
+$config->group->package->projectTesting->privs['project-testcase'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 145, 'depend' => array('project-index'), 'recommend' => array('project-testreport', 'project-testtask'));
+$config->group->package->projectTesting->privs['project-testtask'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 150, 'depend' => array('project-index'), 'recommend' => array('project-testcase', 'project-testreport'));
+$config->group->package->projectTesting->privs['project-testreport'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 155, 'depend' => array('project-index'), 'recommend' => array('project-testtask'));
+
+$config->group->package->track = new stdclass();
+$config->group->package->track->edition = 'open,biz,max,ipd';
+$config->group->package->track->vision = 'rnd,lite,or';
+$config->group->package->track->order = 5;
+$config->group->package->track->subset = 'projecttrack';
+$config->group->package->track->privs = array();
+$config->group->package->track->privs['projectstory-track'] = array('edition' => 'max', 'vision' => 'rnd', 'order' => 10, 'depend' => array('project-index'), 'recommend' => array('design-revision', 'projectstory-story', 'projectstory-view'));
+
+$config->group->package->workflowRelation = new stdclass();
+$config->group->package->workflowRelation->edition = 'open,biz,max,ipd';
+$config->group->package->workflowRelation->vision = 'rnd,lite,or';
+$config->group->package->workflowRelation->order = 65;
+$config->group->package->workflowRelation->subset = 'workflow';
+$config->group->package->workflowRelation->privs = array();
+$config->group->package->workflowRelation->privs['workflowrelation-admin'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 5, 'depend' => array('workflow-browseFlow'), 'recommend' => array());
+
+$config->group->package->template = new stdclass();
+$config->group->package->template->edition = 'open,biz,max,ipd';
+$config->group->package->template->vision = 'rnd,lite,or';
+$config->group->package->template->order = 5;
+$config->group->package->template->subset = 'generaltemplate';
+$config->group->package->template->privs = array();
+$config->group->package->template->privs['user-setPublicTemplate'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 10, 'depend' => array(), 'recommend' => array());
+$config->group->package->template->privs['datatable-setGlobal'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 5, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->table = new stdclass();
+$config->group->package->table->edition = 'open,biz,max,ipd';
+$config->group->package->table->vision = 'rnd,lite,or';
+$config->group->package->table->order = 5;
+$config->group->package->table->subset = 'datatable';
+
+$config->group->package->automation = new stdclass();
+$config->group->package->automation->edition = 'open,biz,max,ipd';
+$config->group->package->automation->vision = 'rnd,lite,or';
+$config->group->package->automation->order = 5;
+$config->group->package->automation->subset = 'ci';
+$config->group->package->automation->privs = array();
+$config->group->package->automation->privs['ci-commitResult'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array('ci-checkCompileStatus'));
+$config->group->package->automation->privs['ci-checkCompileStatus'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array(), 'recommend' => array('ci-commitResult'));
+
+$config->group->package->git = new stdclass();
+$config->group->package->git->edition = 'open,biz,max,ipd';
+$config->group->package->git->vision = 'rnd';
+$config->group->package->git->order = 2480;
+$config->group->package->git->subset = 'repo';
+$config->group->package->git->privs = array();
+$config->group->package->git->privs['git-diff'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array('git-apiSync', 'git-cat'));
+$config->group->package->git->privs['git-cat'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array(), 'recommend' => array('git-apiSync', 'git-diff'));
+$config->group->package->git->privs['git-apiSync'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array(), 'recommend' => array('git-cat', 'git-diff'));
+
+$config->group->package->subversion = new stdclass();
+$config->group->package->subversion->edition = 'open,biz,max,ipd';
+$config->group->package->subversion->vision = 'rnd';
+$config->group->package->subversion->order = 2460;
+$config->group->package->subversion->subset = 'repo';
+$config->group->package->subversion->privs = array();
+$config->group->package->subversion->privs['svn-diff'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('svn-apiSync', 'svn-cat'), 'recommend' => array());
+$config->group->package->subversion->privs['svn-cat'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('svn-apiSync', 'svn-diff'), 'recommend' => array());
+$config->group->package->subversion->privs['svn-apiSync'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array('svn-cat', 'svn-diff'), 'recommend' => array());
+
+$config->group->package->ping = new stdclass();
+$config->group->package->ping->edition = 'open,biz,max,ipd';
+$config->group->package->ping->vision = 'rnd,lite,or';
+$config->group->package->ping->order = 5;
+$config->group->package->ping->subset = 'generalping';
+$config->group->package->ping->privs = array();
+$config->group->package->ping->privs['misc-ping'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 5, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->review = new stdclass();
+$config->group->package->review->edition = 'open,biz,max,ipd';
+$config->group->package->review->vision = 'rnd,lite,or';
+$config->group->package->review->order = 20;
+$config->group->package->review->subset = 'projectsettings';
+$config->group->package->review->privs = array();
+$config->group->package->review->privs['project-approval'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->manageProjectRelease = new stdclass();
+$config->group->package->manageProjectRelease->edition = 'open,biz,max,ipd';
+$config->group->package->manageProjectRelease->vision = 'rnd,lite,or';
+$config->group->package->manageProjectRelease->order = 10;
+$config->group->package->manageProjectRelease->subset = 'projectrelease';
+$config->group->package->manageProjectRelease->privs = array();
+$config->group->package->manageProjectRelease->privs['projectrelease-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('projectrelease-browse'), 'recommend' => array('projectrelease-changeStatus', 'projectrelease-delete', 'projectrelease-edit', 'projectrelease-linkBug', 'projectrelease-linkStory', 'projectrelease-unlinkBug', 'projectrelease-unlinkStory'));
+$config->group->package->manageProjectRelease->privs['projectrelease-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('projectrelease-browse'), 'recommend' => array('projectrelease-changeStatus', 'projectrelease-create', 'projectrelease-delete', 'projectrelease-linkBug', 'projectrelease-linkStory', 'projectrelease-unlinkBug', 'projectrelease-unlinkStory'));
+$config->group->package->manageProjectRelease->privs['projectrelease-linkStory'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('projectrelease-browse'), 'recommend' => array('projectrelease-changeStatus', 'projectrelease-create', 'projectrelease-delete', 'projectrelease-edit', 'projectrelease-linkBug', 'projectrelease-unlinkBug', 'projectrelease-unlinkStory'));
+$config->group->package->manageProjectRelease->privs['projectrelease-unlinkStory'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 6, 'depend' => array('projectrelease-browse'), 'recommend' => array('projectrelease-batchUnlinkStory', 'projectrelease-changeStatus', 'projectrelease-create', 'projectrelease-delete', 'projectrelease-edit', 'projectrelease-linkBug', 'projectrelease-linkStory', 'projectrelease-unlinkBug'));
+$config->group->package->manageProjectRelease->privs['projectrelease-batchUnlinkStory'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 7, 'depend' => array('projectrelease-browse'), 'recommend' => array('projectrelease-unlinkStory'));
+$config->group->package->manageProjectRelease->privs['projectrelease-linkBug'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 8, 'depend' => array('projectrelease-browse'), 'recommend' => array('projectrelease-changeStatus', 'projectrelease-create', 'projectrelease-delete', 'projectrelease-edit', 'projectrelease-linkStory', 'projectrelease-unlinkBug', 'projectrelease-unlinkStory'));
+$config->group->package->manageProjectRelease->privs['projectrelease-unlinkBug'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 9, 'depend' => array('projectrelease-browse'), 'recommend' => array('projectrelease-batchUnlinkBug', 'projectrelease-changeStatus', 'projectrelease-create', 'projectrelease-delete', 'projectrelease-edit', 'projectrelease-linkBug', 'projectrelease-linkStory', 'projectrelease-unlinkStory'));
+$config->group->package->manageProjectRelease->privs['projectrelease-batchUnlinkBug'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('projectrelease-browse'), 'recommend' => array('projectrelease-unlinkBug'));
+$config->group->package->manageProjectRelease->privs['projectrelease-changeStatus'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 11, 'depend' => array('projectrelease-browse'), 'recommend' => array('projectrelease-create', 'projectrelease-delete', 'projectrelease-edit', 'projectrelease-linkBug', 'projectrelease-linkStory', 'projectrelease-unlinkBug', 'projectrelease-unlinkStory'));
+
+$config->group->package->deleteProjectRelease = new stdclass();
+$config->group->package->deleteProjectRelease->edition = 'open,biz,max,ipd';
+$config->group->package->deleteProjectRelease->vision = 'rnd,lite,or';
+$config->group->package->deleteProjectRelease->order = 25;
+$config->group->package->deleteProjectRelease->subset = 'projectrelease';
+$config->group->package->deleteProjectRelease->privs = array();
+$config->group->package->deleteProjectRelease->privs['projectrelease-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('projectrelease-browse'), 'recommend' => array('projectrelease-changeStatus', 'projectrelease-create', 'projectrelease-edit', 'projectrelease-linkBug', 'projectrelease-linkStory', 'projectrelease-unlinkBug', 'projectrelease-unlinkStory'));
+
+$config->group->package->importProjectRelease = new stdclass();
+$config->group->package->importProjectRelease->edition = 'open,biz,max,ipd';
+$config->group->package->importProjectRelease->vision = 'rnd,lite,or';
+$config->group->package->importProjectRelease->order = 20;
+$config->group->package->importProjectRelease->subset = 'projectrelease';
+$config->group->package->importProjectRelease->privs = array();
+$config->group->package->importProjectRelease->privs['projectrelease-export'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 12, 'depend' => array('projectrelease-browse', 'projectrelease-view'), 'recommend' => array());
+
+$config->group->package->projectReleaseNotify = new stdclass();
+$config->group->package->projectReleaseNotify->edition = 'open,biz,max,ipd';
+$config->group->package->projectReleaseNotify->vision = 'rnd,lite,or';
+$config->group->package->projectReleaseNotify->order = 15;
+$config->group->package->projectReleaseNotify->subset = 'projectrelease';
+$config->group->package->projectReleaseNotify->privs = array();
+$config->group->package->projectReleaseNotify->privs['projectrelease-notify'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 13, 'depend' => array('projectrelease-browse'), 'recommend' => array());
+
+$config->group->package->gantt = new stdclass();
+$config->group->package->gantt->edition = 'open,biz,max,ipd';
+$config->group->package->gantt->vision = 'rnd,lite,or';
+$config->group->package->gantt->order = 10;
+$config->group->package->gantt->subset = 'programplan';
+$config->group->package->gantt->privs = array();
+$config->group->package->gantt->privs['programplan-browse'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array('project-index'), 'recommend' => array('programplan-ganttEdit'));
+$config->group->package->gantt->privs['programplan-ganttEdit'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 20, 'depend' => array('programplan-browse'), 'recommend' => array());
+
+$config->group->package->executionRelation = new stdclass();
+$config->group->package->executionRelation->edition = 'open,biz,max,ipd';
+$config->group->package->executionRelation->vision = 'rnd,lite,or';
+$config->group->package->executionRelation->order = 10;
+$config->group->package->executionRelation->subset = 'executionview';
+$config->group->package->executionRelation->privs = array();
+$config->group->package->executionRelation->privs['execution-deleterelation'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('execution-gantt', 'execution-relation'), 'recommend' => array());
+$config->group->package->executionRelation->privs['execution-maintainrelation'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('execution-gantt', 'execution-relation'), 'recommend' => array());
+$config->group->package->executionRelation->privs['execution-relation'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('execution-gantt'), 'recommend' => array('execution-deleterelation', 'execution-maintainrelation'));
+
+$config->group->package->browseBuild = new stdclass();
+$config->group->package->browseBuild->edition = 'open,biz,max,ipd';
+$config->group->package->browseBuild->vision = 'rnd,lite,or';
+$config->group->package->browseBuild->order = 5;
+$config->group->package->browseBuild->subset = 'build';
+$config->group->package->browseBuild->privs = array();
+$config->group->package->browseBuild->privs['execution-build'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array(), 'recommend' => array('build-create', 'build-edit', 'build-linkBug', 'build-linkStory', 'build-unlinkBug', 'build-unlinkStory', 'build-view'));
+$config->group->package->browseBuild->privs['build-view'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('execution-build'), 'recommend' => array('build-create', 'build-edit', 'build-linkBug', 'build-linkStory', 'build-unlinkBug', 'build-unlinkStory'));
+
+$config->group->package->browseExecutionStory = new stdclass();
+$config->group->package->browseExecutionStory->edition = 'open,biz,max,ipd';
+$config->group->package->browseExecutionStory->vision = 'rnd,lite,or';
+$config->group->package->browseExecutionStory->order = 5;
+$config->group->package->browseExecutionStory->subset = 'executionstory';
+$config->group->package->browseExecutionStory->privs = array();
+$config->group->package->browseExecutionStory->privs['execution-story'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 0, 'depend' => array(), 'recommend' => array('execution-linkStory', 'execution-storyEstimate', 'execution-storyKanban', 'execution-storySort', 'execution-storyView', 'execution-unlinkStory'));
+$config->group->package->browseExecutionStory->privs['execution-storyKanban'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 1, 'depend' => array('execution-story'), 'recommend' => array('execution-linkStory', 'execution-storyEstimate', 'execution-storySort', 'execution-storyView', 'execution-unlinkStory'));
+$config->group->package->browseExecutionStory->privs['execution-storyView'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('execution-story'), 'recommend' => array('execution-linkStory', 'execution-storyEstimate', 'execution-storyKanban', 'execution-storySort', 'execution-unlinkStory'));
+
+$config->group->package->manageCard = new stdclass();
+$config->group->package->manageCard->edition = 'open,biz,max,ipd';
+$config->group->package->manageCard->vision = 'rnd,lite,or';
+$config->group->package->manageCard->order = 20;
+$config->group->package->manageCard->subset = 'kanban';
+$config->group->package->manageCard->privs = array();
+$config->group->package->manageCard->privs['kanban-createCard'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 0, 'depend' => array('kanban-view'), 'recommend' => array('kanban-archiveCard', 'kanban-batchCreateCard', 'kanban-deleteCard', 'kanban-editCard', 'kanban-moveCard', 'kanban-restoreCard', 'kanban-setCardColor', 'kanban-sortCard', 'kanban-viewArchivedCard', 'kanban-viewCard'));
+$config->group->package->manageCard->privs['kanban-editCard'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 2, 'depend' => array('kanban-view'), 'recommend' => array('kanban-archiveCard', 'kanban-createCard', 'kanban-deleteCard', 'kanban-moveCard', 'kanban-restoreCard', 'kanban-setCardColor', 'kanban-sortCard', 'kanban-viewArchivedCard', 'kanban-viewCard'));
+$config->group->package->manageCard->privs['kanban-viewCard'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 5, 'depend' => array('kanban-view'), 'recommend' => array('kanban-archiveCard', 'kanban-createCard', 'kanban-deleteCard', 'kanban-editCard', 'kanban-moveCard', 'kanban-restoreCard', 'kanban-setCardColor', 'kanban-sortCard', 'kanban-viewArchivedCard'));
+$config->group->package->manageCard->privs['kanban-sortCard'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 7, 'depend' => array('kanban-view'), 'recommend' => array('kanban-archiveCard', 'kanban-createCard', 'kanban-deleteCard', 'kanban-editCard', 'kanban-moveCard', 'kanban-restoreCard', 'kanban-setCardColor', 'kanban-viewArchivedCard', 'kanban-viewCard'));
+$config->group->package->manageCard->privs['kanban-deleteCard'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 8, 'depend' => array('kanban-view'), 'recommend' => array('kanban-archiveCard', 'kanban-createCard', 'kanban-editCard', 'kanban-moveCard', 'kanban-restoreCard', 'kanban-setCardColor', 'kanban-sortCard', 'kanban-viewArchivedCard', 'kanban-viewCard'));
+$config->group->package->manageCard->privs['kanban-assigntoCard'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 4, 'depend' => array('kanban-view'), 'recommend' => array('kanban-archiveCard', 'kanban-createCard', 'kanban-deleteCard', 'kanban-editCard', 'kanban-moveCard', 'kanban-restoreCard', 'kanban-setCardColor', 'kanban-sortCard', 'kanban-viewArchivedCard', 'kanban-viewCard'));
+$config->group->package->manageCard->privs['kanban-moveCard'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 6, 'depend' => array('kanban-view'), 'recommend' => array('kanban-archiveCard', 'kanban-createCard', 'kanban-deleteCard', 'kanban-editCard', 'kanban-restoreCard', 'kanban-setCardColor', 'kanban-sortCard', 'kanban-viewArchivedCard', 'kanban-viewCard'));
+$config->group->package->manageCard->privs['kanban-setCardColor'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 3, 'depend' => array('kanban-view'), 'recommend' => array('kanban-archiveCard', 'kanban-createCard', 'kanban-deleteCard', 'kanban-editCard', 'kanban-moveCard', 'kanban-restoreCard', 'kanban-sortCard', 'kanban-viewArchivedCard', 'kanban-viewCard'));
+$config->group->package->manageCard->privs['kanban-batchCreateCard'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 1, 'depend' => array('kanban-view'), 'recommend' => array('kanban-createCard'));
+$config->group->package->manageCard->privs['kanban-archiveCard'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 9, 'depend' => array('kanban-view'), 'recommend' => array('kanban-createCard', 'kanban-deleteCard', 'kanban-editCard', 'kanban-moveCard', 'kanban-restoreCard', 'kanban-setCardColor', 'kanban-sortCard', 'kanban-viewArchivedCard', 'kanban-viewCard'));
+$config->group->package->manageCard->privs['kanban-viewArchivedCard'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 10, 'depend' => array('kanban-view'), 'recommend' => array('kanban-archiveCard', 'kanban-createCard', 'kanban-deleteCard', 'kanban-editCard', 'kanban-moveCard', 'kanban-restoreCard', 'kanban-setCardColor', 'kanban-sortCard', 'kanban-viewCard'));
+$config->group->package->manageCard->privs['kanban-restoreCard'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 11, 'depend' => array('kanban-view'), 'recommend' => array('kanban-archiveCard', 'kanban-createCard', 'kanban-deleteCard', 'kanban-editCard', 'kanban-moveCard', 'kanban-setCardColor', 'kanban-sortCard', 'kanban-viewArchivedCard', 'kanban-viewCard'));
+
+$config->group->package->browseProjectStory = new stdclass();
+$config->group->package->browseProjectStory->edition = 'open,biz,max,ipd';
+$config->group->package->browseProjectStory->vision = 'rnd,lite,or';
+$config->group->package->browseProjectStory->order = 5;
+$config->group->package->browseProjectStory->subset = 'projectstory';
+$config->group->package->browseProjectStory->privs = array();
+$config->group->package->browseProjectStory->privs['projectstory-story'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 5, 'depend' => array('project-index'), 'recommend' => array('projectstory-view'));
+$config->group->package->browseProjectStory->privs['projectstory-view'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 15, 'depend' => array('projectstory-story'), 'recommend' => array());
+
+$config->group->package->chckAuditPlan = new stdclass();
+$config->group->package->chckAuditPlan->edition = 'open,biz,max,ipd';
+$config->group->package->chckAuditPlan->vision = 'rnd,lite,or';
+$config->group->package->chckAuditPlan->order = 15;
+$config->group->package->chckAuditPlan->subset = 'projectauditplan';
+$config->group->package->chckAuditPlan->privs = array();
+$config->group->package->chckAuditPlan->privs['auditplan-batchCheck'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 6, 'depend' => array('auditplan-browse'), 'recommend' => array('auditplan-check'));
+$config->group->package->chckAuditPlan->privs['auditplan-check'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('auditplan-browse'), 'recommend' => array('auditplan-assignTo', 'auditplan-batchCheck', 'auditplan-create', 'auditplan-edit', 'auditplan-nc', 'auditplan-result'));
+
+$config->group->package->reviewAssess = new stdclass();
+$config->group->package->reviewAssess->edition = 'open,biz,max,ipd';
+$config->group->package->reviewAssess->vision = 'rnd,lite,or';
+$config->group->package->reviewAssess->order = 15;
+$config->group->package->reviewAssess->subset = 'projectreview';
+$config->group->package->reviewAssess->privs = array();
+$config->group->package->reviewAssess->privs['review-assess'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('review-browse'), 'recommend' => array('review-report'));
+
+$config->group->package->reviewAudit = new stdclass();
+$config->group->package->reviewAudit->edition = 'open,biz,max,ipd';
+$config->group->package->reviewAudit->vision = 'rnd,lite,or';
+$config->group->package->reviewAudit->order = 20;
+$config->group->package->reviewAudit->subset = 'projectreview';
+$config->group->package->reviewAudit->privs = array();
+$config->group->package->reviewAudit->privs['review-audit'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 9, 'depend' => array('review-browse'), 'recommend' => array());
+
+$config->group->package->dimension = new stdclass();
+$config->group->package->dimension->edition = 'open,biz,max,ipd';
+$config->group->package->dimension->vision = 'rnd,lite,or';
+$config->group->package->dimension->order = 5;
+$config->group->package->dimension->subset = 'dimension';
+$config->group->package->dimension->privs = array();
+$config->group->package->dimension->privs['dimension-browse'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array());
+$config->group->package->dimension->privs['dimension-create'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('dimension-browse'), 'recommend' => array('dimension-delete', 'dimension-edit'));
+$config->group->package->dimension->privs['dimension-edit'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array('dimension-browse'), 'recommend' => array('dimension-create', 'dimension-delete'));
+$config->group->package->dimension->privs['dimension-delete'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 20, 'depend' => array('dimension-browse'), 'recommend' => array('dimension-create', 'dimension-edit'));
+
+$config->group->package->browseScreen = new stdclass();
+$config->group->package->browseScreen->edition = 'open,biz,max,ipd';
+$config->group->package->browseScreen->vision = 'rnd,lite,or';
+$config->group->package->browseScreen->order = 5;
+$config->group->package->browseScreen->subset = 'screen';
+$config->group->package->browseScreen->privs = array();
+$config->group->package->browseScreen->privs['screen-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array());
+$config->group->package->browseScreen->privs['screen-view'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array(), 'recommend' => array());
+$config->group->package->browseScreen->privs['screen-annualData'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 30, 'depend' => array('screen-browse'), 'recommend' => array());
+
+$config->group->package->manageScreen = new stdclass();
+$config->group->package->manageScreen->edition = 'open,biz,max,ipd';
+$config->group->package->manageScreen->vision = 'rnd,lite,or';
+$config->group->package->manageScreen->order = 10;
+$config->group->package->manageScreen->subset = 'screen';
+$config->group->package->manageScreen->privs = array();
+$config->group->package->manageScreen->privs['screen-create'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('screen-browse'), 'recommend' => array('screen-design', 'screen-edit', 'screen-publish'));
+$config->group->package->manageScreen->privs['screen-edit'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('screen-browse'), 'recommend' => array('screen-create', 'screen-design', 'screen-publish'));
+$config->group->package->manageScreen->privs['screen-design'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array('screen-browse'), 'recommend' => array('screen-create', 'screen-edit', 'screen-publish'));
+$config->group->package->manageScreen->privs['screen-publish'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 20, 'depend' => array('screen-browse'), 'recommend' => array('screen-create', 'screen-design', 'screen-edit'));
+
+$config->group->package->deleteScreen = new stdclass();
+$config->group->package->deleteScreen->edition = 'open,biz,max,ipd';
+$config->group->package->deleteScreen->vision = 'rnd,lite,or';
+$config->group->package->deleteScreen->order = 15;
+$config->group->package->deleteScreen->subset = 'screen';
+$config->group->package->deleteScreen->privs = array();
+$config->group->package->deleteScreen->privs['screen-delete'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 25, 'depend' => array('screen-browse'), 'recommend' => array());
+
+$config->group->package->screenDataPermission = new stdclass();
+$config->group->package->screenDataPermission->edition = 'open,biz,max,ipd';
+$config->group->package->screenDataPermission->vision = 'rnd,lite,or';
+$config->group->package->screenDataPermission->order = 20;
+$config->group->package->screenDataPermission->subset = 'screen';
+$config->group->package->screenDataPermission->privs = array();
+$config->group->package->screenDataPermission->privs['screen-allAnnualData'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 35, 'depend' => array('screen-annualData'), 'recommend' => array());
+
+$config->group->package->browsePivot = new stdclass();
+$config->group->package->browsePivot->edition = 'open,biz,max,ipd';
+$config->group->package->browsePivot->vision = 'rnd,lite,or';
+$config->group->package->browsePivot->order = 5;
+$config->group->package->browsePivot->subset = 'pivot';
+$config->group->package->browsePivot->privs = array();
+$config->group->package->browsePivot->privs['pivot-preview'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array(), 'recommend' => array());
+$config->group->package->browsePivot->privs['pivot-projectDeviation'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('pivot-preview'), 'recommend' => array());
+$config->group->package->browsePivot->privs['pivot-productSummary'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('pivot-preview'), 'recommend' => array());
+$config->group->package->browsePivot->privs['pivot-bugCreate'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('pivot-preview'), 'recommend' => array());
+$config->group->package->browsePivot->privs['pivot-bugAssign'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 6, 'depend' => array('pivot-preview'), 'recommend' => array());
+$config->group->package->browsePivot->privs['pivot-workload'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 11, 'depend' => array('pivot-preview'), 'recommend' => array());
+$config->group->package->browsePivot->privs['pivot-casesrun'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 8, 'depend' => array('pivot-preview'), 'recommend' => array());
+$config->group->package->browsePivot->privs['pivot-storyLinkedBug'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('pivot-preview'), 'recommend' => array());
+$config->group->package->browsePivot->privs['pivot-testcase'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 7, 'depend' => array('pivot-preview'), 'recommend' => array());
+$config->group->package->browsePivot->privs['pivot-build'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 9, 'depend' => array('pivot-preview'), 'recommend' => array());
+$config->group->package->browsePivot->privs['pivot-workSummary'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 12, 'depend' => array('pivot-preview'), 'recommend' => array());
+$config->group->package->browsePivot->privs['pivot-roadmap'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('pivot-preview'), 'recommend' => array());
+$config->group->package->browsePivot->privs['pivot-productInvest'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('pivot-preview'), 'recommend' => array());
+$config->group->package->browsePivot->privs['pivot-bugSummary'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 14, 'depend' => array('pivot-preview'), 'recommend' => array());
+$config->group->package->browsePivot->privs['pivot-bugAssignSummary'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array('pivot-preview'), 'recommend' => array());
+$config->group->package->browsePivot->privs['pivot-workAssignSummary'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 13, 'depend' => array('pivot-preview'), 'recommend' => array());
+
+$config->group->package->designPivot = new stdclass();
+$config->group->package->designPivot->edition = 'open,biz,max,ipd';
+$config->group->package->designPivot->vision = 'rnd,lite,or';
+$config->group->package->designPivot->order = 10;
+$config->group->package->designPivot->subset = 'pivot';
+$config->group->package->designPivot->privs = array();
+$config->group->package->designPivot->privs['pivot-browse'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('pivot-preview'), 'recommend' => array());
+$config->group->package->designPivot->privs['pivot-create'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array('pivot-browse'), 'recommend' => array('pivot-delete', 'pivot-design', 'pivot-edit'));
+$config->group->package->designPivot->privs['pivot-edit'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 20, 'depend' => array('pivot-browse'), 'recommend' => array('pivot-create', 'pivot-delete', 'pivot-design'));
+$config->group->package->designPivot->privs['pivot-design'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 25, 'depend' => array('pivot-browse'), 'recommend' => array('pivot-create', 'pivot-delete', 'pivot-edit'));
+$config->group->package->designPivot->privs['pivot-delete'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 30, 'depend' => array('pivot-browse'), 'recommend' => array('pivot-create', 'pivot-design', 'pivot-edit'));
+
+$config->group->package->exportPivot = new stdclass();
+$config->group->package->exportPivot->edition = 'open,biz,max,ipd';
+$config->group->package->exportPivot->vision = 'rnd,lite,or';
+$config->group->package->exportPivot->order = 15;
+$config->group->package->exportPivot->subset = 'pivot';
+$config->group->package->exportPivot->privs = array();
+$config->group->package->exportPivot->privs['pivot-export'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 35, 'depend' => array('pivot-preview'), 'recommend' => array());
+
+$config->group->package->pivotDataPermission = new stdclass();
+$config->group->package->pivotDataPermission->edition = 'open,biz,max,ipd';
+$config->group->package->pivotDataPermission->vision = 'rnd,lite,or';
+$config->group->package->pivotDataPermission->order = 20;
+$config->group->package->pivotDataPermission->subset = 'pivot';
+$config->group->package->pivotDataPermission->privs = array();
+$config->group->package->pivotDataPermission->privs['pivot-showProduct'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 40, 'depend' => array(), 'recommend' => array());
+$config->group->package->pivotDataPermission->privs['pivot-showProject'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 45, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->browseChart = new stdclass();
+$config->group->package->browseChart->edition = 'open,biz,max,ipd';
+$config->group->package->browseChart->vision = 'rnd,lite,or';
+$config->group->package->browseChart->order = 5;
+$config->group->package->browseChart->subset = 'chart';
+$config->group->package->browseChart->privs = array();
+$config->group->package->browseChart->privs['chart-preview'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->designChart = new stdclass();
+$config->group->package->designChart->edition = 'open,biz,max,ipd';
+$config->group->package->designChart->vision = 'rnd,lite,or';
+$config->group->package->designChart->order = 10;
+$config->group->package->designChart->subset = 'chart';
+$config->group->package->designChart->privs = array();
+$config->group->package->designChart->privs['chart-browse'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('chart-preview'), 'recommend' => array());
+$config->group->package->designChart->privs['chart-create'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('chart-browse'), 'recommend' => array('chart-delete', 'chart-design', 'chart-edit'));
+$config->group->package->designChart->privs['chart-edit'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array('chart-browse'), 'recommend' => array('chart-create', 'chart-delete', 'chart-design'));
+$config->group->package->designChart->privs['chart-design'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 20, 'depend' => array('chart-browse'), 'recommend' => array('chart-create', 'chart-delete', 'chart-edit'));
+$config->group->package->designChart->privs['chart-delete'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 25, 'depend' => array('chart-browse'), 'recommend' => array('chart-create', 'chart-design', 'chart-edit'));
+
+$config->group->package->exportChart = new stdclass();
+$config->group->package->exportChart->edition = 'open,biz,max,ipd';
+$config->group->package->exportChart->vision = 'rnd,lite,or';
+$config->group->package->exportChart->order = 15;
+$config->group->package->exportChart->subset = 'chart';
+$config->group->package->exportChart->privs = array();
+$config->group->package->exportChart->privs['chart-export'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('chart-preview'), 'recommend' => array());
+
+$config->group->package->browseDataview = new stdclass();
+$config->group->package->browseDataview->edition = 'open,biz,max,ipd';
+$config->group->package->browseDataview->vision = 'rnd,lite,or';
+$config->group->package->browseDataview->order = 5;
+$config->group->package->browseDataview->subset = 'dataview';
+$config->group->package->browseDataview->privs = array();
+$config->group->package->browseDataview->privs['dataview-browse'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->manageDataview = new stdclass();
+$config->group->package->manageDataview->edition = 'open,biz,max,ipd';
+$config->group->package->manageDataview->vision = 'rnd,lite,or';
+$config->group->package->manageDataview->order = 10;
+$config->group->package->manageDataview->subset = 'dataview';
+$config->group->package->manageDataview->privs = array();
+$config->group->package->manageDataview->privs['dataview-create'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('dataview-browse'), 'recommend' => array('dataview-edit', 'dataview-query'));
+$config->group->package->manageDataview->privs['dataview-edit'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array('dataview-browse'), 'recommend' => array('dataview-create', 'dataview-query'));
+$config->group->package->manageDataview->privs['dataview-query'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 20, 'depend' => array('dataview-browse'), 'recommend' => array('dataview-create', 'dataview-edit'));
+
+$config->group->package->deleteDataview = new stdclass();
+$config->group->package->deleteDataview->edition = 'open,biz,max,ipd';
+$config->group->package->deleteDataview->vision = 'rnd,lite,or';
+$config->group->package->deleteDataview->order = 15;
+$config->group->package->deleteDataview->subset = 'dataview';
+$config->group->package->deleteDataview->privs = array();
+$config->group->package->deleteDataview->privs['dataview-delete'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 25, 'depend' => array('dataview-browse'), 'recommend' => array());
+
+$config->group->package->browseDoc = new stdclass();
+$config->group->package->browseDoc->edition = 'open,biz,max,ipd';
+$config->group->package->browseDoc->vision = 'rnd,lite,or';
+$config->group->package->browseDoc->order = 10;
+$config->group->package->browseDoc->subset = 'doc';
+$config->group->package->browseDoc->privs = array();
+$config->group->package->browseDoc->privs['doc-index'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 0, 'depend' => array(), 'recommend' => array('doc-mySpace', 'doc-productSpace', 'doc-projectSpace', 'doc-teamSpace', 'doc-view'));
+$config->group->package->browseDoc->privs['doc-mySpace'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 1, 'depend' => array(), 'recommend' => array('doc-index', 'doc-productSpace', 'doc-projectSpace', 'doc-teamSpace', 'doc-view'));
+$config->group->package->browseDoc->privs['doc-myView'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 6, 'depend' => array('doc-mySpace'), 'recommend' => array('doc-myCollection', 'doc-myCreation', 'doc-myEdited'));
+$config->group->package->browseDoc->privs['doc-myCollection'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 7, 'depend' => array('doc-mySpace'), 'recommend' => array('doc-myCreation', 'doc-myEdited', 'doc-myView'));
+$config->group->package->browseDoc->privs['doc-myCreation'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 8, 'depend' => array('doc-mySpace'), 'recommend' => array('doc-myCollection', 'doc-myEdited', 'doc-myView'));
+$config->group->package->browseDoc->privs['doc-view'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 5, 'depend' => array(), 'recommend' => array('doc-diff', 'doc-displaySetting', 'doc-index', 'doc-myCollection', 'doc-myCreation', 'doc-myEdited', 'doc-mySpace', 'doc-myView', 'doc-productSpace', 'doc-projectSpace', 'doc-teamSpace'));
+$config->group->package->browseDoc->privs['doc-productSpace'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 2, 'depend' => array(), 'recommend' => array('doc-index', 'doc-mySpace', 'doc-projectSpace', 'doc-teamSpace', 'doc-view'));
+$config->group->package->browseDoc->privs['doc-projectSpace'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 3, 'depend' => array(), 'recommend' => array('doc-index', 'doc-mySpace', 'doc-productSpace', 'doc-teamSpace', 'doc-view'));
+$config->group->package->browseDoc->privs['doc-teamSpace'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 4, 'depend' => array(), 'recommend' => array('doc-index', 'doc-mySpace', 'doc-productSpace', 'doc-projectSpace', 'doc-view'));
+$config->group->package->browseDoc->privs['doc-displaySetting'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 10, 'depend' => array('doc-view'), 'recommend' => array());
+$config->group->package->browseDoc->privs['doc-diff'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 11, 'depend' => array('doc-view'), 'recommend' => array());
+$config->group->package->browseDoc->privs['doc-myEdited'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 9, 'depend' => array('doc-mySpace'), 'recommend' => array('doc-myCollection', 'doc-myCreation', 'doc-myView'));
+
+$config->group->package->manageDoc = new stdclass();
+$config->group->package->manageDoc->edition = 'open,biz,max,ipd';
+$config->group->package->manageDoc->vision = 'rnd,lite,or';
+$config->group->package->manageDoc->order = 15;
+$config->group->package->manageDoc->subset = 'doc';
+$config->group->package->manageDoc->privs = array();
+$config->group->package->manageDoc->privs['doc-createLib'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 0, 'depend' => array(), 'recommend' => array('doc-editLib', 'doc-showFiles'));
+$config->group->package->manageDoc->privs['doc-editLib'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 1, 'depend' => array(), 'recommend' => array('doc-createLib', 'doc-showFiles'));
+$config->group->package->manageDoc->privs['doc-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 3, 'depend' => array(), 'recommend' => array('doc-collect', 'doc-edit'));
+$config->group->package->manageDoc->privs['doc-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 4, 'depend' => array(), 'recommend' => array('doc-collect', 'doc-create'));
+$config->group->package->manageDoc->privs['doc-collect'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 8, 'depend' => array(), 'recommend' => array('doc-create', 'doc-edit'));
+$config->group->package->manageDoc->privs['doc-showFiles'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 2, 'depend' => array(), 'recommend' => array('doc-createLib', 'doc-editLib'));
+$config->group->package->manageDoc->privs['doc-addCatalog'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 5, 'depend' => array(), 'recommend' => array('doc-editCatalog', 'doc-sortCatalog'));
+$config->group->package->manageDoc->privs['doc-editCatalog'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 6, 'depend' => array(), 'recommend' => array('doc-addCatalog', 'doc-sortCatalog'));
+$config->group->package->manageDoc->privs['doc-sortCatalog'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,or', 'order' => 7, 'depend' => array(), 'recommend' => array('doc-addCatalog', 'doc-editCatalog'));
+
+$config->group->package->deleteDoc = new stdclass();
+$config->group->package->deleteDoc->edition = 'open,biz,max,ipd';
+$config->group->package->deleteDoc->vision = 'rnd,lite,or';
+$config->group->package->deleteDoc->order = 20;
+$config->group->package->deleteDoc->subset = 'doc';
+$config->group->package->deleteDoc->privs = array();
+$config->group->package->deleteDoc->privs['doc-deleteLib'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 40, 'depend' => array(), 'recommend' => array());
+$config->group->package->deleteDoc->privs['doc-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 60, 'depend' => array(), 'recommend' => array());
+$config->group->package->deleteDoc->privs['doc-deleteFile'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 65, 'depend' => array(), 'recommend' => array());
+$config->group->package->deleteDoc->privs['doc-deleteCatalog'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 110, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->exportDoc = new stdclass();
+$config->group->package->exportDoc->edition = 'open,biz,max,ipd';
+$config->group->package->exportDoc->vision = 'rnd,lite,or';
+$config->group->package->exportDoc->order = 25;
+$config->group->package->exportDoc->subset = 'doc';
+$config->group->package->exportDoc->privs = array();
+$config->group->package->exportDoc->privs['doc-mine2export'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 125, 'depend' => array('doc-mySpace'), 'recommend' => array());
+$config->group->package->exportDoc->privs['doc-product2export'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 130, 'depend' => array('doc-productSpace'), 'recommend' => array());
+$config->group->package->exportDoc->privs['doc-project2export'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 135, 'depend' => array('doc-projectSpace'), 'recommend' => array());
+$config->group->package->exportDoc->privs['doc-custom2export'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 140, 'depend' => array('doc-teamSpace'), 'recommend' => array());
+
+$config->group->package->browseAPI = new stdclass();
+$config->group->package->browseAPI->edition = 'open,biz,max,ipd';
+$config->group->package->browseAPI->vision = 'rnd,lite,or';
+$config->group->package->browseAPI->order = 5;
+$config->group->package->browseAPI->subset = 'api';
+$config->group->package->browseAPI->privs = array();
+$config->group->package->browseAPI->privs['api-index'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->manageAPI = new stdclass();
+$config->group->package->manageAPI->edition = 'open,biz,max,ipd';
+$config->group->package->manageAPI->vision = 'rnd,lite,or';
+$config->group->package->manageAPI->order = 10;
+$config->group->package->manageAPI->subset = 'api';
+$config->group->package->manageAPI->privs = array();
+$config->group->package->manageAPI->privs['api-createLib'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array('api-index'), 'recommend' => array('api-editLib'));
+$config->group->package->manageAPI->privs['api-editLib'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('api-index'), 'recommend' => array('api-createLib'));
+$config->group->package->manageAPI->privs['api-createRelease'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('api-index'), 'recommend' => array('api-create', 'api-edit', 'api-releases'));
+$config->group->package->manageAPI->privs['api-releases'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('api-index'), 'recommend' => array('api-create', 'api-createRelease', 'api-edit'));
+$config->group->package->manageAPI->privs['api-struct'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 8, 'depend' => array('api-index'), 'recommend' => array('api-createStruct', 'api-editStruct'));
+$config->group->package->manageAPI->privs['api-createStruct'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 6, 'depend' => array('api-index'), 'recommend' => array('api-editStruct', 'api-struct'));
+$config->group->package->manageAPI->privs['api-editStruct'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 7, 'depend' => array('api-index'), 'recommend' => array('api-createStruct', 'api-struct'));
+$config->group->package->manageAPI->privs['api-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('api-index'), 'recommend' => array('api-createRelease', 'api-edit', 'api-releases'));
+$config->group->package->manageAPI->privs['api-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('api-index'), 'recommend' => array('api-create', 'api-createRelease', 'api-releases'));
+$config->group->package->manageAPI->privs['api-addCatalog'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 9, 'depend' => array('api-index'), 'recommend' => array('api-editCatalog'));
+$config->group->package->manageAPI->privs['api-editCatalog'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('api-index'), 'recommend' => array('api-addCatalog'));
+$config->group->package->manageAPI->privs['api-sortCatalog'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 60, 'depend' => array('api-index'), 'recommend' => array());
+
+$config->group->package->exportAPI = new stdclass();
+$config->group->package->exportAPI->edition = 'open,biz,max,ipd';
+$config->group->package->exportAPI->vision = 'rnd,lite,or';
+$config->group->package->exportAPI->order = 15;
+$config->group->package->exportAPI->subset = 'api';
+$config->group->package->exportAPI->privs = array();
+$config->group->package->exportAPI->privs['api-export'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 110, 'depend' => array('api-index'), 'recommend' => array());
+
+$config->group->package->deleteAPI = new stdclass();
+$config->group->package->deleteAPI->edition = 'open,biz,max,ipd';
+$config->group->package->deleteAPI->vision = 'rnd,lite,or';
+$config->group->package->deleteAPI->order = 20;
+$config->group->package->deleteAPI->subset = 'api';
+$config->group->package->deleteAPI->privs = array();
+$config->group->package->deleteAPI->privs['api-deleteLib'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array('api-index'), 'recommend' => array());
+$config->group->package->deleteAPI->privs['api-deleteRelease'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 3, 'depend' => array('api-index'), 'recommend' => array());
+$config->group->package->deleteAPI->privs['api-deleteStruct'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 2, 'depend' => array('api-index'), 'recommend' => array());
+$config->group->package->deleteAPI->privs['api-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 1, 'depend' => array('api-index'), 'recommend' => array());
+$config->group->package->deleteAPI->privs['api-deleteCatalog'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('api-index'), 'recommend' => array());
+
+$config->group->package->callAPI = new stdclass();
+$config->group->package->callAPI->edition = 'open,biz,max,ipd';
+$config->group->package->callAPI->vision = 'rnd,lite,or';
+$config->group->package->callAPI->order = 25;
+$config->group->package->callAPI->subset = 'api';
+$config->group->package->callAPI->privs = array();
+$config->group->package->callAPI->privs['api-getModel'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array());
+$config->group->package->callAPI->privs['api-sql'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 105, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->scene = new stdclass();
+$config->group->package->scene->edition = 'open,biz,max,ipd';
+$config->group->package->scene->vision = 'rnd,lite,or';
+$config->group->package->scene->order = 5;
+$config->group->package->scene->subset = 'testcase';
+$config->group->package->scene->privs = array();
+$config->group->package->scene->privs['testcase-createScene'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('testcase-browse'), 'recommend' => array('testcase-batchChangeScene', 'testcase-changeScene', 'testcase-editScene'));
+$config->group->package->scene->privs['testcase-editScene'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('testcase-browse'), 'recommend' => array('testcase-batchChangeScene', 'testcase-changeScene', 'testcase-createScene'));
+$config->group->package->scene->privs['testcase-deleteScene'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array('testcase-browse'), 'recommend' => array());
+$config->group->package->scene->privs['testcase-changeScene'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 20, 'depend' => array('testcase-browse'), 'recommend' => array('testcase-batchChangeScene', 'testcase-createScene', 'testcase-editScene'));
+$config->group->package->scene->privs['testcase-batchChangeScene'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 25, 'depend' => array('testcase-browse'), 'recommend' => array('testcase-changeScene', 'testcase-createScene', 'testcase-editScene'));
+
+$config->group->package->executionTree = new stdclass();
+$config->group->package->executionTree->edition = 'open,biz,max,ipd';
+$config->group->package->executionTree->vision = 'rnd,lite,or';
+$config->group->package->executionTree->order = 20;
+$config->group->package->executionTree->subset = 'executionview';
+$config->group->package->executionTree->privs = array();
+$config->group->package->executionTree->privs['execution-tree'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 1, 'depend' => array(), 'recommend' => array('execution-calendar', 'execution-gantt', 'execution-grouptask', 'execution-taskEffort', 'execution-treeStory', 'execution-treeTask'));
+$config->group->package->executionTree->privs['execution-treeTask'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 2, 'depend' => array('execution-tree'), 'recommend' => array('execution-treeStory'));
+$config->group->package->executionTree->privs['execution-treeStory'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 3, 'depend' => array('execution-tree'), 'recommend' => array('execution-treeTask'));
+
+$config->group->package->taskEffort = new stdclass();
+$config->group->package->taskEffort->edition = 'open,biz,max,ipd';
+$config->group->package->taskEffort->vision = 'rnd,lite,or';
+$config->group->package->taskEffort->order = 25;
+$config->group->package->taskEffort->subset = 'executionview';
+$config->group->package->taskEffort->privs = array();
+$config->group->package->taskEffort->privs['execution-taskEffort'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array(), 'recommend' => array('execution-calendar', 'execution-computeTaskEffort', 'execution-gantt', 'execution-grouptask', 'execution-tree'));
+$config->group->package->taskEffort->privs['execution-computeTaskEffort'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('execution-taskEffort'), 'recommend' => array());
+
+$config->group->package->taskCalendar = new stdclass();
+$config->group->package->taskCalendar->edition = 'open,biz,max,ipd';
+$config->group->package->taskCalendar->vision = 'rnd,lite,or';
+$config->group->package->taskCalendar->order = 30;
+$config->group->package->taskCalendar->subset = 'executionview';
+$config->group->package->taskCalendar->privs = array();
+$config->group->package->taskCalendar->privs['execution-calendar'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd,lite', 'order' => 6, 'depend' => array(), 'recommend' => array('execution-gantt', 'execution-grouptask', 'execution-taskEffort', 'execution-tree'));
+
+$config->group->package->browseDemandPool = new stdclass();
+$config->group->package->browseDemandPool->edition = 'open,biz,max,ipd';
+$config->group->package->browseDemandPool->vision = 'rnd,lite,or';
+$config->group->package->browseDemandPool->order = 5;
+$config->group->package->browseDemandPool->subset = 'demandpool';
+$config->group->package->browseDemandPool->privs = array();
+$config->group->package->browseDemandPool->privs['demandpool-browse'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 10, 'depend' => array(), 'recommend' => array('demandpool-edit', 'demandpool-view'));
+$config->group->package->browseDemandPool->privs['demandpool-view'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 40, 'depend' => array('demandpool-browse'), 'recommend' => array('demandpool-activate', 'demandpool-close', 'demandpool-delete', 'demandpool-edit'));
+
+$config->group->package->browseCharter = new stdclass();
+$config->group->package->browseCharter->edition = 'open,biz,max,ipd';
+$config->group->package->browseCharter->vision = 'rnd,lite,or';
+$config->group->package->browseCharter->order = 5;
+$config->group->package->browseCharter->subset = 'charter';
+$config->group->package->browseCharter->privs = array();
+$config->group->package->browseCharter->privs['charter-browse'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 10, 'depend' => array(), 'recommend' => array());
+$config->group->package->browseCharter->privs['charter-view'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 40, 'depend' => array('charter-browse'), 'recommend' => array());
+$config->group->package->browseCharter->privs['charter-loadRoadmapStories'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 70, 'depend' => array('charter-browse', 'charter-view'), 'recommend' => array());
+
+$config->group->package->manageDemandPool = new stdclass();
+$config->group->package->manageDemandPool->edition = 'open,biz,max,ipd';
+$config->group->package->manageDemandPool->vision = 'rnd,lite,or';
+$config->group->package->manageDemandPool->order = 5;
+$config->group->package->manageDemandPool->subset = 'demandpool';
+$config->group->package->manageDemandPool->privs = array();
+$config->group->package->manageDemandPool->privs['demandpool-create'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 20, 'depend' => array('demandpool-browse'), 'recommend' => array('demandpool-close', 'demandpool-edit', 'demandpool-view'));
+$config->group->package->manageDemandPool->privs['demandpool-edit'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 30, 'depend' => array('demandpool-browse', 'demandpool-view'), 'recommend' => array('demandpool-close', 'demandpool-create'));
+$config->group->package->manageDemandPool->privs['demandpool-close'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 50, 'depend' => array('demandpool-browse', 'demandpool-view'), 'recommend' => array('demandpool-activate', 'demandpool-create', 'demandpool-edit'));
+$config->group->package->manageDemandPool->privs['demandpool-activate'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 60, 'depend' => array('demandpool-browse', 'demandpool-view'), 'recommend' => array('demandpool-close', 'demandpool-create', 'demandpool-edit'));
+
+$config->group->package->manageCharter = new stdclass();
+$config->group->package->manageCharter->edition = 'open,biz,max,ipd';
+$config->group->package->manageCharter->vision = 'rnd,lite,or';
+$config->group->package->manageCharter->order = 5;
+$config->group->package->manageCharter->subset = 'charter';
+$config->group->package->manageCharter->privs = array();
+$config->group->package->manageCharter->privs['charter-create'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 20, 'depend' => array('charter-browse'), 'recommend' => array('charter-delete', 'charter-edit'));
+$config->group->package->manageCharter->privs['charter-edit'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 30, 'depend' => array('charter-browse', 'charter-loadRoadmapStories', 'charter-view'), 'recommend' => array('charter-create', 'charter-delete'));
+$config->group->package->manageCharter->privs['charter-delete'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 50, 'depend' => array('charter-browse', 'charter-view'), 'recommend' => array());
+$config->group->package->manageCharter->privs['charter-close'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 80, 'depend' => array('charter-browse', 'charter-view'), 'recommend' => array('charter-activate', 'charter-create', 'charter-edit'));
+$config->group->package->manageCharter->privs['charter-activate'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 90, 'depend' => array('charter-browse', 'charter-view'), 'recommend' => array('charter-close', 'charter-create', 'charter-edit'));
+
+$config->group->package->reviewCharter = new stdclass();
+$config->group->package->reviewCharter->edition = 'open,biz,max,ipd';
+$config->group->package->reviewCharter->vision = 'rnd,lite,or';
+$config->group->package->reviewCharter->order = 5;
+$config->group->package->reviewCharter->subset = 'charter';
+$config->group->package->reviewCharter->privs = array();
+$config->group->package->reviewCharter->privs['charter-review'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 60, 'depend' => array('charter-browse', 'charter-loadRoadmapStories', 'charter-view'), 'recommend' => array());
+
+$config->group->package->browseDemand = new stdclass();
+$config->group->package->browseDemand->edition = 'open,biz,max,ipd';
+$config->group->package->browseDemand->vision = 'rnd,lite,or';
+$config->group->package->browseDemand->order = 5;
+$config->group->package->browseDemand->subset = 'demand';
+$config->group->package->browseDemand->privs = array();
+$config->group->package->browseDemand->privs['demand-browse'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 10, 'depend' => array(), 'recommend' => array('demand-view'));
+$config->group->package->browseDemand->privs['demand-view'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 50, 'depend' => array('demand-browse'), 'recommend' => array('demand-assignTo', 'demand-change', 'demand-create', 'demand-edit', 'demand-recall', 'demand-review', 'demand-submitReview'));
+$config->group->package->browseDemand->privs['demand-track'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 110, 'depend' => array(), 'recommend' => array('demand-browse', 'demand-view'));
+
+$config->group->package->manageDemand = new stdclass();
+$config->group->package->manageDemand->edition = 'open,biz,max,ipd';
+$config->group->package->manageDemand->vision = 'rnd,lite,or';
+$config->group->package->manageDemand->order = 5;
+$config->group->package->manageDemand->subset = 'demand';
+$config->group->package->manageDemand->privs = array();
+$config->group->package->manageDemand->privs['demand-create'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 20, 'depend' => array('demand-browse', 'demand-view'), 'recommend' => array('demand-assignTo', 'demand-batchCreate', 'demand-change', 'demand-edit', 'demand-recall', 'demand-submitReview'));
+$config->group->package->manageDemand->privs['demand-batchCreate'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 30, 'depend' => array('demand-browse', 'demand-view'), 'recommend' => array('demand-create'));
+$config->group->package->manageDemand->privs['demand-edit'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 40, 'depend' => array('demand-browse'), 'recommend' => array('demand-assignTo', 'demand-batchCreate'));
+$config->group->package->manageDemand->privs['demand-assignTo'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 60, 'depend' => array('demand-browse'), 'recommend' => array('demand-activate', 'demand-close', 'demand-create', 'demand-edit'));
+$config->group->package->manageDemand->privs['demand-change'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 70, 'depend' => array('demand-browse', 'demand-view'), 'recommend' => array('demand-activate', 'demand-assignTo', 'demand-batchCreate', 'demand-close', 'demand-create', 'demand-edit'));
+$config->group->package->manageDemand->privs['demand-manageTree'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 120, 'depend' => array('demand-browse'), 'recommend' => array());
+$config->group->package->manageDemand->privs['demand-close'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 180, 'depend' => array('demand-browse', 'demand-view'), 'recommend' => array('demand-activate', 'demand-assignTo', 'demand-batchCreate', 'demand-create', 'demand-edit'));
+$config->group->package->manageDemand->privs['demand-activate'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 190, 'depend' => array('demand-browse', 'demand-view'), 'recommend' => array('demand-assignTo', 'demand-batchCreate', 'demand-close', 'demand-create', 'demand-edit'));
+$config->group->package->manageDemand->privs['demand-distribute'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 200, 'depend' => array('demand-browse', 'demand-view'), 'recommend' => array('demand-assignTo', 'demand-batchCreate', 'demand-create', 'demand-edit'));
+
+$config->group->package->reviewDemand = new stdclass();
+$config->group->package->reviewDemand->edition = 'open,biz,max,ipd';
+$config->group->package->reviewDemand->vision = 'rnd,lite,or';
+$config->group->package->reviewDemand->order = 5;
+$config->group->package->reviewDemand->subset = 'demand';
+$config->group->package->reviewDemand->privs = array();
+$config->group->package->reviewDemand->privs['demand-review'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 80, 'depend' => array('demand-browse', 'demand-view'), 'recommend' => array('demand-activate', 'demand-assignTo', 'demand-batchCreate', 'demand-change', 'demand-close', 'demand-create', 'demand-edit'));
+$config->group->package->reviewDemand->privs['demand-submitReview'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 90, 'depend' => array('demand-browse', 'demand-view'), 'recommend' => array('demand-activate', 'demand-assignTo', 'demand-batchCreate', 'demand-change', 'demand-close', 'demand-create', 'demand-edit'));
+$config->group->package->reviewDemand->privs['demand-recall'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 100, 'depend' => array('demand-browse', 'demand-view'), 'recommend' => array('demand-activate', 'demand-assignTo', 'demand-batchCreate', 'demand-change', 'demand-close', 'demand-create', 'demand-edit'));
+
+$config->group->package->importDemand = new stdclass();
+$config->group->package->importDemand->edition = 'open,biz,max,ipd';
+$config->group->package->importDemand->vision = 'rnd,lite,or';
+$config->group->package->importDemand->order = 5;
+$config->group->package->importDemand->subset = 'demand';
+$config->group->package->importDemand->privs = array();
+$config->group->package->importDemand->privs['demand-export'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 210, 'depend' => array('demand-browse'), 'recommend' => array('demand-exportTemplate', 'demand-import'));
+$config->group->package->importDemand->privs['demand-exportTemplate'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 220, 'depend' => array('demand-browse'), 'recommend' => array('demand-export'));
+$config->group->package->importDemand->privs['demand-import'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 230, 'depend' => array('demand-browse', 'demand-exportTemplate'), 'recommend' => array('demand-batchCreate', 'demand-create', 'demand-export'));
+
+$config->group->package->deleteDemand = new stdclass();
+$config->group->package->deleteDemand->edition = 'open,biz,max,ipd';
+$config->group->package->deleteDemand->vision = 'rnd,lite,or';
+$config->group->package->deleteDemand->order = 5;
+$config->group->package->deleteDemand->subset = 'demand';
+$config->group->package->deleteDemand->privs = array();
+$config->group->package->deleteDemand->privs['demand-delete'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 170, 'depend' => array('demand-browse', 'demand-view'), 'recommend' => array());
+
+$config->group->package->admin = new stdclass();
+$config->group->package->admin->edition = 'open,biz,max,ipd';
+$config->group->package->admin->vision = 'rnd,lite,or';
+$config->group->package->admin->order = 5;
+$config->group->package->admin->subset = 'admin';
+$config->group->package->admin->privs = array();
+$config->group->package->admin->privs['admin-index'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 5, 'depend' => array(), 'recommend' => array());
+$config->group->package->admin->privs['admin-register'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd,lite,or', 'order' => 25, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->browseRoadmap = new stdclass();
+$config->group->package->browseRoadmap->edition = 'open,biz,max,ipd';
+$config->group->package->browseRoadmap->vision = 'rnd,lite,or';
+$config->group->package->browseRoadmap->order = 5;
+$config->group->package->browseRoadmap->subset = 'roadmap';
+$config->group->package->browseRoadmap->privs = array();
+$config->group->package->browseRoadmap->privs['roadmap-browse'] = array('edition' => 'ipd', 'vision' => 'or,rnd', 'order' => 10, 'depend' => array(), 'recommend' => array('roadmap-create', 'roadmap-edit', 'roadmap-view'));
+$config->group->package->browseRoadmap->privs['roadmap-view'] = array('edition' => 'ipd', 'vision' => 'or,rnd', 'order' => 20, 'depend' => array('roadmap-browse'), 'recommend' => array('roadmap-edit', 'roadmap-linkUR'));
+
+$config->group->package->manageRoadmap = new stdclass();
+$config->group->package->manageRoadmap->edition = 'open,biz,max,ipd';
+$config->group->package->manageRoadmap->vision = 'rnd,lite,or';
+$config->group->package->manageRoadmap->order = 5;
+$config->group->package->manageRoadmap->subset = 'roadmap';
+$config->group->package->manageRoadmap->privs = array();
+$config->group->package->manageRoadmap->privs['roadmap-linkUR'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 30, 'depend' => array('roadmap-browse', 'roadmap-view'), 'recommend' => array('roadmap-batchUnlinkUR', 'roadmap-unlinkUR'));
+$config->group->package->manageRoadmap->privs['roadmap-create'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 40, 'depend' => array('roadmap-browse', 'roadmap-view'), 'recommend' => array('roadmap-edit'));
+$config->group->package->manageRoadmap->privs['roadmap-edit'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 50, 'depend' => array('roadmap-browse', 'roadmap-view'), 'recommend' => array('roadmap-create'));
+$config->group->package->manageRoadmap->privs['roadmap-close'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 60, 'depend' => array('roadmap-browse', 'roadmap-view'), 'recommend' => array('roadmap-activate'));
+$config->group->package->manageRoadmap->privs['roadmap-activate'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 80, 'depend' => array('roadmap-browse', 'roadmap-view'), 'recommend' => array('roadmap-close'));
+$config->group->package->manageRoadmap->privs['roadmap-unlinkUR'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 90, 'depend' => array('roadmap-browse', 'roadmap-view'), 'recommend' => array('roadmap-batchUnlinkUR'));
+$config->group->package->manageRoadmap->privs['roadmap-batchUnlinkUR'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 100, 'depend' => array('roadmap-browse', 'roadmap-view'), 'recommend' => array('roadmap-unlinkUR'));
+
+$config->group->package->deleteRoadmap = new stdclass();
+$config->group->package->deleteRoadmap->edition = 'open,biz,max,ipd';
+$config->group->package->deleteRoadmap->vision = 'rnd,lite,or';
+$config->group->package->deleteRoadmap->order = 5;
+$config->group->package->deleteRoadmap->subset = 'roadmap';
+$config->group->package->deleteRoadmap->privs = array();
+$config->group->package->deleteRoadmap->privs['roadmap-delete'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 70, 'depend' => array('roadmap-browse', 'roadmap-view'), 'recommend' => array());
+
+$config->group->package->deleteDemandPool = new stdclass();
+$config->group->package->deleteDemandPool->edition = 'open,biz,max,ipd';
+$config->group->package->deleteDemandPool->vision = 'rnd,lite,or';
+$config->group->package->deleteDemandPool->order = 5;
+$config->group->package->deleteDemandPool->subset = 'demandpool';
+$config->group->package->deleteDemandPool->privs = array();
+$config->group->package->deleteDemandPool->privs['demandpool-delete'] = array('edition' => 'ipd', 'vision' => 'or', 'order' => 70, 'depend' => array('demandpool-browse', 'demandpool-view'), 'recommend' => array('demandpool-create', 'demandpool-edit'));
+
+$config->group->package->exportDatatable = new stdclass();
+$config->group->package->exportDatatable->edition = 'biz,max,ipd';
+$config->group->package->exportDatatable->vision = 'rnd';
+$config->group->package->exportDatatable->order = 20;
+$config->group->package->exportDatatable->subset = 'dataview';
+$config->group->package->exportDatatable->privs = array();
+$config->group->package->exportDatatable->privs['dataview-export'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 30, 'depend' => array('dataview-browse', 'dataview-query'), 'recommend' => array());
+
+$config->group->package->executePrompt = new stdclass();
+$config->group->package->executePrompt->edition = 'open,biz,max';
+$config->group->package->executePrompt->vision = 'rnd';
+$config->group->package->executePrompt->order = 2040;
+$config->group->package->executePrompt->subset = 'ai';
+$config->group->package->executePrompt->privs = array();
+$config->group->package->executePrompt->privs['ai-promptExecute'] = array('edition' => 'open,biz,max', 'vision' => 'rnd', 'order' => 85, 'depend' => array('ai-promptExecutionReset'), 'recommend' => array());
+$config->group->package->executePrompt->privs['ai-promptExecutionReset'] = array('edition' => 'open,biz,max', 'vision' => 'rnd', 'order' => 95, 'depend' => array('ai-promptExecute'), 'recommend' => array());
+
+$config->group->package->manageLLM = new stdclass();
+$config->group->package->manageLLM->edition = 'open,biz,max';
+$config->group->package->manageLLM->vision = 'rnd';
+$config->group->package->manageLLM->order = 2060;
+$config->group->package->manageLLM->subset = 'ai';
+$config->group->package->manageLLM->privs = array();
+$config->group->package->manageLLM->privs['ai-models'] = array('edition' => 'open,biz,max', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array());
+$config->group->package->manageLLM->privs['ai-editModel'] = array('edition' => 'open,biz,max', 'vision' => 'rnd', 'order' => 10, 'depend' => array('ai-models', 'ai-testConnection'), 'recommend' => array());
+$config->group->package->manageLLM->privs['ai-testConnection'] = array('edition' => 'open,biz,max', 'vision' => 'rnd', 'order' => 15, 'depend' => array('ai-editModel', 'ai-models'), 'recommend' => array());
+
+$config->group->package->browsePrompt = new stdclass();
+$config->group->package->browsePrompt->edition = 'open,biz,max';
+$config->group->package->browsePrompt->vision = 'rnd';
+$config->group->package->browsePrompt->order = 2080;
+$config->group->package->browsePrompt->subset = 'ai';
+$config->group->package->browsePrompt->privs = array();
+$config->group->package->browsePrompt->privs['ai-prompts'] = array('edition' => 'open,biz,max', 'vision' => 'rnd', 'order' => 75, 'depend' => array(), 'recommend' => array());
+$config->group->package->browsePrompt->privs['ai-promptView'] = array('edition' => 'open,biz,max', 'vision' => 'rnd', 'order' => 80, 'depend' => array('ai-prompts'), 'recommend' => array());
+
+$config->group->package->managePrompt = new stdclass();
+$config->group->package->managePrompt->edition = 'biz,max';
+$config->group->package->managePrompt->vision = 'rnd';
+$config->group->package->managePrompt->order = 2100;
+$config->group->package->managePrompt->subset = 'ai';
+$config->group->package->managePrompt->privs = array();
+$config->group->package->managePrompt->privs['ai-createPrompt'] = array('edition' => 'biz,max', 'vision' => 'rnd', 'order' => 20, 'depend' => array('ai-prompts', 'ai-promptView'), 'recommend' => array('ai-promptAssignRole', 'ai-promptAudit', 'ai-promptDelete', 'ai-promptEdit', 'ai-promptFinalize', 'ai-promptSelectDataSource', 'ai-promptSetPurpose', 'ai-promptSetTargetForm'));
+$config->group->package->managePrompt->privs['ai-promptEdit'] = array('edition' => 'biz,max', 'vision' => 'rnd', 'order' => 25, 'depend' => array('ai-createPrompt', 'ai-prompts', 'ai-promptView'), 'recommend' => array());
+$config->group->package->managePrompt->privs['ai-promptAssignRole'] = array('edition' => 'biz,max', 'vision' => 'rnd', 'order' => 35, 'depend' => array('ai-createPrompt', 'ai-promptAudit', 'ai-promptExecute', 'ai-promptFinalize', 'ai-prompts', 'ai-promptSelectDataSource', 'ai-promptSetPurpose', 'ai-promptSetTargetForm', 'ai-promptView', 'ai-roleTemplates'), 'recommend' => array());
+$config->group->package->managePrompt->privs['ai-promptSelectDataSource'] = array('edition' => 'biz,max', 'vision' => 'rnd', 'order' => 40, 'depend' => array('ai-createPrompt', 'ai-promptAssignRole', 'ai-promptAudit', 'ai-promptExecute', 'ai-promptFinalize', 'ai-prompts', 'ai-promptSetPurpose', 'ai-promptSetTargetForm', 'ai-promptView'), 'recommend' => array());
+$config->group->package->managePrompt->privs['ai-promptSetPurpose'] = array('edition' => 'biz,max', 'vision' => 'rnd', 'order' => 45, 'depend' => array('ai-createPrompt', 'ai-promptAssignRole', 'ai-promptAudit', 'ai-promptExecute', 'ai-promptFinalize', 'ai-prompts', 'ai-promptSelectDataSource', 'ai-promptSetTargetForm', 'ai-promptView'), 'recommend' => array());
+$config->group->package->managePrompt->privs['ai-promptSetTargetForm'] = array('edition' => 'biz,max', 'vision' => 'rnd', 'order' => 50, 'depend' => array('ai-createPrompt', 'ai-promptAssignRole', 'ai-promptAudit', 'ai-promptExecute', 'ai-promptFinalize', 'ai-prompts', 'ai-promptSelectDataSource', 'ai-promptSetPurpose', 'ai-promptView'), 'recommend' => array());
+$config->group->package->managePrompt->privs['ai-promptFinalize'] = array('edition' => 'biz,max', 'vision' => 'rnd', 'order' => 55, 'depend' => array('ai-createPrompt', 'ai-promptAssignRole', 'ai-promptAudit', 'ai-promptExecute', 'ai-prompts', 'ai-promptSelectDataSource', 'ai-promptSetPurpose', 'ai-promptSetTargetForm', 'ai-promptView'), 'recommend' => array());
+$config->group->package->managePrompt->privs['ai-promptAudit'] = array('edition' => 'biz,max', 'vision' => 'rnd', 'order' => 60, 'depend' => array('ai-createPrompt', 'ai-promptAssignRole', 'ai-promptExecute', 'ai-promptFinalize', 'ai-prompts', 'ai-promptSelectDataSource', 'ai-promptSetPurpose', 'ai-promptSetTargetForm', 'ai-promptView'), 'recommend' => array());
+$config->group->package->managePrompt->privs['ai-roleTemplates'] = array('edition' => 'biz,max', 'vision' => 'rnd', 'order' => 90, 'depend' => array('ai-promptAssignRole'), 'recommend' => array());
+
+$config->group->package->publishPrompt = new stdclass();
+$config->group->package->publishPrompt->edition = 'open,biz,max';
+$config->group->package->publishPrompt->vision = 'rnd';
+$config->group->package->publishPrompt->order = 2120;
+$config->group->package->publishPrompt->subset = 'ai';
+$config->group->package->publishPrompt->privs = array();
+$config->group->package->publishPrompt->privs['ai-promptPublish'] = array('edition' => 'open,biz,max', 'vision' => 'rnd', 'order' => 65, 'depend' => array('ai-prompts', 'ai-promptView'), 'recommend' => array());
+$config->group->package->publishPrompt->privs['ai-promptUnpublish'] = array('edition' => 'open,biz,max', 'vision' => 'rnd', 'order' => 70, 'depend' => array('ai-prompts', 'ai-promptView'), 'recommend' => array());
+
+$config->group->package->deletePrompt = new stdclass();
+$config->group->package->deletePrompt->edition = 'biz,max';
+$config->group->package->deletePrompt->vision = 'rnd';
+$config->group->package->deletePrompt->order = 2140;
+$config->group->package->deletePrompt->subset = 'ai';
+$config->group->package->deletePrompt->privs = array();
+$config->group->package->deletePrompt->privs['ai-promptDelete'] = array('edition' => 'biz,max', 'vision' => 'rnd', 'order' => 30, 'depend' => array('ai-prompts', 'ai-promptView'), 'recommend' => array());
+
+$config->group->package->dashboard = new stdclass();
+$config->group->package->dashboard->edition = 'open,biz,max,ipd';
+$config->group->package->dashboard->vision = 'rnd';
+$config->group->package->dashboard->order = 2160;
+$config->group->package->dashboard->subset = 'ops';
+$config->group->package->dashboard->privs = array();
+$config->group->package->dashboard->privs['system-dashboard'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->resource = new stdclass();
+$config->group->package->resource->edition = 'open,biz,max,ipd';
+$config->group->package->resource->vision = 'rnd';
+$config->group->package->resource->order = 2200;
+$config->group->package->resource->subset = 'ops';
+
+$config->group->package->manageServiceProvider = new stdclass();
+$config->group->package->manageServiceProvider->edition = 'open,biz,max,ipd';
+$config->group->package->manageServiceProvider->vision = 'rnd';
+$config->group->package->manageServiceProvider->order = 2300;
+$config->group->package->manageServiceProvider->subset = 'ops';
+$config->group->package->manageServiceProvider->privs = array();
+$config->group->package->manageServiceProvider->privs['ops-provide'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 20, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->manageCity = new stdclass();
+$config->group->package->manageCity->edition = 'open,biz,max,ipd';
+$config->group->package->manageCity->vision = 'rnd';
+$config->group->package->manageCity->order = 2320;
+$config->group->package->manageCity->subset = 'ops';
+$config->group->package->manageCity->privs = array();
+$config->group->package->manageCity->privs['ops-city'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 25, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->manageCPU = new stdclass();
+$config->group->package->manageCPU->edition = 'open,biz,max,ipd';
+$config->group->package->manageCPU->vision = 'rnd';
+$config->group->package->manageCPU->order = 2340;
+$config->group->package->manageCPU->subset = 'ops';
+$config->group->package->manageCPU->privs = array();
+$config->group->package->manageCPU->privs['ops-cpubrand'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 30, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->manageOS = new stdclass();
+$config->group->package->manageOS->edition = 'open,biz,max,ipd';
+$config->group->package->manageOS->vision = 'rnd';
+$config->group->package->manageOS->order = 2360;
+$config->group->package->manageOS->subset = 'ops';
+$config->group->package->manageOS->privs = array();
+$config->group->package->manageOS->privs['ops-os'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 35, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->browseRepo = new stdclass();
+$config->group->package->browseRepo->edition = 'open,biz,max,ipd';
+$config->group->package->browseRepo->vision = 'rnd';
+$config->group->package->browseRepo->order = 2420;
+$config->group->package->browseRepo->subset = 'repo';
+$config->group->package->browseRepo->privs = array();
+$config->group->package->browseRepo->privs['repo-maintain'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array(), 'recommend' => array('repo-browse', 'repo-create', 'repo-edit'));
+$config->group->package->browseRepo->privs['repo-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 30, 'depend' => array('repo-maintain'), 'recommend' => array('repo-create', 'repo-edit'));
+
+$config->group->package->manageRepo = new stdclass();
+$config->group->package->manageRepo->edition = 'open,biz,max,ipd';
+$config->group->package->manageRepo->vision = 'rnd';
+$config->group->package->manageRepo->order = 2440;
+$config->group->package->manageRepo->subset = 'repo';
+$config->group->package->manageRepo->privs = array();
+$config->group->package->manageRepo->privs['repo-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('repo-maintain'), 'recommend' => array('repo-edit', 'repo-import'));
+$config->group->package->manageRepo->privs['repo-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('repo-maintain'), 'recommend' => array('repo-create'));
+$config->group->package->manageRepo->privs['repo-apiGetRepoByUrl'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array('repo-maintain'), 'recommend' => array());
+$config->group->package->manageRepo->privs['repo-import'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 20, 'depend' => array('repo-maintain'), 'recommend' => array('repo-create'));
+
+$config->group->package->deleteRepo = new stdclass();
+$config->group->package->deleteRepo->edition = 'open,biz,max,ipd';
+$config->group->package->deleteRepo->vision = 'rnd';
+$config->group->package->deleteRepo->order = 2500;
+$config->group->package->deleteRepo->subset = 'repo';
+$config->group->package->deleteRepo->privs = array();
+$config->group->package->deleteRepo->privs['repo-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 25, 'depend' => array('repo-maintain'), 'recommend' => array('repo-create', 'repo-edit'));
+
+$config->group->package->browseCode = new stdclass();
+$config->group->package->browseCode->edition = 'open,biz,max,ipd';
+$config->group->package->browseCode->vision = 'rnd';
+$config->group->package->browseCode->order = 2540;
+$config->group->package->browseCode->subset = 'repocode';
+$config->group->package->browseCode->privs = array();
+$config->group->package->browseCode->privs['repo-showSyncCommit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 0, 'depend' => array(), 'recommend' => array('repo-blame', 'repo-linkBug', 'repo-linkStory', 'repo-linkTask', 'repo-log', 'repo-revision', 'repo-unlink', 'repo-view'));
+$config->group->package->browseCode->privs['repo-view'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array(), 'recommend' => array('repo-blame', 'repo-linkBug', 'repo-linkStory', 'repo-linkTask', 'repo-log', 'repo-revision', 'repo-showSyncCommit', 'repo-unlink'));
+$config->group->package->browseCode->privs['repo-log'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array('repo-blame', 'repo-linkBug', 'repo-linkStory', 'repo-linkTask', 'repo-revision', 'repo-showSyncCommit', 'repo-unlink', 'repo-view'));
+$config->group->package->browseCode->privs['repo-revision'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array(), 'recommend' => array('repo-blame', 'repo-linkBug', 'repo-linkStory', 'repo-linkTask', 'repo-log', 'repo-showSyncCommit', 'repo-unlink', 'repo-view'));
+
+$config->group->package->manageCode = new stdclass();
+$config->group->package->manageCode->edition = 'open,biz,max,ipd';
+$config->group->package->manageCode->vision = 'rnd';
+$config->group->package->manageCode->order = 2560;
+$config->group->package->manageCode->subset = 'repocode';
+$config->group->package->manageCode->privs = array();
+$config->group->package->manageCode->privs['repo-diff'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array(), 'recommend' => array('repo-addBug', 'repo-editBug', 'repo-review'));
+$config->group->package->manageCode->privs['repo-blame'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 20, 'depend' => array(), 'recommend' => array('repo-linkBug', 'repo-linkStory', 'repo-linkTask', 'repo-log', 'repo-revision', 'repo-showSyncCommit', 'repo-unlink', 'repo-view'));
+$config->group->package->manageCode->privs['repo-download'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array(), 'recommend' => array('repo-downloadCode'));
+$config->group->package->manageCode->privs['repo-downloadCode'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array('repo-download'));
+$config->group->package->manageCode->privs['repo-linkStory'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 25, 'depend' => array(), 'recommend' => array('repo-blame', 'repo-linkBug', 'repo-linkTask', 'repo-log', 'repo-revision', 'repo-showSyncCommit', 'repo-unlink', 'repo-view'));
+$config->group->package->manageCode->privs['repo-linkBug'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 30, 'depend' => array(), 'recommend' => array('repo-blame', 'repo-linkStory', 'repo-linkTask', 'repo-log', 'repo-revision', 'repo-showSyncCommit', 'repo-unlink', 'repo-view'));
+$config->group->package->manageCode->privs['repo-linkTask'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 35, 'depend' => array(), 'recommend' => array('repo-blame', 'repo-linkBug', 'repo-linkStory', 'repo-log', 'repo-revision', 'repo-showSyncCommit', 'repo-unlink', 'repo-view'));
+$config->group->package->manageCode->privs['repo-unlink'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 40, 'depend' => array(), 'recommend' => array('repo-blame', 'repo-linkBug', 'repo-linkStory', 'repo-linkTask', 'repo-log', 'repo-revision', 'repo-showSyncCommit', 'repo-view'));
+
+$config->group->package->manageCodeIssue = new stdclass();
+$config->group->package->manageCodeIssue->edition = 'biz,max,ipd';
+$config->group->package->manageCodeIssue->vision = 'rnd';
+$config->group->package->manageCodeIssue->order = 2620;
+$config->group->package->manageCodeIssue->subset = 'codereview';
+$config->group->package->manageCodeIssue->privs = array();
+$config->group->package->manageCodeIssue->privs['repo-addBug'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array('repo-diff'), 'recommend' => array('mr-addReview', 'repo-addComment', 'repo-editBug', 'repo-editComment', 'repo-review'));
+$config->group->package->manageCodeIssue->privs['repo-editBug'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array('repo-diff'), 'recommend' => array('repo-addBug', 'repo-addComment', 'repo-editComment', 'repo-review'));
+$config->group->package->manageCodeIssue->privs['repo-addComment'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 20, 'depend' => array('repo-diff'), 'recommend' => array('repo-addBug', 'repo-editBug', 'repo-editComment', 'repo-review'));
+$config->group->package->manageCodeIssue->privs['repo-editComment'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 25, 'depend' => array('repo-diff'), 'recommend' => array('repo-addBug', 'repo-addComment', 'repo-editBug', 'repo-review'));
+$config->group->package->manageCodeIssue->privs['repo-deleteComment'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 35, 'depend' => array('repo-diff'), 'recommend' => array('repo-addBug', 'repo-addComment', 'repo-editBug', 'repo-editComment', 'repo-review'));
+
+$config->group->package->deleteCodeIssue = new stdclass();
+$config->group->package->deleteCodeIssue->edition = 'biz,max,ipd';
+$config->group->package->deleteCodeIssue->vision = 'rnd';
+$config->group->package->deleteCodeIssue->order = 2640;
+$config->group->package->deleteCodeIssue->subset = 'codereview';
+$config->group->package->deleteCodeIssue->privs = array();
+$config->group->package->deleteCodeIssue->privs['repo-deleteBug'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 30, 'depend' => array('repo-diff'), 'recommend' => array('repo-addBug', 'repo-addComment', 'repo-editBug', 'repo-editComment', 'repo-review'));
+
+$config->group->package->deleteMR = new stdclass();
+$config->group->package->deleteMR->edition = 'open,biz,max,ipd';
+$config->group->package->deleteMR->vision = 'rnd';
+$config->group->package->deleteMR->order = 2680;
+$config->group->package->deleteMR->subset = 'mr';
+$config->group->package->deleteMR->privs = array();
+$config->group->package->deleteMR->privs['mr-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 4, 'depend' => array('mr-accept'), 'recommend' => array('mr-create', 'mr-edit'));
+
+$config->group->package->deleteJob = new stdclass();
+$config->group->package->deleteJob->edition = 'open,biz,max,ipd';
+$config->group->package->deleteJob->vision = 'rnd';
+$config->group->package->deleteJob->order = 2720;
+$config->group->package->deleteJob->subset = 'pipeline';
+
+$config->group->package->browseArtifactrepo = new stdclass();
+$config->group->package->browseArtifactrepo->edition = 'open,biz,max,ipd';
+$config->group->package->browseArtifactrepo->vision = 'rnd';
+$config->group->package->browseArtifactrepo->order = 2780;
+$config->group->package->browseArtifactrepo->subset = 'artifactrepo';
+$config->group->package->browseArtifactrepo->privs = array();
+$config->group->package->browseArtifactrepo->privs['artifactrepo-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array());
+$config->group->package->browseArtifactrepo->privs['artifactrepo-ajaxGetArtifactRepos'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->manageArtifactrepo = new stdclass();
+$config->group->package->manageArtifactrepo->edition = 'open,biz,max,ipd';
+$config->group->package->manageArtifactrepo->vision = 'rnd';
+$config->group->package->manageArtifactrepo->order = 2800;
+$config->group->package->manageArtifactrepo->subset = 'artifactrepo';
+$config->group->package->manageArtifactrepo->privs = array();
+$config->group->package->manageArtifactrepo->privs['artifactrepo-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array());
+$config->group->package->manageArtifactrepo->privs['artifactrepo-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array(), 'recommend' => array());
+$config->group->package->manageArtifactrepo->privs['artifactrepo-ajaxUpdateArtifactRepos'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->deleteArtifactrepo = new stdclass();
+$config->group->package->deleteArtifactrepo->edition = 'open,biz,max,ipd';
+$config->group->package->deleteArtifactrepo->vision = 'rnd';
+$config->group->package->deleteArtifactrepo->order = 2820;
+$config->group->package->deleteArtifactrepo->subset = 'artifactrepo';
+$config->group->package->deleteArtifactrepo->privs = array();
+$config->group->package->deleteArtifactrepo->privs['artifactrepo-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->application = new stdclass();
+$config->group->package->application->edition = 'open,biz,max,ipd';
+$config->group->package->application->vision = 'rnd';
+$config->group->package->application->order = 2840;
+$config->group->package->application->subset = 'app';
+$config->group->package->application->privs = array();
+$config->group->package->application->privs['space-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->application = new stdclass();
+$config->group->package->application->edition = 'open,biz,max,ipd';
+$config->group->package->application->vision = 'rnd';
+$config->group->package->application->order = 2860;
+$config->group->package->application->subset = 'app';
+$config->group->package->application->privs = array();
+$config->group->package->application->privs['instance-manage'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array(), 'recommend' => array());
+
+$config->group->package->trainPracticeLib = new stdclass();
+$config->group->package->trainPracticeLib->edition = 'open,biz,max,ipd';
+$config->group->package->trainPracticeLib->vision = 'rnd';
+$config->group->package->trainPracticeLib->order = 8;
+$config->group->package->trainPracticeLib->subset = 'traincourse';
+$config->group->package->trainPracticeLib->privs = array();
+$config->group->package->trainPracticeLib->privs['traincourse-practice'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array('traincourse-practiceBrowse', 'traincourse-practiceView'));
+$config->group->package->trainPracticeLib->privs['traincourse-practiceBrowse'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array('traincourse-practice'), 'recommend' => array('traincourse-practiceView'));
+$config->group->package->trainPracticeLib->privs['traincourse-practiceView'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array('traincourse-practice', 'traincourse-practiceBrowse'), 'recommend' => array());
+$config->group->package->trainPracticeLib->privs['traincourse-updatePractice'] = array('edition' => 'biz,max,ipd', 'vision' => 'rnd', 'order' => 20, 'depend' => array('traincourse-practice', 'traincourse-practiceBrowse'), 'recommend' => array('traincourse-practiceView'));
diff --git a/module/group/view/privbygroup.html.php b/module/group/view/privbygroup.html.php
index 37ae99bf65..4b24165aca 100644
--- a/module/group/view/privbygroup.html.php
+++ b/module/group/view/privbygroup.html.php
@@ -50,25 +50,25 @@