home *** CD-ROM | disk | FTP | other *** search
/ Clickx 75 / Clickx 75.iso / software / expressionweb / expressionwebv3 / ExpressionWeb_en.exe / Setup / WeConen.cab / xweb.ACTIONS.JMPMENU.JS.en < prev    next >
Encoding:
Text File  |  2009-06-09  |  25.8 KB  |  832 lines

  1. ∩╗┐var g_strOrigFrame    = null;
  2. var g_strOrigStatus = null;
  3.  
  4.  
  5. //////////////////////////////////////////////////////////
  6.  
  7. function getScript()
  8. {
  9.     return "FP_jumpMenu";
  10. }
  11.  
  12. //////////////////////////////////////////////////////////
  13.  
  14. function getScriptCall()
  15. {
  16.     var oSelection = theForm.FrameNames.options(theForm.FrameNames.selectedIndex);
  17.     var strFrame = oSelection.value;
  18.     var strFramePath = oSelection.strFramePath;
  19.     
  20.     if( oSelection.oFrame && !oSelection.oFrame.id && !oSelection.oFrame.name )
  21.         oSelection.oFrame.name = strFrame;
  22.         
  23.     var strStatus = String( theForm.FirstItem.status );
  24.     var strScriptCall =     "FP_jumpMenu(this," +
  25.                             "\'" + strFramePath + "\'," +
  26.                             strStatus + ")";
  27.                                                     
  28.     var oActiveDoc    = FrontPage.ActiveDocument;
  29.     var oSelect    = null;
  30.  
  31.     var rng        = oActiveDoc.selection.createRange();
  32.     var bNewMenu    = ( 0 == rng.compareEndPoints("StartToEnd", rng) ) ? true : false;        
  33.  
  34.     if( bNewMenu )
  35.     {        
  36.         oSelect = oActiveDoc.createElement( "select" );
  37.         
  38.         oSelect.size = 1;        
  39.         oSelect.setAttribute( "onchange", strScriptCall );                
  40.     }
  41.     else
  42.     {
  43.         oSelect = getBehaviorElement();                            
  44.     }
  45.     
  46.     var strID = oSelect.id ? oSelect.id : oSelect.name ? oSelect.name : '';
  47.     
  48.     // auto-ID
  49.     if( '' == strID )
  50.     {
  51.         strID = generateUniqueID( oActiveDoc );
  52.         
  53.         oSelect.id = strID;
  54.     }
  55.     
  56.     if( bNewMenu )
  57.     {
  58.         rng.pasteHTML( oSelect.outerHTML );    
  59.         
  60.         oSelect = oActiveDoc.all[oSelect.id];    
  61.     }    
  62.  
  63.     while( 0 < oSelect.length ) 
  64.         oSelect.remove( 0 );     
  65.  
  66.     var oListItems = theForm.lvOptions.ListItems;
  67.     
  68.     for( var i = 1; i<= oListItems.Count; i++ )
  69.     {
  70.         var oListItem = oListItems( i );
  71.         strURL = getPropValue( oListItem );
  72.         
  73.         if( strURL.length > 0 )
  74.         {
  75.             strURL = FrontPage.MakeRel( oActiveDoc, strURL );
  76.         }
  77.         
  78.         var oOption = oActiveDoc.createElement( "OPTION" );
  79.             
  80.         oOption.value = strURL;        
  81.  
  82.         oSelect.add( oOption );                
  83.         
  84.         oOption.text = getPropName( oListItem );
  85.     }    
  86.  
  87.     if( bNewMenu ) 
  88.     {
  89.  
  90.         rng.moveToElementText( oSelect );
  91.         rng.select();
  92.  
  93.         return "";
  94.     }
  95.     else
  96.     {    
  97.         // sync any Jump Menu Go's...
  98.         var strOldJumpMenuGo = 'FP_jumpMenuGo(' + 
  99.                             FP_ADJECTIVE_ID + "'" + strID + "'," + 
  100.                             "'" + g_strOrigFrame + "'," + 
  101.                             g_strOrigStatus + ")";
  102.         var strNewJumpMenuGo = 'FP_jumpMenuGo(' + 
  103.                             FP_ADJECTIVE_ID + "'" + strID + "'," + 
  104.                             "'" + strFramePath + "'," + 
  105.                             strStatus + ")";
  106.                             
  107.         // save selected element index
  108.         
  109.         var nSourceIndex = getBehaviorElement().sourceIndex;            
  110.                             
  111.         strOldJumpMenuGo = escapeRegExpExpString( strOldJumpMenuGo );            
  112.  
  113.         var re = new RegExp( strOldJumpMenuGo, "g" );            
  114.  
  115.         var strNewHTML = oActiveDoc.documentHTML.replace( re, strNewJumpMenuGo );
  116.  
  117.         oActiveDoc.documentHTML = strNewHTML;    
  118.         
  119.         rng = oActiveDoc.body.createTextRange();    
  120.  
  121.         var oNewSelect = oActiveDoc.all( nSourceIndex );
  122.  
  123.         if (oNewSelect.tagName == 'option')
  124.             oNewSelect = oNewSelect.parentElement;
  125.         
  126.         rng.moveToElementText(oNewSelect);
  127.  
  128.         rng.select();
  129.     }
  130.         
  131.     return strScriptCall;    
  132. }
  133.  
  134. //////////////////////////////////////////////////////////
  135.  
  136. function isScriptEnabled( oDoc )
  137. {
  138.     var rng = oDoc.selection.createRange();
  139.     if (rng.compareEndPoints("StartToEnd", rng) == 0)
  140.         return "onchange";
  141.     
  142.     var el = getBehaviorElement( oDoc );
  143.     if (el.tagName == "select")
  144.         return "onchange";
  145.  
  146.     return false;
  147. }
  148.  
  149. //////////////////////////////////////////////////////////
  150.  
  151. function initPropertyDialog( strScriptCall )
  152. {
  153.     var aArguments = extractArgumentsFromScriptCall( strScriptCall );
  154.     nArgs= aArguments.length;
  155.     if (nArgs != 0)
  156.     {
  157.         var sFrame = aArguments[1].strArgument;
  158.         sFrame=trimQuotes(sFrame);
  159.         for(i=0; i<theForm.FrameNames.options.length; i++)
  160.         {
  161.             if (sFrame == theForm.FrameNames.options(i).strFramePath)
  162.                 theForm.FrameNames.children(i).selected=true;
  163.             else
  164.                 theForm.FrameNames.children(i).selected=false;
  165.         }
  166.         if (aArguments[2].strArgument=='true')
  167.             theForm.FirstItem.status = true;
  168.         else
  169.             theForm.FirstItem.status = false;
  170.     }
  171.     
  172.     // save original parameters for JMG syncronization
  173.     g_strOrigFrame    = trimQuotes( aArguments[1].strArgument );
  174.     g_strOrigStatus = trimQuotes( aArguments[2].strArgument );
  175. }
  176.  
  177. //////////////////////////////////////////////////////////
  178.  
  179. function Validate()
  180. {
  181.     if (theForm.lvOptions.ListItems.Count > 0)
  182.     {
  183.         window.returnValue = RETURN_OK;
  184.         window.close();
  185.     }
  186.     else
  187.         alert(L_NOOptions_ErrorMessage);
  188.  
  189. }
  190.  
  191. //////////////////////////////////////////////////////////
  192.  
  193. function CancelAction()
  194. {
  195.     window.returnValue = RETURN_CANCEL;    
  196.     window.close();
  197. }
  198.  
  199. //////////////////////////////////////////////////////////
  200.  
  201. function initOptions()
  202. {    
  203.     var el = getBehaviorElement();
  204.     
  205.     if( "select" == el.tagName )
  206.     {
  207.         for(var i=0; i<el.options.length; i++)
  208.         {    
  209.             child = el.options(i);
  210.             insertOption(child.text, child.value, theForm.lvOptions.ListItems.Count + 1);
  211.         }
  212.     }
  213. }
  214.  
  215. //////////////////////////////////////////////////////////
  216.  
  217. function initializeForm()
  218. {        
  219.     window.onresize = onResize;
  220.     var oColumnHeaders = theForm.lvOptions.ColumnHeaders;
  221.         
  222.     oColumnHeaders.Clear();
  223.     
  224.     var colHeader0 = oColumnHeaders.Add(
  225.                         oColumnHeaders.Count + 1,
  226.                         "", 
  227.                         "",
  228.                         0 );                    
  229.  
  230.     var colHeader1 = oColumnHeaders.Add(
  231.                         oColumnHeaders.Count + 1,
  232.                         L_COLUMN1_TXT, 
  233.                         L_COLUMN1_TXT,
  234.                         theForm.lvOptions.clientWidth / 2 );
  235.                                 
  236.     var colHeader2 = oColumnHeaders.Add(
  237.                         oColumnHeaders.Count + 1,
  238.                         L_COLUMN2_TXT, 
  239.                         L_COLUMN2_TXT,
  240.                         theForm.lvOptions.clientWidth / 2-5 );
  241.                         
  242.     theForm.lvOptions.Font.Name        = g_fontName;
  243.     theForm.lvOptions.Font.Charset    = g_fontCharSet;
  244.     
  245.     if( document.dir == "rtl" )
  246.     {
  247.         colHeader1.Alignment = 1;    // lvwColumnRight
  248.         colHeader2.Alignment = 1;    // lvwColumnRight
  249.     }    
  250.                         
  251.     initFrameNames();
  252.     initOptions();
  253.  
  254.     theForm.FirstItem.status = false;
  255.  
  256.     if (theForm.lvOptions.ListItems.Count == 0)
  257.         disableButtons();
  258.     safeFocus(theForm.btnAdd);
  259. }
  260.  
  261. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  262.  
  263. function onResize()
  264. {
  265.     resizeColumnHeaders();
  266. }
  267.  
  268. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  269.  
  270. function resizeColumnHeaders()
  271. {
  272.     var nColumn1Width = theForm.lvOptions.clientWidth / 2;
  273.     var nColumn2Width = theForm.lvOptions.clientWidth - nColumn1Width - 5;
  274.     
  275.     nColumn2Width = 0 < nColumn2Width ? nColumn2Width : 0;
  276.     
  277.     theForm.lvOptions.ColumnHeaders.Item( 2 ).Width    = nColumn1Width;
  278.     theForm.lvOptions.ColumnHeaders.Item( 3 ).Width    = nColumn2Width;
  279. }
  280.  
  281. //////////////////////////////////////////////////////////
  282.  
  283. function initFrameNames()
  284. {
  285.     var oOption;
  286.     for (i=0; i < theForm.FrameNames.options.length; i++)
  287.     {
  288.         theForm.FrameNames.options.remove(0);
  289.     }
  290.     oOption=document.createElement("option");
  291.     oOption.text = L_PageOption_ListBox;
  292.     oOption.value = 'none';
  293.     oOption.strFramePath = "window";
  294.     theForm.FrameNames.options.add(oOption);
  295.     oOption=document.createElement("option");
  296.     oOption.text = L_NewWindow_ListBox;
  297.     oOption.value = 'new';
  298.     oOption.strFramePath = "_new";
  299.     theForm.FrameNames.options.add(oOption);
  300.  
  301.     var oDoc=FrontPage.ActiveDocument;
  302.     var oParentFrames = oDoc.parentWindow.parent != oDoc.parentWindow ? oDoc.parentWindow.parent.frames : null;
  303.     
  304.     var nNoName = 0;
  305.     
  306.     if( oParentFrames )
  307.     {
  308.         if(oParentFrames.length > 0 )
  309.         {
  310.             oOption = document.createElement("option");
  311.             oOption.text = L_SameFrame_ListBox;
  312.             oOption.value = 'same';
  313.             oOption.strFramePath = "window";
  314.             theForm.FrameNames.options.add(oOption);        
  315.             
  316.             oOption = document.createElement("option");
  317.             oOption.text = L_WholePage_ListBox;
  318.             oOption.value = 'whole';
  319.             
  320.             // calculate path to top-most window frame
  321.             var strTopWindowPath = "parent";            
  322.             
  323.             for( 
  324.                 var oParent = oDoc.parentWindow.parent;
  325.                 oParent != oParent.parent;
  326.                 oParent = oParent.parent )
  327.             {
  328.                 strTopWindowPath += ".parent";                
  329.             }
  330.             
  331.             oOption.strFramePath = strTopWindowPath;
  332.             theForm.FrameNames.options.add(oOption);
  333.             
  334.             oOption = document.createElement("option");
  335.             oOption.text = L_ParentFrame_ListBox;
  336.             oOption.value = 'parent';
  337.             oOption.strFramePath = "parent"
  338.             theForm.FrameNames.options.add(oOption);
  339.         }
  340.                 
  341.         for (i=0; i < oParentFrames.length; i++)
  342.         {
  343.             var oFrame=oParentFrames(i);
  344.  
  345.             var sName = oFrame.id ? oFrame.id : oFrame.name;        
  346.             var sValue = sName;
  347.                     
  348.             if ( sName == "" )
  349.             {
  350.                 sName = L_Unnamed_ListBox + nNoName;
  351.                 nNoName++;    
  352.                 
  353.                 sValue = generateUniqueID( oFrame.parent.Document );
  354.             }
  355.             oOption = document.createElement("option");
  356.             oOption.text = L_Frame_ListBox + " \"" + sName + "\"";
  357.             oOption.value = sValue;
  358.             oOption.oFrame = oFrame;
  359.             oOption.strFramePath = "parent.frames[\\'" + sValue + "\\']";
  360.             theForm.FrameNames.options.add(oOption);
  361.         }
  362.     }
  363.         
  364.     for (i=0; i < oDoc.frames.length; i++)
  365.     {
  366.         var oFrame = oDoc.frames(i);
  367.         var sName = oFrame.id ? oFrame.id : oFrame.name;
  368.  
  369.         sValue = sName;
  370.         
  371.         if (sName == "")
  372.         {
  373.             sName = L_Unnamed_ListBox + nNoName;
  374.             nNoName++;
  375.             
  376.             sValue = generateUniqueID( oFrame.parent.Document );
  377.         }
  378.         oOption = document.createElement("option");
  379.         oOption.text = L_Frame_ListBox + " \"" + sName + "\"";
  380.         oOption.value = sValue;
  381.         oOption.oFrame = oFrame;
  382.         oOption.strFramePath = "frames[\\'" + sValue + "\\']";
  383.         theForm.FrameNames.options.add(oOption);
  384.     }
  385.  
  386.     if(theForm.FrameNames.options(0) != null)
  387.         theForm.FrameNames.options(0).selected=true;
  388. }
  389. //////////////////////////////////////////////////////////
  390.  
  391. function invokeInsertDialog(sType)
  392. {            
  393.     var aDialogArguments = new Array();
  394.     aDialogArguments[0] = sType;
  395.     if (sType == "edit")
  396.     {
  397.         var oSelected = theForm.lvOptions.SelectedItem;
  398.  
  399.         if( oSelected )
  400.         {
  401.             aDialogArguments[1] = getPropName( oSelected );
  402.             aDialogArguments[2] = getPropValue( oSelected );
  403.         }
  404.         else
  405.             return;
  406.     }
  407.     
  408.     var astrReturn = FrontPage.ShowHTMLDialog( "InsertOp.htm", aDialogArguments );        
  409.     if( astrReturn )
  410.     {
  411.         switch(sType)
  412.         {
  413.             case "insert":
  414.             {
  415.                 var sName        = String( astrReturn[0] );
  416.                 var strValue    = String( astrReturn[1] );
  417.         
  418.                 if( 0 < sName.length )
  419.                 {                
  420.                     var oSelected = theForm.lvOptions.SelectedItem;
  421.                         
  422.                     nIndex = oSelected ? oSelected.Index + 1 : theForm.lvOptions.ListItems.Count + 1;
  423.                     insertOption( sName, strValue, nIndex );
  424.                 }
  425.                 break;
  426.             }
  427.             case "edit":
  428.             {
  429.                 var strName        = String( astrReturn[0] );    
  430.                 var strValue    = String( astrReturn[1] );
  431.                     
  432.                 if( 0 < strName.length )
  433.                 {
  434.                     nIndex = theForm.lvOptions.SelectedItem.index;            
  435.                     deleteOption();
  436.                     insertOption( strName, strValue, nIndex );
  437.                 }
  438.                 break;
  439.             }
  440.         }
  441.     }
  442. }
  443.  
  444. //////////////////////////////////////////////////////////
  445.  
  446. function insertOption( sName, strValue, nIndex )
  447. {    
  448.     var oOption    = null;
  449.     var oOptions = theForm.lvOptions.ListItems;
  450. //    oOption = oOptions.Add(nIndex, '', sName);
  451. //    oOption.SubItems( 1 ) = strValue;
  452.  
  453.     oOption = oOptions.Add(nIndex, '', '');
  454.     
  455.     oOption.Tag = new Object();
  456.     
  457.     oOption.Tag.strName = "";
  458.     oOption.Tag.strValue = "";
  459.     
  460.     setPropName( oOption,  sName );
  461.     setPropValue( oOption, strValue );
  462.  
  463.     theForm.lvOptions.SelectedItem = oOption;
  464.     if (theForm.lvOptions.ListItems.Count > 0)
  465.         enableButtons();
  466.         
  467.     updateUpDownControls();
  468. }
  469.  
  470. //////////////////////////////////////////////////////////
  471.  
  472. function deleteOption()
  473. {
  474.     var oSelected = theForm.lvOptions.SelectedItem;
  475.     
  476.     if( oSelected )
  477.     {
  478.         var nIndex = oSelected.Index;
  479.         theForm.lvOptions.ListItems.Remove(nIndex);
  480.         if(theForm.lvOptions.ListItems.Count > 0)
  481.         {
  482.             if(nIndex <= theForm.lvOptions.ListItems.Count)
  483.                 theForm.lvOptions.SelectedItem = theForm.lvOptions.ListItems(nIndex);
  484.             else
  485.                 theForm.lvOptions.SelectedItem = theForm.lvOptions.ListItems(nIndex-1);
  486.         }
  487.     }
  488.     if (theForm.lvOptions.ListItems.Count == 0)
  489.         disableButtons();
  490.         
  491.     updateUpDownControls();
  492. }
  493.  
  494. //////////////////////////////////////////////////////////
  495.  
  496. function moveOptionUp()
  497. {
  498.     var oSelected = theForm.lvOptions.SelectedItem;
  499.     
  500.     if( oSelected )
  501.     {
  502.         var nIndex = oSelected.index;
  503.  
  504.         var sName = getPropName( oSelected );
  505.         var sValue = getPropValue( oSelected );
  506.  
  507.         if (nIndex > 1)
  508.         {
  509.             deleteOption();
  510.             insertOption(sName, sValue, nIndex-1);
  511.         }
  512.     }
  513.     
  514.     updateUpDownControls();
  515. }
  516.  
  517. //////////////////////////////////////////////////////////
  518.  
  519. function moveOptionDown()
  520. {
  521.     var oSelected = theForm.lvOptions.SelectedItem;
  522.     
  523.     if( oSelected )
  524.     {
  525.         var nIndex = oSelected.index;
  526.  
  527.         var sName = getPropName( oSelected );
  528.         var sValue = getPropValue( oSelected );
  529.  
  530.         if (nIndex < theForm.lvOptions.ListItems.Count)
  531.         {
  532.             deleteOption();
  533.             insertOption(sName, sValue, nIndex+1);
  534.         }
  535.     }
  536.     
  537.     updateUpDownControls();
  538. }
  539.  
  540. //////////////////////////////////////////////////////////
  541.  
  542. function enableButtons()
  543. {
  544.     theForm.Modify.disabled=false;
  545.     theForm.Remove.disabled=false;
  546.     theForm.MoveUp.disabled=false;
  547.     theForm.MoveDown.disabled=false;
  548. }
  549.  
  550. function disableButtons()
  551. {
  552.     theForm.Modify.disabled=true;
  553.     theForm.Remove.disabled=true;
  554.     theForm.MoveUp.disabled=true;
  555.     theForm.MoveDown.disabled=true;
  556. }
  557.  
  558. //////////////////////////////////////////////////////////
  559.  
  560. function updateUpDownControls()
  561. {
  562.     var oSelected = theForm.lvOptions.SelectedItem;
  563.     
  564.     if( oSelected )
  565.     {
  566.         var nIndex = oSelected.index;
  567.         
  568.         if( 1 < nIndex )
  569.             theForm.MoveUp.disabled = false;
  570.         else
  571.             theForm.MoveUp.disabled = true;
  572.         
  573.         if( theForm.lvOptions.ListItems.Count > nIndex )
  574.             theForm.MoveDown.disabled = false;
  575.         else
  576.             theForm.MoveDown.disabled = true;
  577.     }
  578.     else
  579.     {
  580.         theForm.MoveUp.disabled = true;
  581.         theForm.MoveDown.disabled = true;
  582.     }
  583. }
  584.  
  585. //////////////////////////////////////////////////////////
  586.  
  587. function selectionChanged()
  588. {
  589.     updateUpDownControls();
  590. }
  591.  
  592. //////////////////////////////////////////////////////////
  593.  
  594. function getPropName( oItem )
  595. {
  596.     return oItem.Tag.strName;
  597. }
  598.  
  599. //////////////////////////////////////////////////////////
  600.  
  601. function getPropValue( oItem )
  602. {
  603.     return oItem.Tag.strValue;
  604. }
  605.  
  606. //////////////////////////////////////////////////////////
  607.  
  608. function setPropName( oItem, strName )
  609. {
  610.     oItem.SubItems( 1 ) = strName;
  611.     oItem.Tag.strName = strName;
  612. }
  613.  
  614. //////////////////////////////////////////////////////////
  615.  
  616. function setPropValue( oItem, strValue )
  617. {
  618.     oItem.SubItems( 2 ) = strValue;
  619.     oItem.Tag.strValue = strValue;
  620. }
  621.  
  622. // SIG // Begin signature block
  623. // SIG // MIIasgYJKoZIhvcNAQcCoIIaozCCGp8CAQExCzAJBgUr
  624. // SIG // DgMCGgUAMGcGCisGAQQBgjcCAQSgWTBXMDIGCisGAQQB
  625. // SIG // gjcCAR4wJAIBAQQQEODJBs441BGiowAQS9NQkAIBAAIB
  626. // SIG // AAIBAAIBAAIBADAhMAkGBSsOAwIaBQAEFL/qlH2bZcIu
  627. // SIG // AKq1OYHY7mswYxixoIIVkzCCA8QwggMtoAMCAQICEEe/
  628. // SIG // GZXfjVJGQ/fbbUgNMaQwDQYJKoZIhvcNAQEFBQAwgYsx
  629. // SIG // CzAJBgNVBAYTAlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENh
  630. // SIG // cGUxFDASBgNVBAcTC0R1cmJhbnZpbGxlMQ8wDQYDVQQK
  631. // SIG // EwZUaGF3dGUxHTAbBgNVBAsTFFRoYXd0ZSBDZXJ0aWZp
  632. // SIG // Y2F0aW9uMR8wHQYDVQQDExZUaGF3dGUgVGltZXN0YW1w
  633. // SIG // aW5nIENBMB4XDTAzMTIwNDAwMDAwMFoXDTEzMTIwMzIz
  634. // SIG // NTk1OVowUzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZl
  635. // SIG // cmlTaWduLCBJbmMuMSswKQYDVQQDEyJWZXJpU2lnbiBU
  636. // SIG // aW1lIFN0YW1waW5nIFNlcnZpY2VzIENBMIIBIjANBgkq
  637. // SIG // hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqcqypMzNIK8K
  638. // SIG // fYmsh3XwtE7x38EPv2dhvaNkHNq7+cozq4QwiVh+jNtr
  639. // SIG // 3TaeD7/R7Hjyd6Z+bzy/k68Numj0bJTKvVItq0g99bbV
  640. // SIG // XV8bAp/6L2sepPejmqYayALhf0xS4w5g7EAcfrkN3j/H
  641. // SIG // tN+HvV96ajEuA5mBE6hHIM4xcw1XLc14NDOVEpkSud5o
  642. // SIG // L6rm48KKjCrDiyGHZr2DWFdvdb88qiaHXcoQFTyfhOpU
  643. // SIG // wQpuxP7FSt25BxGXInzbPifRHnjsnzHJ8eYiGdvEs0dD
  644. // SIG // mhpfoB6Q5F717nzxfatiAY/1TQve0CJWqJXNroh2ru66
  645. // SIG // DfPkTdmg+2igrhQ7s4fBuwIDAQABo4HbMIHYMDQGCCsG
  646. // SIG // AQUFBwEBBCgwJjAkBggrBgEFBQcwAYYYaHR0cDovL29j
  647. // SIG // c3AudmVyaXNpZ24uY29tMBIGA1UdEwEB/wQIMAYBAf8C
  648. // SIG // AQAwQQYDVR0fBDowODA2oDSgMoYwaHR0cDovL2NybC52
  649. // SIG // ZXJpc2lnbi5jb20vVGhhd3RlVGltZXN0YW1waW5nQ0Eu
  650. // SIG // Y3JsMBMGA1UdJQQMMAoGCCsGAQUFBwMIMA4GA1UdDwEB
  651. // SIG // /wQEAwIBBjAkBgNVHREEHTAbpBkwFzEVMBMGA1UEAxMM
  652. // SIG // VFNBMjA0OC0xLTUzMA0GCSqGSIb3DQEBBQUAA4GBAEpr
  653. // SIG // +epYwkQcMYl5mSuWv4KsAdYcTM2wilhu3wgpo17IypMT
  654. // SIG // 5wRSDe9HJy8AOLDkyZNOmtQiYhX3PzchT3AxgPGLOIez
  655. // SIG // 6OiXAP7PVZZOJNKpJ056rrdhQfMqzufJ2V7duyuFPrWd
  656. // SIG // tdnhV/++tMV+9c8MnvCX/ivTO1IbGzgn9z9KMIID/zCC
  657. // SIG // AuegAwIBAgIQDekr8NTYKYgYMgUJXpp2iDANBgkqhkiG
  658. // SIG // 9w0BAQUFADBTMQswCQYDVQQGEwJVUzEXMBUGA1UEChMO
  659. // SIG // VmVyaVNpZ24sIEluYy4xKzApBgNVBAMTIlZlcmlTaWdu
  660. // SIG // IFRpbWUgU3RhbXBpbmcgU2VydmljZXMgQ0EwHhcNMDMx
  661. // SIG // MjA0MDAwMDAwWhcNMDgxMjAzMjM1OTU5WjBXMQswCQYD
  662. // SIG // VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4x
  663. // SIG // LzAtBgNVBAMTJlZlcmlTaWduIFRpbWUgU3RhbXBpbmcg
  664. // SIG // U2VydmljZXMgU2lnbmVyMIIBIjANBgkqhkiG9w0BAQEF
  665. // SIG // AAOCAQ8AMIIBCgKCAQEAslAoSN3TaHqEGERmdV1+xLif
  666. // SIG // Yyb/PUOcfBE4ECVVc9l1J2n9TrkgXNMK+aAbKu1VViFh
  667. // SIG // 2B7b5Lwza8fv3aM3ZY4bkwy2Ux5cfGY1XwWKRf52Tt9T
  668. // SIG // gKKBIJ2uiFyiCPflMPnuIjdMQgrO38YfxNZV6YE/tVKj
  669. // SIG // LKoBevKiqo01/p/mXWoFnz1r47+WwP7MYPlA5wegROuB
  670. // SIG // UW6lKvK2ihAo7Y/cBqCGUJp7SggNMB3KEJ5r9+lYrgSp
  671. // SIG // QJmyKOiPFqw841NvS9M1nbVvZB2zliy7Ped56216+Rbm
  672. // SIG // Jq2v75lTt0Aslbh5qv7UUqspdH5C7DkeomoW5lm7JGjY
  673. // SIG // AIBDEIeAawIDAQABo4HKMIHHMDQGCCsGAQUFBwEBBCgw
  674. // SIG // JjAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AudmVyaXNp
  675. // SIG // Z24uY29tMAwGA1UdEwEB/wQCMAAwMwYDVR0fBCwwKjAo
  676. // SIG // oCagJIYiaHR0cDovL2NybC52ZXJpc2lnbi5jb20vdHNz
  677. // SIG // LWNhLmNybDAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDAO
  678. // SIG // BgNVHQ8BAf8EBAMCBsAwJAYDVR0RBB0wG6QZMBcxFTAT
  679. // SIG // BgNVBAMTDFRTQTIwNDgtMS01NDANBgkqhkiG9w0BAQUF
  680. // SIG // AAOCAQEAh3hw2k5SASBb4HnJgjDE/bkZlr2RAMO9zc3G
  681. // SIG // 9A7Y//lNwDNiMBHF9XQb1JLeX5wgE7F8Rb5QzYPngBeD
  682. // SIG // pyeTZxNG+8q4mEEDzJtRWwWLf6hv8xtQGyQu8mmNbCL3
  683. // SIG // u8oWle0MdMBod9nrmWKHwXOQ+Il0eiOro5h7l7H3jylx
  684. // SIG // TS51G0hB2vC1DSBU1negl4Jjaf0Jz4rwdbsJm9n5EVUm
  685. // SIG // mmEyvnoCsHuGvqLDiyIseNE1drySc1z5ueZMFQojzOTS
  686. // SIG // 1DQuSUAVPA9geiTGpWbvls9w6z7n9A1+3NF8o3ZxacGc
  687. // SIG // T0cwNSGxoq8aYjwr2Y6qKgd72BizXHvinaVv/jyJrTCC
  688. // SIG // BBIwggL6oAMCAQICDwDBAIs8PIgR0T72Y+zfQDANBgkq
  689. // SIG // hkiG9w0BAQQFADBwMSswKQYDVQQLEyJDb3B5cmlnaHQg
  690. // SIG // KGMpIDE5OTcgTWljcm9zb2Z0IENvcnAuMR4wHAYDVQQL
  691. // SIG // ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xITAfBgNVBAMT
  692. // SIG // GE1pY3Jvc29mdCBSb290IEF1dGhvcml0eTAeFw05NzAx
  693. // SIG // MTAwNzAwMDBaFw0yMDEyMzEwNzAwMDBaMHAxKzApBgNV
  694. // SIG // BAsTIkNvcHlyaWdodCAoYykgMTk5NyBNaWNyb3NvZnQg
  695. // SIG // Q29ycC4xHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3Jh
  696. // SIG // dGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFJvb3QgQXV0
  697. // SIG // aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
  698. // SIG // CgKCAQEAqQK9wXDmO/JOGyifl3heMOqiqY0lX/j+lUyj
  699. // SIG // t/6doiA+fFGim6KPYDJr0UJkee6sdslU2vLrnIYcj5+E
  700. // SIG // ZrPFa3piI9YdPN4PAZLolsS/LWaammgmmdA6LL8MtVgm
  701. // SIG // wUbnCj44liypKDmo7EmDQuOED7uabFVhrIJ8oWAtd0zp
  702. // SIG // mbRkO5pQHDEIJBSfqeeRKxjmPZhjFGBYBWWfHTdSh/en
  703. // SIG // 75QCxhvTv1VFs4mAvzrsVJROrv2nem10Tq8YzJYJKCEA
  704. // SIG // V5BgaTe7SxIHPFb/W/ukZgoIptKBVlfvtjteFoF3BNr2
  705. // SIG // vq6Alf6wzX/WpxpyXDzKvPAIoyIwswaFybMgdxOF3wID
  706. // SIG // AQABo4GoMIGlMIGiBgNVHQEEgZowgZeAEFvQcO9pcp4j
  707. // SIG // UX4Usk2O/8uhcjBwMSswKQYDVQQLEyJDb3B5cmlnaHQg
  708. // SIG // KGMpIDE5OTcgTWljcm9zb2Z0IENvcnAuMR4wHAYDVQQL
  709. // SIG // ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xITAfBgNVBAMT
  710. // SIG // GE1pY3Jvc29mdCBSb290IEF1dGhvcml0eYIPAMEAizw8
  711. // SIG // iBHRPvZj7N9AMA0GCSqGSIb3DQEBBAUAA4IBAQCV6AvA
  712. // SIG // jfOXGDXtuAEk2HcR81xgMp+eC8s+BZGIj8k65iHy8FeT
  713. // SIG // LLWgR8hi7/zXzDs7Wqk2VGn+JG0/ycyq3gV83TGNPZ8Q
  714. // SIG // cGq7/hJPGGnA/NBD4xFaIE/qYnuvqhnIKzclLb5loRKK
  715. // SIG // JQ9jo/dUHPkhydYV81KsbkMyB/2CF/jlZ2wNUfa98VLH
  716. // SIG // vefEMPwgMQmIHZUpGk3VHQKl8YDgA7Rb9LHdyFfuZUnH
  717. // SIG // UlS2tAMoEv+Q1vAIj364l8WrNyzkeuSod+N2oADQaj/B
  718. // SIG // 0jaK4EESqDVqG2rbNeHUHATkqEUEyFozOG5NHA1itwqi
  719. // SIG // jNPVVD9GzRxVpnDbEjqHk3Wfp9KgMIIEyTCCA7GgAwIB
  720. // SIG // AgIQaguZT8AA3qoR1NhAmqi+5jANBgkqhkiG9w0BAQQF
  721. // SIG // ADBwMSswKQYDVQQLEyJDb3B5cmlnaHQgKGMpIDE5OTcg
  722. // SIG // TWljcm9zb2Z0IENvcnAuMR4wHAYDVQQLExVNaWNyb3Nv
  723. // SIG // ZnQgQ29ycG9yYXRpb24xITAfBgNVBAMTGE1pY3Jvc29m
  724. // SIG // dCBSb290IEF1dGhvcml0eTAeFw0wMDEyMTAwODAwMDBa
  725. // SIG // Fw0wNTExMTIwODAwMDBaMIGmMQswCQYDVQQGEwJVUzET
  726. // SIG // MBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk
  727. // SIG // bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0
  728. // SIG // aW9uMSswKQYDVQQLEyJDb3B5cmlnaHQgKGMpIDIwMDAg
  729. // SIG // TWljcm9zb2Z0IENvcnAuMSMwIQYDVQQDExpNaWNyb3Nv
  730. // SIG // ZnQgQ29kZSBTaWduaW5nIFBDQTCCASAwDQYJKoZIhvcN
  731. // SIG // AQEBBQADggENADCCAQgCggEBAKKEFVPYCzAONJX/OhvC
  732. // SIG // 8y97bTcjTfPSjOX9r/3FAjQfJMflodxU7H4CdEer2zJY
  733. // SIG // FhRRKTjxfrK0jDpHtTlOblTCMQw6bfvNzctQnBuup9jZ
  734. // SIG // SiY/tcXLj5biSfJt2OmWPt4Fz/CmVTetL2DNgGFCoUlU
  735. // SIG // Sg8Yt0vZk5kwWkd1ZLTTu922qwydT7hzOxg6qrSHjLCI
  736. // SIG // sE1PH04RtTOA3w06ZG9ExzS9SpObvKYd+QUjTmApj8wq
  737. // SIG // 8oSama2o2wpwe9Y0QZClt2bHXBsdozMOm1QDGj+YkLjM
  738. // SIG // 5z0EdEMcj/c55rOsSHprKg5iAWE5dm79PpgHSxTxAUb9
  739. // SIG // FQDgR9pP5AXkgCUCAQOjggEoMIIBJDATBgNVHSUEDDAK
  740. // SIG // BggrBgEFBQcDAzCBogYDVR0BBIGaMIGXgBBb0HDvaXKe
  741. // SIG // I1F+FLJNjv/LoXIwcDErMCkGA1UECxMiQ29weXJpZ2h0
  742. // SIG // IChjKSAxOTk3IE1pY3Jvc29mdCBDb3JwLjEeMBwGA1UE
  743. // SIG // CxMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQD
  744. // SIG // ExhNaWNyb3NvZnQgUm9vdCBBdXRob3JpdHmCDwDBAIs8
  745. // SIG // PIgR0T72Y+zfQDAQBgkrBgEEAYI3FQEEAwIBADAdBgNV
  746. // SIG // HQ4EFgQUKVy5G7bNM+67nll99+XKLsQNNCgwGQYJKwYB
  747. // SIG // BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgFG
  748. // SIG // MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQAD
  749. // SIG // ggEBAEVY4ppBf/ydv0h3d66M2eYZxVe0Gr20uV8CoUVq
  750. // SIG // OVn5uSecLU2e/KLkOIo4ZCJC37kvKs+31gbK6yq/4BqF
  751. // SIG // fNtRCD30ItPUwG2IgRVEX2SDZMSplCyK25A3Sg+36NRh
  752. // SIG // j3Z24dkl/ySElY0EVlSUoRw6PoK87qWHjByMS3lftUn6
  753. // SIG // XjJpOh9UrXVN32TnMDzbZElE+/vEHEJx5qA9Re5rAJ+s
  754. // SIG // Qr26EbNW5PvVoiqB2B9OolW+J49wpqJsG/9UioK8gUum
  755. // SIG // obFmeqkXp8sGwEfrprPpMRVTPSoEv/9zSNyLJ0P8Y+ju
  756. // SIG // JIdbvjbR6DH1Mtle33l6ujCsaYZK+4wRvxuNVFkwggTh
  757. // SIG // MIIDyaADAgECAgphDn2nAAAAAABIMA0GCSqGSIb3DQEB
  758. // SIG // BQUAMIGmMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2Fz
  759. // SIG // aGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE
  760. // SIG // ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSswKQYDVQQL
  761. // SIG // EyJDb3B5cmlnaHQgKGMpIDIwMDAgTWljcm9zb2Z0IENv
  762. // SIG // cnAuMSMwIQYDVQQDExpNaWNyb3NvZnQgQ29kZSBTaWdu
  763. // SIG // aW5nIFBDQTAeFw0wMzEwMjUwNTU5MTRaFw0wNTAxMjUw
  764. // SIG // NjA5MTRaMHQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpX
  765. // SIG // YXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYD
  766. // SIG // VQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xHjAcBgNV
  767. // SIG // BAMTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjCCASIwDQYJ
  768. // SIG // KoZIhvcNAQEBBQADggEPADCCAQoCggEBALIthwm1XN9V
  769. // SIG // metSYufT9ONFcakyv5TyDukNrf6dxwRqWE6cpNHYREH7
  770. // SIG // ZH4PZe7IF9pN29nWULQMVltsFohLvwPuUEiD7E+Ik5pR
  771. // SIG // 45QZf/qzl6XOYG2f3UyTOL3NNFlx5obO6YOZoJa46uBE
  772. // SIG // WxNCuTpITlRy9wiW5ADEggF2Q69hwtv65cXwAhPd+DW0
  773. // SIG // Dw1SNkZ0Q7GiypzdfpnxNRF3+xUmAY7P4LgEeCoV/XLG
  774. // SIG // YHaRDOdPshgYG2mJtPEvIRtm6sqRx0YNuRdYcVhWhmUj
  775. // SIG // 0QIyrmSgb9pSlf373Y009cEMNaNH1+kbavoPRbToMh1w
  776. // SIG // Gb3R+eVkH+uHN+pv1A2Dj/0CAwEAAaOCAUAwggE8MA4G
  777. // SIG // A1UdDwEB/wQEAwIGwDAdBgNVHQ4EFgQUgo+nF2RkckTV
  778. // SIG // MK4WhOJTkMs+ntQwEwYDVR0lBAwwCgYIKwYBBQUHAwMw
  779. // SIG // gakGA1UdIwSBoTCBnoAUKVy5G7bNM+67nll99+XKLsQN
  780. // SIG // NCihdKRyMHAxKzApBgNVBAsTIkNvcHlyaWdodCAoYykg
  781. // SIG // MTk5NyBNaWNyb3NvZnQgQ29ycC4xHjAcBgNVBAsTFU1p
  782. // SIG // Y3Jvc29mdCBDb3Jwb3JhdGlvbjEhMB8GA1UEAxMYTWlj
  783. // SIG // cm9zb2Z0IFJvb3QgQXV0aG9yaXR5ghBqC5lPwADeqhHU
  784. // SIG // 2ECaqL7mMEoGA1UdHwRDMEEwP6A9oDuGOWh0dHA6Ly9j
  785. // SIG // cmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3Rz
  786. // SIG // L0NvZGVTaWduUENBLmNybDANBgkqhkiG9w0BAQUFAAOC
  787. // SIG // AQEASkjcMrB6Zz+LKwG0DPXbeUFd4Dftv1Fzf9b5fmxt
  788. // SIG // f5+8paRIHqjj7ab1PIZqkVlM1FMU697uzcPckKMIsYtF
  789. // SIG // Ov1qcPDOBAY2LjC0j0yr6t1DWc2DoNfupEmuECRPmf/V
  790. // SIG // Avnshkyl2CLoARct6xOQmZoRgDMMGYh+BhnUMe1MyX67
  791. // SIG // JMexveVUO+p3EImHbOCcgI3SEORKl6nqVxnXeCsNmzUn
  792. // SIG // sTi+0r+tx/DmbVqfEPbK8fLgMKsBphPItjlkvQkJ7Yu2
  793. // SIG // FBhqeinGdEs7R/EUycveF92yXNjMOYc8OUjFMHyOdVfu
  794. // SIG // 7RugDYVyNWRJvqFJOOKanEp8gmQNAXhfVv6IdDGCBIsw
  795. // SIG // ggSHAgEBMIG1MIGmMQswCQYDVQQGEwJVUzETMBEGA1UE
  796. // SIG // CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe
  797. // SIG // MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSsw
  798. // SIG // KQYDVQQLEyJDb3B5cmlnaHQgKGMpIDIwMDAgTWljcm9z
  799. // SIG // b2Z0IENvcnAuMSMwIQYDVQQDExpNaWNyb3NvZnQgQ29k
  800. // SIG // ZSBTaWduaW5nIFBDQQIKYQ59pwAAAAAASDAJBgUrDgMC
  801. // SIG // GgUAoIGoMBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEE
  802. // SIG // MBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMCMG
  803. // SIG // CSqGSIb3DQEJBDEWBBTGDYKau81EU/bQRVsdspCcVLCK
  804. // SIG // GzBIBgorBgEEAYI3AgEMMTowOKAWgBQAagBtAHAAbQBl
  805. // SIG // AG4AdQAuAGoAc6EegBxodHRwOi8vb2ZmaWNlLm1pY3Jv
  806. // SIG // c29mdC5jb20gMA0GCSqGSIb3DQEBAQUABIIBAKpWWf6Y
  807. // SIG // OqvAtb2wCQKwmojgNGMnB6sS0YBsoxe6OyiFet9eGJPs
  808. // SIG // Ju8EDiiAOkpRZoWfLZPHRsZnouq2++gp+wLBLudtNNkE
  809. // SIG // AhWbj5tMw5VdECDDkdmDApa2KOa3zL3KCJDrMtGy36Or
  810. // SIG // eFu3x9Rxm89gnzBIZAsbHet2/NdLRcSmoiSjlq+yX2Gv
  811. // SIG // cSvP9oK/wIQ8kaT+DBfkm9agsvMYZD218OtKmfJae8eV
  812. // SIG // KCmPWyR3wkXbaDllEqVVvVgLiu1QIt7+ze3CW5AESfBJ
  813. // SIG // yCHfdaqjnsBMvxBIGNBZ7MEw5T7a2oY52K78MGWGvQWz
  814. // SIG // MNceTxCNVAfZE8Dlc+Buxjamlz2hggH/MIIB+wYJKoZI
  815. // SIG // hvcNAQkGMYIB7DCCAegCAQEwZzBTMQswCQYDVQQGEwJV
  816. // SIG // UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xKzApBgNV
  817. // SIG // BAMTIlZlcmlTaWduIFRpbWUgU3RhbXBpbmcgU2Vydmlj
  818. // SIG // ZXMgQ0ECEA3pK/DU2CmIGDIFCV6adogwDAYIKoZIhvcN
  819. // SIG // AgUFAKBZMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEw
  820. // SIG // HAYJKoZIhvcNAQkFMQ8XDTA0MDQxNjA5MzcxN1owHwYJ
  821. // SIG // KoZIhvcNAQkEMRIEEC7gk+cQaTJf1HyLrrI8OJ8wDQYJ
  822. // SIG // KoZIhvcNAQEBBQAEggEAiM3FMFSF59JYRhXkDkv9lZCS
  823. // SIG // Rgx3XqUj24StW2LdBSye+4P/34zzK6crZa1bh05sqndN
  824. // SIG // eSR/RmozuGf5F+1rDQx4LVM4/PeaasBoy+DQBN5SrfKY
  825. // SIG // xm7T/gRaj3DTkFfOX7TOO7vDYSBGcFtlSpSYnPvJQ0tC
  826. // SIG // Ow/zmmvESZvIL7ASRAJcf8tl8MgFCUp/hTWadVW4mouh
  827. // SIG // TJtefF12V/hRx6W5BHprjaHbNICELdAL52lLpwab19OA
  828. // SIG // atXSMF8mZAiuHaiIFuBp8jKkdVuKbj8B0u1cCAwtBbe3
  829. // SIG // Ozxs/OfH0XjDvjLitSM46Ox198tGs9nsHEn9e185ELYj
  830. // SIG // zp0qoB3QPg==
  831. // SIG // End signature block
  832.