Merge cvs-trunk-mirror to mozilla-central. Automated merge, no manual conflict resolution necessary.
authorBenjamin Smedberg <benjamin@smedbergs.us>
Tue, 29 Apr 2008 10:20:07 -0400
changeset 14760 78e482f2d4be1b7560448e20fd385c26339f12c9
parent 14386 06a3d0cd6aca142d728824c81269f9f0c0cf5250 (current diff)
parent 14759 49c665b20248af35319a935d5a134fc4f25c70f7 (diff)
child 14805 5fd5f0514bfc11d34c7baeecce76e7ac23c216f8
push idunknown
push userunknown
push dateunknown
milestone2.0a1pre
Merge cvs-trunk-mirror to mozilla-central. Automated merge, no manual conflict resolution necessary.
browser/themes/pinstripe/browser/bookmarks/Bookmarks-toolbar.png
browser/themes/pinstripe/browser/bookmarks/addBookmark.css
browser/themes/pinstripe/browser/bookmarks/bookmark-folder.png
browser/themes/pinstripe/browser/bookmarks/bookmark-item.png
browser/themes/pinstripe/browser/bookmarks/bookmarksManager.css
browser/themes/pinstripe/browser/bookmarks/bookmarksProperties.css
browser/themes/pinstripe/browser/bookmarks/expander-closed-active.png
browser/themes/pinstripe/browser/bookmarks/expander-closed.png
browser/themes/pinstripe/browser/bookmarks/expander-open-active.png
browser/themes/pinstripe/browser/bookmarks/expander-open.png
browser/themes/pinstripe/browser/bookmarks/folderarrow-hover.png
browser/themes/pinstripe/browser/bookmarks/folderarrow.png
browser/themes/pinstripe/browser/bookmarks/livemark-folder-hover.png
browser/themes/pinstripe/browser/bookmarks/livemark-folder.png
browser/themes/pinstripe/browser/bookmarks/livemark-item.png
browser/themes/pinstripe/browser/places/contentSplitter-bg.gif
browser/themes/pinstripe/browser/places/folderDropHoverArrow.png
browser/themes/pinstripe/browser/places/infoPaneGrippy.png
browser/themes/pinstripe/browser/places/livemarkFolderHover.png
browser/themes/pinstripe/browser/places/menubutton-mid.png
browser/themes/pinstripe/browser/places/placesIcon.png
browser/themes/winstripe/browser/bookmarks/Bookmarks-toolbar.png
browser/themes/winstripe/browser/bookmarks/addBookmark.css
browser/themes/winstripe/browser/bookmarks/bookmarksManager.css
browser/themes/winstripe/browser/bookmarks/bookmarksProperties.css
browser/themes/winstripe/browser/places/collapse-aero.png
browser/themes/winstripe/browser/places/collapse.png
browser/themes/winstripe/browser/places/expand-aero.png
browser/themes/winstripe/browser/places/expand.png
browser/themes/winstripe/browser/places/minus-aero.png
browser/themes/winstripe/browser/places/minus.png
browser/themes/winstripe/browser/places/placesIcon.png
browser/themes/winstripe/browser/places/plus-aero.png
browser/themes/winstripe/browser/places/plus.png
browser/themes/winstripe/browser/wrench.png
config/autoconf.mk.in
configure.in
editor/ui/composer/content/EditorExtra.css
editor/ui/composer/content/images/frown.gif
editor/ui/composer/content/images/s_frown.gif
editor/ui/composer/content/images/s_smile.gif
editor/ui/composer/content/images/s_wink.gif
editor/ui/composer/content/images/sick.gif
editor/ui/composer/content/images/smile.gif
editor/ui/composer/content/images/smile_active.gif
editor/ui/composer/content/images/smile_disabled.gif
editor/ui/composer/content/images/smile_hover.gif
editor/ui/composer/content/images/wink.gif
extensions/reporter/resources/skin/classic/reporter/browserOverlay.css
extensions/reporter/resources/skin/classic/reporter/reporter-icon-large.png
extensions/reporter/resources/skin/classic/reporter/reporter-icon-small.png
js/src/jsapi.cpp
js/src/jsarray.cpp
js/src/jsdbgapi.cpp
js/src/jsfun.cpp
js/src/jsinterp.cpp
js/src/jslong.cpp
js/src/jsobj.cpp
js/src/jsopcode.cpp
js/src/jsparse.cpp
js/src/jsregexp.cpp
js/src/jsscope.cpp
js/src/jsstr.cpp
js/src/prmjtime.cpp
uriloader/exthandler/win/IApplicationAssociationRegistration.h
--- a/accessible/src/base/nsAccessNode.cpp
+++ b/accessible/src/base/nsAccessNode.cpp
@@ -789,18 +789,21 @@ nsAccessNode::GetCacheEntry(nsAccessNode
                             void* aUniqueID,
                             nsIAccessNode **aAccessNode)
 {
   aCache.Get(aUniqueID, aAccessNode);  // AddRefs for us
 }
 
 PLDHashOperator nsAccessNode::ClearCacheEntry(const void* aKey, nsCOMPtr<nsIAccessNode>& aAccessNode, void* aUserArg)
 {
-  nsCOMPtr<nsPIAccessNode> privateAccessNode(do_QueryInterface(aAccessNode));
-  privateAccessNode->Shutdown();
+  NS_ASSERTION(!aAccessNode, "Calling ClearCacheEntry with a NULL pointer!");
+  if (aAccessNode) {
+    nsCOMPtr<nsPIAccessNode> privateAccessNode(do_QueryInterface(aAccessNode));
+    privateAccessNode->Shutdown();
+  }
 
   return PL_DHASH_REMOVE;
 }
 
 void
 nsAccessNode::ClearCache(nsAccessNodeHashtable& aCache)
 {
   aCache.Enumerate(ClearCacheEntry, nsnull);
--- a/accessible/src/base/nsAccessible.cpp
+++ b/accessible/src/base/nsAccessible.cpp
@@ -1435,30 +1435,64 @@ NS_IMETHODIMP nsAccessible::TakeSelectio
     }
     return SetSelected(PR_TRUE);
   }
 
   return NS_ERROR_FAILURE;
 }
 
 /* void takeFocus (); */
-NS_IMETHODIMP nsAccessible::TakeFocus()
-{ 
-  nsCOMPtr<nsIDOMNSHTMLElement> htmlElement(do_QueryInterface(mDOMNode));
+NS_IMETHODIMP
+nsAccessible::TakeFocus()
+{
+  if (IsDefunct())
+    return NS_ERROR_FAILURE;
+
+  nsCOMPtr<nsIContent> content(do_QueryInterface(mDOMNode));
+
+  nsIFrame *frame = GetFrame();
+  NS_ENSURE_STATE(frame);
+
+  // If the current element can't take real DOM focus and if it has an ID and
+  // ancestor with a the aria-activedescendant attribute present, then set DOM
+  // focus to that ancestor and set aria-activedescendant on the ancestor to
+  // the ID of the desired element.
+  if (!frame->IsFocusable()) {
+    nsAutoString id;
+    if (content && nsAccUtils::GetID(content, id)) {
+
+      nsCOMPtr<nsIContent> ancestorContent = content;
+      while ((ancestorContent = ancestorContent->GetParent()) &&
+             !ancestorContent->HasAttr(kNameSpaceID_None,
+                                       nsAccessibilityAtoms::aria_activedescendant));
+
+      if (ancestorContent) {
+        nsCOMPtr<nsIPresShell> presShell(do_QueryReferent(mWeakShell));
+        if (presShell) {
+          nsIFrame *frame = presShell->GetPrimaryFrameFor(ancestorContent);
+          if (frame && frame->IsFocusable()) {
+
+            content = ancestorContent;            
+            content->SetAttr(kNameSpaceID_None,
+                             nsAccessibilityAtoms::aria_activedescendant,
+                             id, PR_TRUE);
+          }
+        }
+      }
+    }
+  }
+
+  nsCOMPtr<nsIDOMNSHTMLElement> htmlElement(do_QueryInterface(content));
   if (htmlElement) {
     // HTML Elements also set the caret position
     // in order to affect tabbing order
     return htmlElement->Focus();
   }
-  nsCOMPtr<nsIContent> content(do_QueryInterface(mDOMNode));
-  if (!content) {
-    return NS_ERROR_FAILURE;
-  }
+
   content->SetFocus(GetPresContext());
-
   return NS_OK;
 }
 
 nsresult nsAccessible::AppendStringWithSpaces(nsAString *aFlatString, const nsAString& textEquivalent)
 {
   // Insert spaces to insure that words from controls aren't jammed together
   if (!textEquivalent.IsEmpty()) {
     if (!aFlatString->IsEmpty())
--- a/accessible/src/base/nsApplicationAccessible.cpp
+++ b/accessible/src/base/nsApplicationAccessible.cpp
@@ -87,24 +87,16 @@ nsApplicationAccessible::GetName(nsAStri
     appName.AssignLiteral("Mozilla");
   }
 
   aName.Assign(appName);
   return NS_OK;
 }
 
 NS_IMETHODIMP
-nsApplicationAccessible::GetDescription(nsAString& aDescription)
-{
-  GetName(aDescription);
-  aDescription.AppendLiteral(" Application Accessible");
-  return NS_OK;
-}
-
-NS_IMETHODIMP
 nsApplicationAccessible::GetRole(PRUint32 *aRole)
 {
   *aRole = nsIAccessibleRole::ROLE_APP_ROOT;
   return NS_OK;
 }
 
 NS_IMETHODIMP
 nsApplicationAccessible::GetFinalRole(PRUint32 *aFinalRole)
--- a/accessible/src/base/nsApplicationAccessible.h
+++ b/accessible/src/base/nsApplicationAccessible.h
@@ -64,17 +64,16 @@ public:
   // nsISupports
   NS_DECL_ISUPPORTS_INHERITED
 
   // nsPIAccessNode
   NS_IMETHOD Init();
 
   // nsIAccessible
   NS_IMETHOD GetName(nsAString & aName);
-  NS_IMETHOD GetDescription(nsAString & aDescription);
   NS_IMETHOD GetRole(PRUint32 *aRole);
   NS_IMETHOD GetFinalRole(PRUint32 *aFinalRole);
   NS_IMETHOD GetState(PRUint32 *aState, PRUint32 *aExtraState);
   NS_IMETHOD GetParent(nsIAccessible * *aParent);
   NS_IMETHOD GetNextSibling(nsIAccessible * *aNextSibling);
   NS_IMETHOD GetPreviousSibling(nsIAccessible **aPreviousSibling);
   NS_IMETHOD GetIndexInParent(PRInt32 *aIndexInParent);
   NS_IMETHOD GetChildAt(PRInt32 aChildNum, nsIAccessible **aChild);
--- a/accessible/src/base/nsDocAccessible.cpp
+++ b/accessible/src/base/nsDocAccessible.cpp
@@ -1557,19 +1557,22 @@ NS_IMETHODIMP nsDocAccessible::FlushPend
       }
 
       // Also fire text changes if the node being created could affect the text in an nsIAccessibleText parent.
       // When a node is being made visible or is inserted, the text in an ancestor hyper text will gain characters
       // At this point we now have the frame and accessible for this node if there is one. That is why we
       // wait to fire this here, instead of in InvalidateCacheSubtree(), where we wouldn't be able to calculate
       // the offset, length and text for the text change.
       if (domNode && domNode != mDOMNode) {
-        if (!containerAccessible)
+        if (!containerAccessible) {
           GetAccessibleInParentChain(domNode, PR_TRUE,
                                      getter_AddRefs(containerAccessible));
+          if (!containerAccessible)
+            containerAccessible = this;
+        }
 
         nsCOMPtr<nsIAccessibleTextChangeEvent> textChangeEvent =
           CreateTextChangeEventForNode(containerAccessible, domNode, accessible, PR_TRUE, PR_TRUE);
         if (textChangeEvent) {
           nsAccEvent::PrepareForEvent(textChangeEvent, isFromUserInput);
           // XXX Queue them up and merge the text change events
           // XXX We need a way to ignore SplitNode and JoinNode() when they
           // do not affect the text within the hypertext
@@ -2061,19 +2064,19 @@ nsDocAccessible::FireShowHideEvents(nsID
     if (aDelay) {
       return FireDelayedAccessibleEvent(event);
     }
     return FireAccessibleEvent(event);
   }
 
   // Could not find accessible to show hide yet, so fire on any
   // accessible descendants in this subtree
-  nsCOMPtr<nsIContent> content(do_QueryInterface(aDOMNode));
-  PRUint32 count = content->GetChildCount();
+  nsCOMPtr<nsINode> node(do_QueryInterface(aDOMNode));
+  PRUint32 count = node->GetChildCount();
   for (PRUint32 index = 0; index < count; index++) {
-    nsCOMPtr<nsIDOMNode> childNode = do_QueryInterface(content->GetChildAt(index));
+    nsCOMPtr<nsIDOMNode> childNode = do_QueryInterface(node->GetChildAt(index));
     nsresult rv = FireShowHideEvents(childNode, PR_FALSE, aEventType,
                                      aDelay, aForceIsFromUserInput);
     NS_ENSURE_SUCCESS(rv, rv);
   }
 
   return NS_OK;
 }
--- a/accessible/src/base/nsRootAccessible.cpp
+++ b/accessible/src/base/nsRootAccessible.cpp
@@ -233,20 +233,22 @@ nsRootAccessible::GetState(PRUint32 *aSt
     return NS_OK;
 
   nsCOMPtr<nsIDOMWindow> domWin;
   GetWindow(getter_AddRefs(domWin));
   nsCOMPtr<nsPIDOMWindow> privateDOMWindow(do_QueryInterface(domWin));
   if (privateDOMWindow) {
     nsIFocusController *focusController =
       privateDOMWindow->GetRootFocusController();
-    PRBool isActive = PR_FALSE;
-    focusController->GetActive(&isActive);
-    if (isActive) {
-      *aExtraState |= nsIAccessibleStates::EXT_STATE_ACTIVE;
+    if (focusController) {
+      PRBool isActive = PR_FALSE;
+      focusController->GetActive(&isActive);
+      if (isActive) {
+        *aExtraState |= nsIAccessibleStates::EXT_STATE_ACTIVE;
+      }
     }
   }
 #ifdef MOZ_XUL
   if (GetChromeFlags() & nsIWebBrowserChrome::CHROME_MODAL) {
     *aExtraState |= nsIAccessibleStates::EXT_STATE_MODAL;
   }
 #endif
 
--- a/accessible/src/html/nsHTMLImageAccessible.cpp
+++ b/accessible/src/html/nsHTMLImageAccessible.cpp
@@ -125,34 +125,44 @@ nsHTMLImageAccessible::GetState(PRUint32
 
   return NS_OK;
 }
 
 
 /* wstring getName (); */
 NS_IMETHODIMP nsHTMLImageAccessible::GetName(nsAString& aName)
 {
+  aName.Truncate();
+  if (IsDefunct())
+    return NS_ERROR_FAILURE;
+  
   nsCOMPtr<nsIContent> content(do_QueryInterface(mDOMNode));
-  if (!content) {
-    return NS_ERROR_FAILURE;  // Node has been shut down
-  }
-
-  if (!content->GetAttr(kNameSpaceID_None, nsAccessibilityAtoms::alt,
-                        aName)) {
-    if (mRoleMapEntry) {
+  NS_ASSERTION(content, "Image node always supports nsIContent");
+    
+  // No alt attribute means AT can repair if there is no accessible name
+  // alt="" with no title or aria-labelledby means image is presentational and 
+  // AT should leave accessible name empty
+  PRBool hasAltAttrib =
+    content->GetAttr(kNameSpaceID_None, nsAccessibilityAtoms::alt, aName);
+  if (aName.IsEmpty()) {
+    if (content->HasAttr(kNameSpaceID_None, nsAccessibilityAtoms::aria_labelledby)) {
       // Use HTML label or DHTML accessibility's labelledby attribute for name
       // GetHTMLName will also try title attribute as a last resort
-      return GetHTMLName(aName, PR_FALSE);
+      GetHTMLName(aName, PR_FALSE);
     }
-    if (!content->GetAttr(kNameSpaceID_None, nsAccessibilityAtoms::title,
-                          aName)) {
-      aName.SetIsVoid(PR_TRUE); // No alt or title
+    if (aName.IsEmpty()) { // No name from alt or aria-labelledby
+      content->GetAttr(kNameSpaceID_None, nsAccessibilityAtoms::title, aName);
+      if (!hasAltAttrib && aName.IsEmpty()) { 
+        // Still no accessible name and no alt attribute is present.
+        // SetIsVoid() is different from empty string -- this means a name was not 
+        // provided by author and AT repair of the name is allowed.
+        aName.SetIsVoid(PR_TRUE);
+      }
     }
   }
-
   return NS_OK;
 }
 
 /* wstring getRole (); */
 NS_IMETHODIMP nsHTMLImageAccessible::GetRole(PRUint32 *_retval)
 {
   *_retval = mMapElement ? nsIAccessibleRole::ROLE_IMAGE_MAP :
                            nsIAccessibleRole::ROLE_GRAPHIC;
@@ -320,16 +330,35 @@ nsHTMLImageAccessible::Shutdown()
   }
 
   return NS_OK;
 }
 
 ////////////////////////////////////////////////////////////////////////////////
 // nsHTMLImageAccessible
 
+nsresult
+nsHTMLImageAccessible::GetAttributesInternal(nsIPersistentProperties *aAttributes)
+{
+  if (IsDefunct())
+    return NS_ERROR_FAILURE;
+  
+  nsresult rv = nsLinkableAccessible::GetAttributesInternal(aAttributes);
+  NS_ENSURE_SUCCESS(rv, rv);
+
+  nsCOMPtr<nsIContent> content(do_QueryInterface(mDOMNode));
+
+  nsAutoString src;
+  content->GetAttr(kNameSpaceID_None, nsAccessibilityAtoms::src, src);
+  if (!src.IsEmpty())
+    nsAccUtils::SetAccAttr(aAttributes, nsAccessibilityAtoms::src, src);
+
+  return NS_OK;
+}
+
 already_AddRefed<nsIDOMHTMLCollection>
 nsHTMLImageAccessible::GetAreaCollection()
 {
   if (!mMapElement)
     return nsnull;
 
   nsIDOMHTMLCollection *mapAreas = nsnull;
   nsresult rv = mMapElement->GetAreas(&mapAreas);
--- a/accessible/src/html/nsHTMLImageAccessible.h
+++ b/accessible/src/html/nsHTMLImageAccessible.h
@@ -72,16 +72,19 @@ public:
   NS_IMETHOD GetAnchor(PRInt32 aIndex, nsIAccessible **aAccessible);
 
   // nsPIAccessNode
   NS_IMETHOD Shutdown();
 
   // nsIAccessibleImage
   NS_DECL_NSIACCESSIBLEIMAGE
 
+  // nsAccessible
+  virtual nsresult GetAttributesInternal(nsIPersistentProperties *aAttributes);
+
 protected:
   // nsAccessible
   virtual void CacheChildren();
 
   already_AddRefed<nsIDOMHTMLCollection> GetAreaCollection();
   already_AddRefed<nsIAccessible>
     GetAreaAccessible(nsIDOMHTMLCollection* aAreaNodes, PRInt32 aAreaNum);
 
--- a/accessible/src/html/nsHTMLTableAccessible.cpp
+++ b/accessible/src/html/nsHTMLTableAccessible.cpp
@@ -87,16 +87,19 @@ nsHTMLTableCellAccessible::GetAttributes
   NS_ENSURE_SUCCESS(rv, rv);
 
   nsCOMPtr<nsIContent> content(do_QueryInterface(mDOMNode));
 
   nsCOMPtr<nsIPresShell> shell = GetPresShell();
   NS_ENSURE_STATE(shell);
   
   nsIFrame *frame = shell->GetPrimaryFrameFor(content);
+  NS_ASSERTION(frame, "The frame cannot be obtaied for HTML table cell.");
+  NS_ENSURE_STATE(frame);
+
   nsITableCellLayout *cellLayout = nsnull;
   CallQueryInterface(frame, &cellLayout);
   NS_ENSURE_STATE(cellLayout);
 
   PRInt32 rowIdx = -1, cellIdx = -1;
   rv = cellLayout->GetCellIndexes(rowIdx, cellIdx);
   NS_ENSURE_SUCCESS(rv, rv);
 
--- a/accessible/src/msaa/CAccessibleAction.cpp
+++ b/accessible/src/msaa/CAccessibleAction.cpp
@@ -115,17 +115,17 @@ CAccessibleAction::get_description(long 
     return E_FAIL;
 
   nsAutoString description;
   PRUint8 index = static_cast<PRUint8>(aActionIndex);
   nsresult rv = acc->GetActionDescription(index, description);
   if (NS_FAILED(rv))
     return GetHRESULT(rv);
 
-  if (description.IsVoid())
+  if (description.IsEmpty())
     return S_FALSE;
 
   *aDescription = ::SysAllocStringLen(description.get(),
                                       description.Length());
   return *aDescription ? S_OK : E_OUTOFMEMORY;
 
 } __except(nsAccessNodeWrap::FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { }
   return E_FAIL;
--- a/accessible/src/msaa/CAccessibleText.cpp
+++ b/accessible/src/msaa/CAccessibleText.cpp
@@ -94,16 +94,19 @@ CAccessibleText::addSelection(long aStar
   return E_FAIL;
 }
 
 STDMETHODIMP
 CAccessibleText::get_attributes(long aOffset, long *aStartOffset,
                                 long *aEndOffset, BSTR *aTextAttributes)
 {
 __try {
+  if (!aStartOffset || !aEndOffset || !aTextAttributes)
+    return E_INVALIDARG;
+
   *aStartOffset = 0;
   *aEndOffset = 0;
   *aTextAttributes = NULL;
 
   GET_NSIACCESSIBLETEXT
 
   nsCOMPtr<nsIAccessible> accessible;
   PRInt32 startOffset = 0, endOffset = 0;
--- a/accessible/src/msaa/nsAccessibleWrap.cpp
+++ b/accessible/src/msaa/nsAccessibleWrap.cpp
@@ -286,29 +286,39 @@ STDMETHODIMP nsAccessibleWrap::get_accCh
 STDMETHODIMP nsAccessibleWrap::get_accName(
       /* [optional][in] */ VARIANT varChild,
       /* [retval][out] */ BSTR __RPC_FAR *pszName)
 {
 __try {
   *pszName = NULL;
   nsCOMPtr<nsIAccessible> xpAccessible;
   GetXPAccessibleFor(varChild, getter_AddRefs(xpAccessible));
-  if (xpAccessible) {
-    nsAutoString name;
-    if (NS_FAILED(xpAccessible->GetName(name)))
-      return E_FAIL;
+  if (!xpAccessible)
+    return E_FAIL;
+  nsAutoString name;
+  nsresult rv = xpAccessible->GetName(name);
+  if (NS_FAILED(rv))
+    return GetHRESULT(rv);
+    
+  if (name.IsVoid()) {
+    // Valid return value for the name:
+    // The name was not provided, e.g. no alt attribute for an image.
+    // A screen reader may choose to invent its own accessible name, e.g. from
+    // an image src attribute.
+    // See nsHTMLImageAccessible::GetName()
+    return S_OK;
+  }
 
-    *pszName = ::SysAllocStringLen(name.get(), name.Length());
-    if (!*pszName)
-      return E_OUTOFMEMORY;
+  *pszName = ::SysAllocStringLen(name.get(), name.Length());
+  if (!*pszName)
+    return E_OUTOFMEMORY;
 
 #ifdef DEBUG_A11Y
-    NS_ASSERTION(mIsInitialized, "Access node was not initialized");
+  NS_ASSERTION(mIsInitialized, "Access node was not initialized");
 #endif
-  }
 } __except(FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { }
 
   return S_OK;
 }
 
 
 STDMETHODIMP nsAccessibleWrap::get_accValue(
       /* [optional][in] */ VARIANT varChild,
--- a/accessible/tests/mochitest/Makefile.in
+++ b/accessible/tests/mochitest/Makefile.in
@@ -41,25 +41,28 @@ topsrcdir	= @top_srcdir@
 srcdir		= @srcdir@
 VPATH		= @srcdir@
 relativesrcdir  = accessible
 
 include $(DEPTH)/config/autoconf.mk
 include $(topsrcdir)/config/rules.mk
 
 _TEST_FILES =\
+		moz.png \
+		test_aria_activedescendant.html \
 		test_bug368835.xul \
 		test_bug420863.html \
 		test_groupattrs.xul \
 		test_table_indexes.html \
 		test_nsIAccessibleTable_1.html \
 		test_nsIAccessibleTable_2.html \
 		test_nsIAccessibleTable_3.html \
 		test_nsIAccessibleTable_4.html \
 		test_nsIAccessibleTable_listboxes.xul \
 		test_nsIAccessibleHyperLink.html \
 		test_nsIAccessibleHyperLink.xul \
 		test_nsIAccessibleHyperText.html \
+		test_nsIAccessibleImage.html \
 		test_bug428479.html \
 		$(NULL)
 
 libs:: $(_TEST_FILES)
 	$(INSTALL) $(foreach f,$^,"$f") $(DEPTH)/_tests/testing/mochitest/a11y/$(relativesrcdir)
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..cb0ba06dc10ec2d7adeb38c53b174a66781930f9
GIT binary patch
literal 2220
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
new file mode 100644
--- /dev/null
+++ b/accessible/tests/mochitest/test_aria_activedescendant.html
@@ -0,0 +1,76 @@
+<!DOCTYPE html>
+<html>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=429547
+-->
+<head>
+  <title>Table indexes chrome tests</title>
+  <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css" />
+
+  <script type="application/javascript" src="chrome://mochikit/content/MochiKit/packed.js"></script>
+  <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
+
+  <script type="application/javascript">
+    const nsIAccessibleRetrieval = Components.interfaces.nsIAccessibleRetrieval;
+    const ELEMENT_NODE = Components.interfaces.nsIDOMNode.ELEMENT_NODE;
+
+    var gAccRetrieval = null;
+    var gContainerFocused = false;
+
+    function doTest()
+    {
+      var focusHandler = {
+        handleEvent: function handleEvent(aEvent) {
+          var target = aEvent.target;
+          if (target.nodeType ==  ELEMENT_NODE &&
+              target.getAttribute("id") == "container")
+            gContainerFocused = true;
+        }
+      };
+
+      var container = document.getElementById("container");
+      container.addEventListener("focus", focusHandler, false);
+
+      gAccRetrieval = Components.classes["@mozilla.org/accessibleRetrieval;1"].
+                      getService(nsIAccessibleRetrieval);
+
+      var item2 = document.getElementById("item2");
+      var item2Acc = null;
+      try {
+        item2Acc = gAccRetrieval.getAccessibleFor(item2);
+      } catch (e) {}
+      ok (item2Acc,
+          "The element with ID and an ancestor with 'aria-activedescedant' attribute should be accessible.");
+
+      if (item2Acc)
+        item2Acc.takeFocus();
+
+      ok(gContainerFocused,
+         "Container with active descedant didn't recieved the focus.");
+
+      SimpleTest.finish();
+    }
+
+    SimpleTest.waitForExplicitFinish();
+    addLoadEvent(doTest);
+  </script>
+</head>
+<body>
+
+  <a target="_blank"
+     href="https://bugzilla.mozilla.org/show_bug.cgi?id=429547"
+     title="Support aria-activedescendant usage in nsIAccesible::TakeFocus()">
+    Mozilla Bug 429547
+  </a>
+  <p id="display"></p>
+  <div id="content" style="display: none"></div>
+  <pre id="test">
+  </pre>
+
+  <div aria-activedescendant="item1" id="container" tabindex="1">
+    <div id="item1">item1</div>
+    <div id="item2">item2</div>
+    <div id="item3">item3</div>
+  </div>
+</body>
+</html>
new file mode 100644
--- /dev/null
+++ b/accessible/tests/mochitest/test_nsIAccessibleImage.html
@@ -0,0 +1,171 @@
+<!DOCTYPE html>
+<html>
+<!--
+https://bugzilla.mozilla.org/show_bug.cgi?id=429659
+-->
+<head>
+  <title>nsIAccessibleImage chrome tests</title>
+  <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css" />
+
+  <script type="application/javascript" src="chrome://mochikit/content/MochiKit/packed.js"></script>
+  <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
+
+  <script type="application/javascript">
+    const nsIAccessibleImage = Components.interfaces.nsIAccessibleImage;
+    const nsIAccessibleCoordinateType = 
+          Components.interfaces.nsIAccessibleCoordinateType;
+
+    var gAccRetrieval;
+
+    function testCords(aID, aImageAcc, aCordType, aXCoordinate, aYCoordinate,
+                       aCoordTypeString)
+    {
+      var x = {}, y = {};
+      aImageAcc.getImagePosition(aCordType, x, y);
+      is(x.value, aXCoordinate,
+         "Wrong " + aCoordTypeString + " x offset for " + aID + "!");
+      is(y.value, aYCoordinate,
+         "Wrong " + aCoordTypeString + " y offset for " + aID + "!");
+    }
+
+    function testCoordinates(aID, aAcc, aXCoordinates, aYCoordinates, aWidth,
+                             aHeight)
+    {
+      var imageAcc;
+      try {
+        imageAcc = aAcc.QueryInterface(nsIAccessibleImage);
+      } catch(e) {}
+      ok(imageAcc, "no image interface for " + aID + "!");
+
+      testCords(aID, imageAcc,
+                nsIAccessibleCoordinateType.COORDTYPE_SCREEN_RELATIVE,
+                aXCoordinates[0], aYCoordinates[0], "screen");
+      testCords(aID, imageAcc,
+                nsIAccessibleCoordinateType.COORDTYPE_WINDOW_RELATIVE,
+                aXCoordinates[1], aYCoordinates[1], "window");
+      testCords(aID, imageAcc,
+                nsIAccessibleCoordinateType.COORDTYPE_PARENT_RELATIVE,
+                aXCoordinates[2], aYCoordinates[2], "parent");
+
+      var width = {}, height = {};
+      imageAcc.getImageSize(width, height);
+      is(width.value, aWidth, "Wrong width for " + aID + "!");
+      is(height.value, aHeight, "wrong height for " + aID + "!");
+    }
+
+    function testThis(aID, aName, aSRC, aXCoordinates, aYCoordinates, aWidth,
+                      aHeight)
+    {
+      var elem = document.getElementById(aID);
+      var acc;
+      try {
+        acc = gAccRetrieval.getAccessibleFor(elem);
+      } catch(e) {}
+      ok(acc, "No accessible for " + aID + "!");
+      is(acc.name, aName, "wrong name for " + aID + "!");
+
+      // test coordinates and size
+      testCoordinates(aID, acc, aXCoordinates, aYCoordinates, aWidth, aHeight);
+
+      // bug 429659: Make sure the SRC attribute is set for any image
+      var attributes;
+      try {
+        attributes = acc.attributes;
+      } catch(e) {}
+      ok(attributes, "no attributes on " + aID + "!");
+      is(attributes.getStringProperty("src"), aSRC,
+         "no correct src attribute for " + aID + "!");
+    }
+
+    function doTest()
+    {
+      gAccRetrieval = Components.classes["@mozilla.org/accessibleRetrieval;1"].
+                       getService(Components.interfaces.nsIAccessibleRetrieval);
+
+      // Test non-linked image
+      var xCords = [16, 12, 8];
+      var yCords = [227, 223, 113];
+      testThis("nonLinkedImage", null, "moz.png", xCords, yCords, 89, 38);
+
+      // Test linked image
+      xCords = [16, 12, 0];
+      yCords = [289, 285, -27];
+      testThis("linkedImage", null, "moz.png", xCords, yCords, 93, 42);
+
+      // Test non-linked image with alt attribute
+      xCords = [16, 12, 8];
+      yCords = [356, 352, 242];
+      testThis("nonLinkedImageWithAlt", "MoFo", "moz.png", xCords, yCords, 89, 38);
+
+      // Test linked image with alt attribute
+      xCords = [16, 12, 0];
+      yCords = [418, 414, -27];
+      testThis("linkedImageWithAlt", "MoFo link", "moz.png", xCords, yCords, 93, 42);
+
+      // Test non-linked image with title attribute
+      xCords = [16, 12, 8];
+      yCords = [485, 481, 371];
+      testThis("nonLinkedImageWithTitle", "MoFo logo", "moz.png", xCords, yCords, 89, 38);
+
+      // Test linked image with title attribute
+      xCords = [16, 12, 0];
+      yCords = [547, 543, -27];
+      testThis("linkedImageWithTitle", "Link to MoFo", "moz.png", xCords, yCords, 93, 42);
+
+      // Test simple image with empty alt attribute
+      xCords = [16, 12, 8];
+      yCords = [614, 610, 500];
+      testThis("nonLinkedImageEmptyAlt", "", "moz.png", xCords, yCords, 89, 38);
+
+      // Test linked image with empty alt attribute
+      xCords = [16, 12, 0];
+      yCords = [676, 672, -27];
+      testThis("linkedImageEmptyAlt", "", "moz.png", xCords, yCords, 93, 42);
+
+      // Test simple image with empty alt attribute and title
+      xCords = [16, 12, 8];
+      yCords = [743, 739, 629];
+      testThis("nonLinkedImageEmptyAltAndTitle", "MozillaFoundation", "moz.png", xCords, yCords, 89, 38);
+
+      // Test linked image with empty alt attribute and title
+      xCords = [16, 12, 0];
+      yCords = [805, 801, -27];
+      testThis("linkedImageEmptyAltAndTitle", "Link to Mozilla Foundation", "moz.png", xCords, yCords, 93, 42);
+
+      SimpleTest.finish();
+    }
+
+    SimpleTest.waitForExplicitFinish();
+    addLoadEvent(doTest);
+  </script>
+</head>
+<body>
+
+  <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=429659">Mozilla Bug 429659</a>
+  <p id="display"></p>
+  <div id="content" style="display: none"></div>
+  <pre id="test">
+  </pre>
+  <br>Simple image:<br>
+  <img id="nonLinkedImage" src="moz.png"/>
+  <br>Linked image:<br>
+  <a href="http://www.mozilla.org"><img id="linkedImage" src="moz.png"></a>
+  <br>Simple image with alt:<br>
+  <img id="nonLinkedImageWithAlt" src="moz.png" alt="MoFo"/>
+  <br>Linked image with alt:<br>
+  <a href="http://www.mozilla.org"><img id="linkedImageWithAlt" src="moz.png" alt="MoFo link"/></a>
+  <br>Simple image with title:<br>
+  <img id="nonLinkedImageWithTitle" src="moz.png" title="MoFo logo"/>
+  <br>Linked image with title:<br>
+  <a href="http://www.mozilla.org"><img id="linkedImageWithTitle" src="moz.png" title="Link to MoFo"/></a>
+  <br>Simple image with empty alt:<br>
+  <img id="nonLinkedImageEmptyAlt" src="moz.png" alt=""/>
+  <br>Linked image with empty alt:<br>
+  <a href="http://www.mozilla.org"><img id="linkedImageEmptyAlt" src="moz.png" alt=""/></a>
+  <br>Simple image with empty alt and title:<br>
+  <img id="nonLinkedImageEmptyAltAndTitle" src="moz.png" alt="" title="MozillaFoundation"/>
+  <br>Linked image with empty alt and title:<br>
+  <a href="http://www.mozilla.org"><img id="linkedImageEmptyAltAndTitle" src="moz.png" alt=""
+     title="Link to Mozilla Foundation"/></a>
+</body>
+</html>
--- a/browser/app/blocklist.xml
+++ b/browser/app/blocklist.xml
@@ -11,9 +11,16 @@
     <emItem id="mozilla_cc@internetdownloadmanager.com">
       <versionRange minVersion="2.1" maxVersion="3.3">
         <targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
            <versionRange minVersion="3.0a1" maxVersion="*"/>
         </targetApplication>
       </versionRange>
     </emItem>
   </emItems>
+<pluginItems>
+  <pluginItem>
+    <match name="name" exp="Yahoo Application State Plugin"/>
+    <match name="description" exp="Yahoo Application State Plugin"/>
+    <match name="filename" exp="npYState.dll"/>
+  </pluginItem>
+</pluginItems>
 </blocklist>
--- a/browser/app/profile/firefox.js
+++ b/browser/app/profile/firefox.js
@@ -75,17 +75,17 @@ pref("extensions.getAddons.maxResults", 
 pref("extensions.getAddons.recommended.browseURL", "https://%LOCALE%.add-ons.mozilla.com/%LOCALE%/%APP%/recommended");
 pref("extensions.getAddons.recommended.url", "https://services.addons.mozilla.org/%LOCALE%/%APP%/api/%API_VERSION%/list/featured/all/10/%OS%/%VERSION%");
 pref("extensions.getAddons.search.browseURL", "https://%LOCALE%.add-ons.mozilla.com/%LOCALE%/%APP%/search?q=%TERMS%");
 pref("extensions.getAddons.search.url", "https://services.addons.mozilla.org/%LOCALE%/%APP%/api/%API_VERSION%/search/%TERMS%/all/10/%OS%/%VERSION%");
 
 // Blocklist preferences
 pref("extensions.blocklist.enabled", true);
 pref("extensions.blocklist.interval", 86400);
-pref("extensions.blocklist.url", "https://addons.mozilla.org/blocklist/1/%APP_ID%/%APP_VERSION%/");
+pref("extensions.blocklist.url", "https://addons.mozilla.org/blocklist/2/%APP_ID%/%APP_VERSION%/%PRODUCT%/%BUILD_ID%/%BUILD_TARGET%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/");
 pref("extensions.blocklist.detailsURL", "http://%LOCALE%.www.mozilla.com/%LOCALE%/blocklist/");
 
 // Dictionary download preference
 pref("browser.dictionaries.download.url", "https://%LOCALE%.add-ons.mozilla.com/%LOCALE%/firefox/%VERSION%/dictionaries/");
 
 // App-specific update preferences
 
 // Whether or not app updates are enabled
@@ -208,17 +208,20 @@ pref("browser.urlbar.clickSelectsAll", t
 #endif
 #ifdef UNIX_BUT_NOT_MAC
 pref("browser.urlbar.doubleClickSelectsAll", true);
 #else
 pref("browser.urlbar.doubleClickSelectsAll", false);
 #endif
 pref("browser.urlbar.autoFill", false);
 pref("browser.urlbar.matchOnlyTyped", false);
-pref("browser.urlbar.matchOnWordBoundary", true);
+// 0: Match anywhere (e.g., middle of words)
+// 1: Match on word boundaries and then try matching anywhere
+// 2: Match only on word boundaries (e.g., after / or .)
+pref("browser.urlbar.matchBehavior", 1);
 pref("browser.urlbar.filter.javascript", true);
 
 // the maximum number of results to show in autocomplete when doing richResults
 pref("browser.urlbar.maxRichResults", 12);
 // Size of "chunks" affects the number of places to process between each search
 // timeout (ms). Too big and the UI will be unresponsive; too small and we'll
 // be waiting on the timeout too often without many results.
 pref("browser.urlbar.search.chunkSize", 1000);
@@ -627,17 +630,17 @@ pref("urlclassifier.gethashnoise", 4);
 pref("urlclassifier.gethashtables", "goog-phish-shavar,goog-malware-shavar");
 
 // If an urlclassifier table has not been updated in this number of seconds,
 // a gethash request will be forced to check that the result is still in
 // the database.
 pref("urlclassifier.confirm-age", 2700);
 
 // URL for checking the reason for a malware warning.
-pref("browser.safebrowsing.malware.reportURL", "http://www.stopbadware.org/reports/container?source=@APP_UA_NAME@&version=@APP_VERSION@&reportname=");
+pref("browser.safebrowsing.malware.reportURL", "http://safebrowsing.clients.google.com/safebrowsing/diagnostic?client=%NAME%&hl=%LOCALE%&site=");
 
 #endif
 
 // defaults to true
 pref("browser.EULA.2.accepted", true);
 
 // if we rev the EULA again, we should bump this so users agree to the new EULA
 pref("browser.EULA.version", 2);
--- a/browser/base/content/browser-menubar.inc
+++ b/browser/base/content/browser-menubar.inc
@@ -126,17 +126,18 @@
                           key="key_paste"
                           accesskey="&pasteCmd.accesskey;"
                           command="cmd_paste"/>
                 <menuitem label="&deleteCmd.label;"
                           key="key_delete"
                           accesskey="&deleteCmd.accesskey;"
                           command="cmd_delete"/>
                 <menuseparator/>
-                <menuitem label="&selectAllCmd.label;"
+                <menuitem id="menu_selectAll"
+                          label="&selectAllCmd.label;"
                           key="key_selectAll"
                           accesskey="&selectAllCmd.accesskey;"
                           command="cmd_selectAll"/>
                 <menuseparator/>
                 <menuitem id="menu_find" label="&findOnCmd.label;" accesskey="&findOnCmd.accesskey;" key="key_find" command="cmd_find"/>
                 <menuitem label="&findAgainCmd.label;" accesskey="&findAgainCmd.accesskey;" key="key_findAgain" command="cmd_findAgain"/>
                 <menuseparator hidden="true" id="textfieldDirection-separator"/>
                 <menuitem id="textfieldDirection-swap"
--- a/browser/base/content/browser-sets.inc
+++ b/browser/base/content/browser-sets.inc
@@ -289,19 +289,22 @@
 #ifdef XP_MACOSX
          modifiers="accel,shift"
 #else
          modifiers="accel"
 #endif
          command="viewHistorySidebar"/>
 
     <key id="key_fullZoomReduce"  key="&fullZoomReduceCmd.commandkey;"   command="cmd_fullZoomReduce"  modifiers="accel"/>
+    <key                          key="&fullZoomReduceCmd.commandkey2;"  command="cmd_fullZoomReduce"  modifiers="accel"/>
     <key id="key_fullZoomEnlarge" key="&fullZoomEnlargeCmd.commandkey;"  command="cmd_fullZoomEnlarge" modifiers="accel"/>
     <key                          key="&fullZoomEnlargeCmd.commandkey2;" command="cmd_fullZoomEnlarge" modifiers="accel"/>
+    <key                          key="&fullZoomEnlargeCmd.commandkey3;" command="cmd_fullZoomEnlarge" modifiers="accel"/>
     <key id="key_fullZoomReset"   key="&fullZoomResetCmd.commandkey;"    command="cmd_fullZoomReset"   modifiers="accel"/>
+    <key                          key="&fullZoomResetCmd.commandkey2;"   command="cmd_fullZoomReset"   modifiers="accel"/>
     
     <key id="key_switchTextDirection" key="&bidiSwitchTextDirectionItem.commandkey;" command="cmd_switchTextDirection" modifiers="accel,shift" />
 
     <key id="key_sanitize" command="Tools:Sanitize" keycode="VK_DELETE" modifiers="accel,shift"/>
 #ifdef XP_MACOSX
     <key id="key_sanitize_mac" command="Tools:Sanitize" keycode="VK_BACK" modifiers="accel,shift"/>
 #endif
 #ifdef XP_UNIX
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -2319,32 +2319,33 @@ function BrowserOnCommand(event) {
       
       if (ot == errorDoc.getElementById('getMeOutButton')) {
         getMeOutOfHere();
       }
       else if (ot == errorDoc.getElementById('reportButton')) {
         // This is the "Why is this site blocked" button.  For malware,
         // we can fetch a site-specific report, for phishing, we redirect
         // to the generic page describing phishing protection.
+        var formatter = Cc["@mozilla.org/toolkit/URLFormatterService;1"]
+                       .getService(Components.interfaces.nsIURLFormatter);
+        
         if (/e=malwareBlocked/.test(errorDoc.documentURI)) {
           // Get the stop badware "why is this blocked" report url,
           // append the current url, and go there.
           try {
-            var reportURL = gPrefService.getCharPref("browser.safebrowsing.malware.reportURL");
+            var reportURL = formatter.formatURLPref("browser.safebrowsing.malware.reportURL");
             reportURL += errorDoc.location.href;
             content.location = reportURL;
           } catch (e) {
             Components.utils.reportError("Couldn't get malware report URL: " + e);
           }
         }
         else if (/e=phishingBlocked/.test(errorDoc.documentURI)) {
           try {
-            content.location = Cc["@mozilla.org/toolkit/URLFormatterService;1"]
-                              .getService(Components.interfaces.nsIURLFormatter)
-                              .formatURLPref("browser.safebrowsing.warning.infoURL");
+            content.location = formatter.formatURLPref("browser.safebrowsing.warning.infoURL");
           } catch (e) {
             Components.utils.reportError("Couldn't get phishing info URL: " + e);
           }
         }
       }
       else if (ot == errorDoc.getElementById('ignoreWarningButton')) {
         // Allow users to override and continue through to the site,
         // but add a notify bar as a reminder, so that they don't lose
@@ -6557,17 +6558,19 @@ IdentityHandler.prototype = {
       if (!this._overrideService)
         this._overrideService = Components.classes["@mozilla.org/security/certoverride;1"]
                                           .getService(Components.interfaces.nsICertOverrideService);
 
       // Verifier is either the CA Org, for a normal cert, or a special string
       // for certs that are trusted because of a security exception.
       var tooltip = this._stringBundle.getFormattedString("identity.identified.verifier",
                                                           [iData.caOrg]);
-      if (this._overrideService.hasMatchingOverride(lookupHost, iData.cert, {}, {}))
+      if (this._overrideService.hasMatchingOverride(this._lastLocation.hostname, 
+                                                    this._lastLocation.port, 
+                                                    iData.cert, {}, {}))
         tooltip = this._stringBundle.getString("identity.identified.verified_by_you");
     }
     else if (newMode == this.IDENTITY_MODE_IDENTIFIED) {
       // If it's identified, then we can populate the dialog with credentials
       iData = this.getIdentityData();  
       tooltip = this._stringBundle.getFormattedString("identity.identified.verifier",
                                                       [iData.caOrg]);
       if (iData.country)
--- a/browser/base/content/browser.xul
+++ b/browser/base/content/browser.xul
@@ -186,17 +186,18 @@
 #include browser-context.inc
     </popup>
 
     <popup id="placesContext"/>
 
     <!-- Popup for site identity information -->
     <panel id="identity-popup" position="after_start" hidden="true" noautofocus="true"
            onpopupshown="document.getElementById('identity-popup-more-info-button').focus();"
-           onpopuphidden="focusAndSelectUrlBar();" norestorefocus="true">
+           onpopuphidden="focusAndSelectUrlBar();" norestorefocus="true"
+           chromedir="&locale.dir;">
       <hbox id="identity-popup-container" align="top">
         <image id="identity-popup-icon"/>
         <vbox id="identity-popup-content-box">
           <label id="identity-popup-connectedToLabel" value="&identity.connectedTo;"/>
           <label id="identity-popup-connectedToLabel2"
                  value="&identity.unverifiedsite2;"/>
           <description id="identity-popup-content-host"/>
           <label id="identity-popup-runByLabel" value="&identity.runBy;"/>
@@ -232,17 +233,17 @@
   <tooltip id="btTooltip" noautohide="true"
            onpopupshowing="return BookmarksEventHandler.fillInBTTooltip(document.tooltipNode)">
     <vbox id="btTooltipTextBox" flex="1">
       <label id="btTitleText" />
       <label id="btUrlText" />
     </vbox>
   </tooltip>
 
-  <toolbox id="navigator-toolbox" type="drag" class="toolbox-top" mode="icons"
+  <toolbox id="navigator-toolbox" class="toolbox-top" mode="icons"
            defaultmode="icons">
     <!-- Menu -->
     <toolbar type="menubar" id="toolbar-menubar" class="chromeclass-menubar" customizable="true"
 #ifdef XP_MACOSX
              defaultset="menubar-items"
 #else
              defaultset="menubar-items,spring,throbber-box"
 #endif
@@ -316,32 +317,32 @@
                  type="autocomplete"
                  autocompletesearch="history"
                  autocompletepopup="PopupAutoCompleteRichResult"
                  completeselectedindex="true"
                  tabscrolling="true"
                  showcommentcolumn="true"
                  showimagecolumn="true"
                  enablehistory="true"
-                 timeout="100"
                  maxrows="6"
                  newlines="stripsurroundingwhitespace"
                  oninput="URLBarOnInput(event);"
                  ontextentered="return handleURLBarCommand(param);"
                  ontextreverted="return handleURLBarRevert();"
                  pageproxystate="invalid"
                  onsearchbegin="LocationBarHelpers._searchBegin();"
                  onsearchcomplete="LocationBarHelpers._searchComplete();"
                  onfocus="document.getElementById('identity-box').style.MozUserFocus= 'normal'"
                  onblur="document.getElementById('identity-box').style.MozUserFocus = 'ignore';">
           <!-- Use onclick instead of normal popup= syntax since the popup
                code fires onmousedown, and hence eats our favicon drag events.
                We only add the identity-box button to the tab order when the location bar
                has focus, otherwise pressing F6 focuses it instead of the location bar -->
           <box id="identity-box" role="button"
+               chromedir="&locale.dir;"
                onclick="getIdentityHandler().handleIdentityButtonEvent(event);"
                onkeypress="getIdentityHandler().handleIdentityButtonEvent(event);">
             <hbox align="center">
               <stack id="page-proxy-stack"
                      onclick="PageProxyClickHandler(event);">
                 <image id="urlbar-throbber" busy="false"/>
                 <image id="page-proxy-favicon" validate="never"
                        ondraggesture="PageProxyDragGesture(event);"
--- a/browser/base/content/credits.xhtml
+++ b/browser/base/content/credits.xhtml
@@ -212,222 +212,280 @@
         <div class="links">
           &credit.thanks2; <a href="" link="about:credits" onclick="visitLink(event);">&credit.contributors2;</a>
         </div>
 
         <div class="creditsGroup">
           <ul>
             <li>Josh Aas</li>
             <li>Robert Accettura</li>
+            <li>Ehsan Akhgari</li>
+            <li>Sean Alamares</li>
+            <li>Harvey Anderson</li>
+            <li>Smokey Ardisson</li>
+            <li>Rob Arnold</li>
             <li>Tomoya Asai</li>
             <li>Dietrich Ayala</li>
             <li>Mitchell Baker</li>
-            <li>Adam Barea</li>
+            <li>Rhian Baker</li>
+            <li>Jan Bambas</li>
             <li>Jason Barnabe</li>
             <li>David Baron</li>
+            <li>Colin Barrett</li>
             <li>Christopher Beard</li>
             <li>Glen Beasley</li>
             <li>Juan Becerra</li>
             <li>Brian Behlendorf</li>
             <li>Mike Beltzner</li>
             <li>Mic Berman</li>
             <li>Uri Bernstein</li>
             <li>Christian Biesinger</li>
+            <li>Al Billings</li>
             <li>Seth Bindernagel</li>
             <li>Chris Blizzard</li>
             <li>Jamey Boje</li>
             <li>Nelson Bolyard</li>
+            <li>Marco Bonardo</li>
             <li>Carsten Book</li>
             <li>Paul Booker</li>
+            <li>Dan Born</li>
+            <li>Ondřej Brablc</li>
+            <li>Catherine Brady</li>
+            <li>Dave Bragsalla</li>
             <li>Igor Bukanov</li>
             <li>Simon Bünzli</li>
+            <li>Lapo Calamandrei</li>
+            <li>Dave Camp</li>
             <li>Rob Campbell</li>
             <li>Regis Caspar</li>
-            <li>Marco Casteleijn</li>
-            <li>Biswatosh Chakraborty</li>
+            <li>Garrett Casto</li>
             <li>Tony Chang</li>
             <li>Wan-Teh Chang</li>
+            <li>Emily Chen</li>
             <li>Ginn Chen</li>
             <li>Pascal Chevrel</li>
+            <li>Tony Chung</li>
             <li>Bob Clary</li>
             <li>Wil Clouser</li>
             <li>Mary Colvig</li>
             <li>Majken Connor</li>
             <li>Mike Connor</li>
             <li>Chris Cooper</li>
-            <li>Michael Daumling</li>
+            <li>Brian Crowder</li>
+            <li>John Daggett</li>
+            <li>Michael Davis</li>
             <li>Neil Deakin</li>
-            <li>Sherman Dickman</li>
+            <li>Julie Deroche</li>
+            <li>Justin Dolske</li>
             <li>Stephen Donner</li>
             <li>Asa Dotzler</li>
-            <li>Rafael Ebron</li>
+            <li>Chris Double</li>
             <li>Brendan Eich</li>
-            <li>Ximon Eighteen</li>
             <li>Kai Engert</li>
             <li>Steve England</li>
+            <li>Madhava Enros</li>
+            <li>Eleka Etimad</li>
+            <li>Jason Evans</li>
+            <li>Alex Faaborg</li>
+            <li>Jane Finette</li>
+            <li>Mark Finkle</li>
             <li>Darin Fisher</li>
             <li>Jayson Fittipaldi</li>
             <li>Justin Fitzhugh</li>
             <li>Ryan Flint</li>
-            <li>Justin Frankel</li>
-            <li>Simon Fraser</li>
+            <li>Alix Franquet</li>
             <li>Eli Friedman</li>
-            <li>Alex Fritze</li>
-            <li>Lisa Gansky</li>
-            <li>Mike Gao</li>
             <li>Steven Garrity</li>
-            <li>Michael Glenn</li>
-            <li>Jay Goldman</li>
-            <li>Ben Goodger</li>
+            <li>Kevin Gerich</li>
+            <li>Taras Glek</li>
+            <li>Aravind Gottipati</li>
             <li>Dão Gottwald</li>
             <li>Zak Greant</li>
-            <li>Pam Greene</li>
+            <li>Matthew Gregan</li>
             <li>Adam Guthrie</li>
-            <li>Vidar Haarr</li>
             <li>Andrei Hajdukewycz</li>
-            <li>Mark Hammond</li>
+            <li>Trevor Hardcastle</li>
             <li>Basil Hashem</li>
             <li>Ian Hayward</li>
+            <li>Ben Hearsum</li>
             <li>Axel Hecht</li>
             <li>Frank Hecker</li>
             <li>Robert Helmer</li>
             <li>Jon Hicks</li>
-            <li>Ian Hickson</li>
             <li>Graydon Hoare</li>
             <li>Chris Hofmann</li>
+            <li>Timothy Hogan</li>
+            <li>Daniel Holbert</li>
             <li>Mike Hommey</li>
-            <li>Joe Hughes</li>
-            <li>Ed Hume</li>
-            <li>Ivan Icin</li>
+            <li>Stephen Horlander</li>
+            <li>David Humphrey</li>
+            <li>Takeshi Ichimaru</li>
+            <li>Chris Ilias</li>
+            <li>Eri Inoue </li>
             <li>Joichi Ito</li>
+            <li>Laurent Jouanneau</li>
             <li>Gen Kanai</li>
+            <li>Masanori Kaneko</li>
             <li>Blake Kaplan</li>
             <li>Michael Kaply</li>
             <li>Mitch Kapor</li>
-            <li>Peter Kasting</li>
+            <li>Kazuyoshi Kato</li>
             <li>Alfred Kayser</li>
             <li>Paul Kim</li>
             <li>Masatoshi Kimura</li>
             <li>Ria Klaassen</li>
-            <li>Andrea Knight</li>
             <li>Marcia Knous</li>
-            <li>Dave Laundon</li>
+            <li>Gary Kwong</li>
+            <li>David Lanham</li>
+            <li>Edward Lee</li>
             <li>Raymond Lee</li>
+            <li>Garrett LeSage</li>
             <li>Aaron Leventhal</li>
-            <li>Mark Liddell</li>
-            <li>Dave Liebreich</li>
             <li>Anne-Julie Ligneau</li>
             <li>John Lilly</li>
             <li>Zach Lipton</li>
-            <li>Nian Liu</li>
+            <li>Kai Liu</li>
             <li>Reed Loden</li>
+            <li>Lars Lohn</li>
             <li>Robert Longson</li>
-            <li>Scott MacGregor</li>
+            <li>Bob Lord</li>
+            <li>Phil Machalski</li>
             <li>Ere Maijala</li>
             <li>Gervase Markham</li>
             <li>Sean Martell</li>
+            <li>Jim Mathies</li>
             <li>Heather Meeker</li>
             <li>Myk Melez</li>
+            <li>Federico Mena-Quintero</li>
             <li>Mark Mentovai</li>
-            <li>Alex Menzies</li>
             <li>Steven Michaud</li>
+            <li>Ted Mielczarek</li>
             <li>Bernd Mielke</li>
-            <li>Joey Minta</li>
+            <li>Dave Miller</li>
+            <li>Dan Mills</li>
+            <li>Michael Monreal</li>
             <li>Simon Montagu</li>
             <li>Mike Morgan</li>
-            <li>Scooter Morris</li>
+            <li>Dan Mosedale</li>
+            <li>Michael Moy</li>
             <li>Masayuki Nakano</li>
             <li>Marria Nazif</li>
-            <li>Ian Neal</li>
+            <li>Kev Needham</li>
             <li>Kaori Negoro</li>
+            <li>Johnathan Nightingale</li>
+            <li>Andreas Nilsson</li>
             <li>Tristan Nitot</li>
             <li>Alice Nodelman</li>
+            <li>Michal Novotny</li>
             <li>Robert O'Callahan</li>
+            <li>John O'Duinn</li>
+            <li>Jan Odvárko</li>
+            <li>Tomoyuki Okazaki</li>
+            <li>Jeremy Orem</li>
+            <li>Hideo Oshima</li>
             <li>Mats Palmgren</li>
             <li>Stuart Parmenter</li>
             <li>Jay Patel</li>
-            <li>Igor Pavlov</li>
+            <li>Chris Pearce</li>
             <li>Javier Pedemonte</li>
             <li>Alfred Peng</li>
             <li>Christian Persch</li>
+            <li>Kalle Persson</li>
+            <li>Ulisse Perusin</li>
             <li>Olli Pettay</li>
-            <li>Chase Phillips</li>
             <li>Julien Pierre</li>
-            <li>Mark Pilgrim</li>
-            <li>Mike Pinkerton</li>
             <li>Alex Polvi</li>
             <li>Nickolay Ponomarev</li>
+            <li>Dan Portillo</li>
             <li>Karen Prescott</li>
-            <li>Feng Qian</li>
-            <li>Robert Rainwater</li>
-            <li>Brian Rakowski</li>
+            <li>Florian Quèze</li>
             <li>Neil Rashbrook</li>
+            <li>Bret Reckard</li>
             <li>J. Paul Reed</li>
             <li>Robert Relyea</li>
+            <li>John Resig</li>
             <li>Deb Richardson</li>
             <li>Tim Riley</li>
             <li>Phil Ringnalda</li>
+            <li>Julien Rivaud</li>
             <li>David Rolnitzky</li>
             <li>Asaf Romano</li>
-            <li>Doron Rosenberg</li>
-            <li>Blake Ross</li>
-            <li>James Ross</li>
             <li>Tim Rowley</li>
-            <li>Cameron Roy</li>
             <li>Jesse Ruderman</li>
             <li>Brian Ryner</li>
             <li>Alexander Sack</li>
             <li>Hideo Saito</li>
+            <li>Eiko Sakuma</li>
             <li>Ken Saunders</li>
             <li>Robert Sayre</li>
-            <li>Fritz Schneider</li>
             <li>Mike Schroepfer</li>
-            <li>Phil Schwan</li>
+            <li>Kurt Schultz</li>
             <li>Justin Scott</li>
-            <li>Chris Seawood</li>
-            <li>Leon Sha</li>
+            <li>Hiroshi Sekiya</li>
+            <li>Tara Shahian</li>
+            <li>Melissa Shapiro</li>
             <li>Gavin Sharp</li>
             <li>Mike Shaver</li>
             <li>Eric Shepherd</li>
-            <li>Hiroshi Shimoda</li>
+            <li>Atsushi Shimono</li>
             <li>Jungshik Shin</li>
             <li>Jonas Sicking</li>
+            <li>Damon Sicore</li>
             <li>Roger B. Sidje</li>
+            <li>Samuel Sidler</li>
+            <li>Henrik Skupin</li>
+            <li>John Slater</li>
             <li>Benjamin Smedberg</li>
-            <li>Jon Smirl</li>
+            <li>Andrew Smith</li>
+            <li>Mark Smith</li>
+            <li>Window Snyder</li>
             <li>Josh Soref</li>
+            <li>Ian Spence</li>
             <li>Seth Spitzer</li>
+            <li>Markus Stange</li>
+            <li>Jakub Steiner</li>
             <li>Johnny Stenback</li>
-            <li>Luke Stone</li>
+            <li>Brandon Sterne</li>
             <li>Robert Strong</li>
-            <li>Annie Sullivan</li>
-            <li>Amir Szekely</li>
+            <li>Vicky Sun</li>
+            <li>Clint Talbert</li>
+            <li>David Tenser</li>
+            <li>Chris Thomas</li>
+            <li>Nick Thomas</li>
+            <li>Laura Thomson</li>
+            <li>Karl Tomlinson</li>
             <li>Dave Townsend</li>
-            <li>Chris Thomas</li>
             <li>Ben Turner</li>
             <li>Doug Turner</li>
             <li>Peter Van der Beken</li>
             <li>Peter van der Woude</li>
+            <li>Teune van Steeg</li>
+            <li>Ryan VanderMeulen</li>
             <li>Daniel Veditz</li>
             <li>Michael Ventnor</li>
-            <li>Joost Verburg</li>
-            <li>Jorge Villalobos</li>
             <li>Alexei Volkov</li>
             <li>Vladimir Vukicevic</li>
             <li>Håkan Waara</li>
             <li>Jeff Walden</li>
             <li>Tracy Walker</li>
             <li>Martijn Wargers</li>
             <li>Jonathan Watt</li>
+            <li>Frédéric Wenzel</li>
             <li>Steffen Wilberg</li>
-            <li>Brett Wilson</li>
+            <li>Shawn Wilsher</li>
+            <li>Dan Witte</li>
+            <li>Steve Won</li>
             <li>Michael Wu</li>
+            <li>Masahiro Yamada</li>
             <li>Satoko Takita Yamaguchi (Chibi)</li>
+            <li>Christine Yen</li>
             <li>Kohei Yoshino</li>
+            <li>Shigeru Yoshitake</li>
             <li>Boris Zbarsky</li>
+            <li>Matthew Zeier</li>
           </ul>
 
           &credit.translation;
         </div>
 
         <!-- organizational supporters -->
         <div class="creditsGroup">
           <h3>&credit.thanks;</h3>
--- a/browser/base/content/downloadManagerOverlay.xul
+++ b/browser/base/content/downloadManagerOverlay.xul
@@ -41,19 +41,24 @@
          xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
          xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
 
 <window id="downloadManager">
 
 #include browserMountPoints.inc
 
 <script type="application/javascript"><![CDATA[
-  // Bug 405696: Map Edit->Find command to the download manger's command
   window.addEventListener("load", function(event) {
+    // Bug 405696: Map Edit -> Find command to the download manager's command
     var findMenuItem = document.getElementById("menu_find");
     findMenuItem.setAttribute("command", "cmd_findDownload");
     findMenuItem.setAttribute("key", "key_findDownload");
+
+    // Bug 429614: Map Edit -> Select All command to download manager's command
+    let selectAllMenuItem = document.getElementById("menu_selectAll");
+    selectAllMenuItem.setAttribute("command", "cmd_selectAllDownloads");
+    selectAllMenuItem.setAttribute("key", "key_selectAllDownloads");
   }, false);
 ]]></script>
 
 </window>
 
 </overlay>
--- a/browser/base/content/utilityOverlay.js
+++ b/browser/base/content/utilityOverlay.js
@@ -199,22 +199,44 @@ function openUILinkIn( url, where, allow
 {
   if (!where || !url)
     return;
 
   if (where == "save") {
     saveURL(url, null, null, true, null, referrerUrl);
     return;
   }
+  const Cc = Components.classes;
+  const Ci = Components.interfaces;
 
   var w = getTopWin();
 
   if (!w || where == "window") {
-    openDialog(getBrowserURL(), "_blank", "chrome,all,dialog=no", url,
-               null, referrerUrl, postData, allowThirdPartyFixup);
+    var sa = Cc["@mozilla.org/supports-array;1"].
+             createInstance(Ci.nsISupportsArray);
+
+    var wuri = Cc["@mozilla.org/supports-string;1"].
+               createInstance(Ci.nsISupportsString);
+    wuri.data = url;
+
+    sa.AppendElement(wuri);
+    sa.AppendElement(null);
+    sa.AppendElement(referrerUrl);
+    sa.AppendElement(postData);
+    sa.AppendElement(allowThirdPartyFixup);
+
+    var ww = Cc["@mozilla.org/embedcomp/window-watcher;1"].
+             getService(Ci.nsIWindowWatcher);
+
+    ww.openWindow(w || window,
+                  getBrowserURL(),
+                  null,
+                  "chrome,dialog=no,all",
+                  sa);
+
     return;
   }
 
   var loadInBackground = getBoolPref("browser.tabs.loadBookmarksInBackground", false);
 
   switch (where) {
   case "current":
     w.loadURI(url, referrerUrl, postData, allowThirdPartyFixup);
--- a/browser/components/migration/src/nsSeamonkeyProfileMigrator.cpp
+++ b/browser/components/migration/src/nsSeamonkeyProfileMigrator.cpp
@@ -45,16 +45,17 @@
 #include "nsIPrefService.h"
 #include "nsIServiceManager.h"
 #include "nsISupportsArray.h"
 #include "nsISupportsPrimitives.h"
 #include "nsNetCID.h"
 #include "nsNetUtil.h"
 #include "nsSeamonkeyProfileMigrator.h"
 #include "nsVoidArray.h"
+#include "nsIProfileMigrator.h"
 
 ///////////////////////////////////////////////////////////////////////////////
 // nsSeamonkeyProfileMigrator
 
 #define FILE_NAME_BOOKMARKS       NS_LITERAL_STRING("bookmarks.html")
 #define FILE_NAME_COOKIES         NS_LITERAL_STRING("cookies.txt")
 #define FILE_NAME_SITEPERM_OLD    NS_LITERAL_STRING("cookperm.txt")
 #define FILE_NAME_SITEPERM_NEW    NS_LITERAL_STRING("hostperm.1")
@@ -98,16 +99,25 @@ nsSeamonkeyProfileMigrator::Migrate(PRUi
 
   NOTIFY_OBSERVERS(MIGRATION_STARTED, nsnull);
 
   COPY_DATA(CopyPreferences,  aReplace, nsIBrowserProfileMigrator::SETTINGS);
   COPY_DATA(CopyCookies,      aReplace, nsIBrowserProfileMigrator::COOKIES);
   COPY_DATA(CopyHistory,      aReplace, nsIBrowserProfileMigrator::HISTORY);
   COPY_DATA(CopyPasswords,    aReplace, nsIBrowserProfileMigrator::PASSWORDS);
   COPY_DATA(CopyOtherData,    aReplace, nsIBrowserProfileMigrator::OTHERDATA);
+
+  // Need to do startup before trying to copy bookmarks, since bookmarks
+  // import requires a profile. Can't do it earlier because services might
+  // end up creating the files we try to copy above.
+  if (aStartup) {
+    rv = aStartup->DoStartup();
+    NS_ENSURE_SUCCESS(rv, rv);
+  }
+
   COPY_DATA(CopyBookmarks,    aReplace, nsIBrowserProfileMigrator::BOOKMARKS);
 
   if (aReplace && 
       (aItems & nsIBrowserProfileMigrator::SETTINGS || 
        aItems & nsIBrowserProfileMigrator::COOKIES || 
        aItems & nsIBrowserProfileMigrator::PASSWORDS ||
        !aItems)) {
     // Permissions (Images, Cookies, Popups)
@@ -719,20 +729,35 @@ nsSeamonkeyProfileMigrator::CopyPassword
   }
   return rv;
 }
 
 nsresult
 nsSeamonkeyProfileMigrator::CopyBookmarks(PRBool aReplace)
 {
   if (aReplace) {
+    // Initialize the default bookmarks
     nsresult rv = InitializeBookmarks(mTargetProfile);
     NS_ENSURE_SUCCESS(rv, rv);
-    return CopyFile(FILE_NAME_BOOKMARKS, FILE_NAME_BOOKMARKS);
+
+    // Merge in the bookmarks from the source profile
+    nsCOMPtr<nsIFile> sourceFile;
+    mSourceProfile->Clone(getter_AddRefs(sourceFile));
+    sourceFile->Append(FILE_NAME_BOOKMARKS);
+    rv = ImportBookmarksHTML(sourceFile, PR_TRUE, PR_FALSE, EmptyString().get());
+    NS_ENSURE_SUCCESS(rv, rv);
+
+    // we need to set this pref so that on startup
+    // we don't blow away what we just imported
+    nsCOMPtr<nsIPrefBranch> pref(do_GetService(NS_PREFSERVICE_CONTRACTID, &rv));
+    NS_ENSURE_SUCCESS(rv, rv);
+
+    return pref->SetBoolPref("browser.places.importBookmarksHTML", PR_FALSE);
   }
+
   return ImportNetscapeBookmarks(FILE_NAME_BOOKMARKS, 
                                  NS_LITERAL_STRING("sourceNameSeamonkey").get());
 }
 
 nsresult
 nsSeamonkeyProfileMigrator::CopyOtherData(PRBool aReplace)
 {
   return aReplace ? CopyFile(FILE_NAME_DOWNLOADS, FILE_NAME_DOWNLOADS) : NS_OK;
--- a/browser/components/nsBrowserGlue.js
+++ b/browser/components/nsBrowserGlue.js
@@ -462,22 +462,24 @@ BrowserGlue.prototype = {
         else
           var bookmarksFile = dirService.get("BMarks", Ci.nsILocalFile);
 
         // import the file
         try {
           var importer = Cc["@mozilla.org/browser/places/import-export-service;1"].
                          getService(Ci.nsIPlacesImportExportService);
           importer.importHTMLFromFile(bookmarksFile, true /* overwrite existing */);
-        } finally {
-          prefBranch.setBoolPref("browser.places.importBookmarksHTML", false);
-          if (restoreDefaultBookmarks)
-            prefBranch.setBoolPref("browser.bookmarks.restore_default_bookmarks",
-                                   false);
+        } catch (err) {
+          // Report the error, but ignore it.
+          Cu.reportError(err);
         }
+        prefBranch.setBoolPref("browser.places.importBookmarksHTML", false);
+        if (restoreDefaultBookmarks)
+          prefBranch.setBoolPref("browser.bookmarks.restore_default_bookmarks",
+                                 false);
       }
     }
 
     // Initialize bookmark archiving on idle.
     // Once a day, either on idle or shutdown, bookmarks are backed up.
     this.idleService.addIdleObserver(this, BOOKMARKS_ARCHIVE_IDLE_TIME);
   },
 
--- a/browser/components/places/content/bookmarkProperties.js
+++ b/browser/components/places/content/bookmarkProperties.js
@@ -17,16 +17,17 @@
  * The Initial Developer of the Original Code is Google Inc.
  * Portions created by the Initial Developer are Copyright (C) 2006
  * the Initial Developer. All Rights Reserved.
  *
  * Contributor(s):
  *   Joe Hughes <jhughes@google.com>
  *   Dietrich Ayala <dietrich@mozilla.com>
  *   Asaf Romano <mano@mozilla.com>
+ *   Marco Bonardo <mak77@supereva.it>
  *
  * Alternatively, the contents of this file may be used under the terms of
  * either the GNU General Public License Version 2 or later (the "GPL"), or
  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
  * in which case the provisions of the GPL or the LGPL are applicable instead
  * of those above. If you wish to allow use of your version of this file only
  * under the terms of either the GPL or the LGPL, and not to allow others to
  * use your version of this file under the terms of the MPL, indicate your
@@ -65,27 +66,27 @@
  *           with the given uri. If the dialog is set to adding a folder with
  *           bookmark items under it (see URIList), a default static title is
  *           used ("[Folder Name]").
  *        2) The index field of the the default insertion point is ignored if
  *           the folder picker is shown.
  *     - "edit" - for editing a bookmark item or a folder.
  *       @ type (String). Possible values:
  *         - "bookmark"
- *           @ bookmarkId (Integer) - the id of the bookmark item.
+ *           @ itemId (Integer) - the id of the bookmark item.
  *         - "folder" (also applies to livemarks)
- *           @ folderId (Integer) - the id of the folder.
+ *           @ itemId (Integer) - the id of the folder.
  *   @ hiddenRows (Strings array) - optional, list of rows to be hidden
  *     regardless of the item edited or added by the dialog.
  *     Possible values:
  *     - "title"
  *     - "location"
  *     - "description"
  *     - "keyword"
- *     - "load in sidebar"
+ *     - "loadInSidebar"
  *     - "feedURI"
  *     - "siteURI"
  *     - "folder picker" - hides both the tree and the menu.
  *
  * window.arguments[0].performed is set to true if any transaction has
  * been performed by the dialog.
  */
 
@@ -110,19 +111,18 @@ var BookmarkPropertiesPanel = {
     if (!this.__strings) {
       this.__strings = document.getElementById("stringBundle");
     }
     return this.__strings;
   },
 
   _action: null,
   _itemType: null,
-  _folderId: null,
-  _bookmarkId: -1,
-  _bookmarkURI: null,
+  _itemId: -1,
+  _uri: null,
   _loadBookmarkInSidebar: false,
   _itemTitle: "",
   _itemDescription: "",
   _microsummaries: null,
   _URIList: null,
   _postData: null,
   _charSet: "",
 
@@ -196,24 +196,24 @@ var BookmarkPropertiesPanel = {
 
       switch(dialogInfo.type) {
         case "bookmark":
           this._action = ACTION_ADD;
           this._itemType = BOOKMARK_ITEM;
           if ("uri" in dialogInfo) {
             NS_ASSERT(dialogInfo.uri instanceof Ci.nsIURI,
                       "uri property should be a uri object");
-            this._bookmarkURI = dialogInfo.uri;
+            this._uri = dialogInfo.uri;
           }
           if (typeof(this._itemTitle) != "string") {
-            if (this._bookmarkURI) {
+            if (this._uri) {
               this._itemTitle =
-                this._getURITitleFromHistory(this._bookmarkURI);
+                this._getURITitleFromHistory(this._uri);
               if (!this._itemTitle)
-                this._itemTitle = this._bookmarkURI.spec;
+                this._itemTitle = this._uri.spec;
             }
             else
               this._itemTitle = this._strings.getString("newBookmarkDefault");
           }
 
           if ("loadBookmarkInSidebar" in dialogInfo)
             this._loadBookmarkInSidebar = dialogInfo.loadBookmarkInSidebar;
 
@@ -263,57 +263,55 @@ var BookmarkPropertiesPanel = {
         this._itemDescription = dialogInfo.description;
     }
     else { // edit
       const annos = PlacesUtils.annotations;
       const bookmarks = PlacesUtils.bookmarks;
 
       switch (dialogInfo.type) {
         case "bookmark":
-          NS_ASSERT("bookmarkId" in dialogInfo);
+          NS_ASSERT("itemId" in dialogInfo);
 
           this._action = ACTION_EDIT;
           this._itemType = BOOKMARK_ITEM;
-          this._bookmarkId = dialogInfo.bookmarkId;
+          this._itemId = dialogInfo.itemId;
 
-          this._bookmarkURI = bookmarks.getBookmarkURI(this._bookmarkId);
-          this._itemTitle = bookmarks.getItemTitle(this._bookmarkId);
+          this._uri = bookmarks.getBookmarkURI(this._itemId);
+          this._itemTitle = bookmarks.getItemTitle(this._itemId);
 
           // keyword
           this._bookmarkKeyword =
-            bookmarks.getKeywordForBookmark(this._bookmarkId);
+            bookmarks.getKeywordForBookmark(this._itemId);
 
           // Load In Sidebar
           this._loadBookmarkInSidebar =
-            annos.itemHasAnnotation(this._bookmarkId, LOAD_IN_SIDEBAR_ANNO);
+            annos.itemHasAnnotation(this._itemId, LOAD_IN_SIDEBAR_ANNO);
 
           break;
         case "folder":
-          NS_ASSERT("folderId" in dialogInfo);
+          NS_ASSERT("itemId" in dialogInfo);
 
           this._action = ACTION_EDIT;
-          this._folderId = dialogInfo.folderId;
+          this._itemId = dialogInfo.itemId;
 
           const livemarks = PlacesUtils.livemarks;
-          if (livemarks.isLivemark(this._folderId)) {
+          if (livemarks.isLivemark(this._itemId)) {
             this._itemType = LIVEMARK_CONTAINER;
-            this._feedURI = livemarks.getFeedURI(this._folderId);
-            this._siteURI = livemarks.getSiteURI(this._folderId);
+            this._feedURI = livemarks.getFeedURI(this._itemId);
+            this._siteURI = livemarks.getSiteURI(this._itemId);
           }
           else
             this._itemType = BOOKMARK_FOLDER;
-          this._itemTitle = bookmarks.getItemTitle(this._folderId);
+          this._itemTitle = bookmarks.getItemTitle(this._itemId);
           break;
       }
 
       // Description
-      // XXXmano: unify the two id fields
-      var itemId = dialogInfo.type == "bookmark" ? this._bookmarkId : this._folderId;
-      if (annos.itemHasAnnotation(itemId, DESCRIPTION_ANNO)) {
-        this._itemDescription = annos.getItemAnnotation(itemId,
+      if (annos.itemHasAnnotation(this._itemId, DESCRIPTION_ANNO)) {
+        this._itemDescription = annos.getItemAnnotation(this._itemId,
                                                         DESCRIPTION_ANNO);
       }
     }
   },
 
   /**
    * This method returns the title string corresponding to a given URI.
    * If none is available from the bookmark service (probably because
@@ -334,17 +332,16 @@ var BookmarkPropertiesPanel = {
 
   /**
    * This method should be called by the onload of the Bookmark Properties
    * dialog to initialize the state of the panel.
    */
   onDialogLoad: function BPP_onDialogLoad() {
     this._determineItemInfo();
     this._populateProperties();
-    this._forceHideRows();
     this.validateChanges();
 
     this._folderMenuList = this._element("folderMenuList");
     this._folderTree = this._element("folderTree");
     if (!this._element("folderRow").hidden)
       this._initFolderMenuList();
 
     window.sizeToContent();
@@ -448,81 +445,76 @@ var BookmarkPropertiesPanel = {
     throw Cr.NS_ERROR_NO_INTERFACE;
   },
 
   _element: function BPP__element(aID) {
     return document.getElementById(aID);
   },
 
   /**
-   * Hides fields which were explicitly set hidden by the the dialog opener
-   * (see documentation at the top of this file).
+   * Show or hides fields based on item type.
    */
-  _forceHideRows: function BPP__forceHideRows() {
-    var hiddenRows = window.arguments[0].hiddenRows;
-    if (!hiddenRows)
-      return;
+  _showHideRows: function BPP__showHideRows() {
+    var hiddenRows = window.arguments[0].hiddenRows || new Array();
+
+    var isBookmark = this._itemType == BOOKMARK_ITEM;
+    var isLivemark = this._itemType == LIVEMARK_CONTAINER;
+
+    var isQuery = false;
+    if (this._uri)
+      isQuery = this._uri.schemeIs("place");
 
-    if (hiddenRows.indexOf("title") != -1)
-      this._element("namePicker").hidden = true;
-    if (hiddenRows.indexOf("location") != -1)
-      this._element("locationRow").hidden = true;
-    if (hiddenRows.indexOf("keyword") != -1)
-      this._element("keywordRow").hidden = true;
-    if (hiddenRows.indexOf("description")!= -1)
-      this._element("descriptionRow").hidden = true;
-    if (hiddenRows.indexOf("folder picker") != -1)
-      this._element("folderRow").hidden = true;
-    if (hiddenRows.indexOf("feedURI") != -1)
-      this._element("livemarkFeedLocationRow").hidden = true;
-    if (hiddenRows.indexOf("siteURI") != -1)
-      this._element("livemarkSiteLocationRow").hidden = true;
-    if (hiddenRows.indexOf("load in sidebar") != -1)
-      this._element("loadInSidebarCheckbox").hidden = true;
+    this._element("namePicker").hidden =
+      hiddenRows.indexOf("title") != -1;
+    this._element("locationRow").hidden =
+      hiddenRows.indexOf("location") != -1 || isQuery || !isBookmark;
+    this._element("keywordRow").hidden =
+      hiddenRows.indexOf("location") != -1 || isQuery || !isBookmark;
+    this._element("descriptionRow").hidden =
+      hiddenRows.indexOf("description")!= -1
+    this._element("folderRow").hidden =
+      hiddenRows.indexOf("folder picker") != -1 || isQuery ||
+      isLivemark || this._action == ACTION_EDIT;
+    this._element("livemarkFeedLocationRow").hidden =
+      hiddenRows.indexOf("feedURI") != -1 || !isLivemark;
+    this._element("livemarkSiteLocationRow").hidden =
+      hiddenRows.indexOf("siteURI") != -1 || !isLivemark;
+    this._element("loadInSidebarCheckbox").hidden =
+      hiddenRows.indexOf("loadInSidebar") != -1 || isQuery || !isBookmark;
   },
 
   /**
    * This method fills in the data values for the fields in the dialog.
    */
   _populateProperties: function BPP__populateProperties() {
     document.title = this._getDialogTitle();
     document.documentElement.getButton("accept").label = this._getAcceptLabel();
 
     this._initNamePicker();
     this._element("descriptionTextfield").value = this._itemDescription;
 
     if (this._itemType == BOOKMARK_ITEM) {
-      if (this._bookmarkURI)
-        this._element("editURLBar").value = this._bookmarkURI.spec;
+      if (this._uri)
+        this._element("editURLBar").value = this._uri.spec;
 
       if (typeof(this._bookmarkKeyword) == "string")
         this._element("keywordTextfield").value = this._bookmarkKeyword;
 
       if (this._loadBookmarkInSidebar)
         this._element("loadInSidebarCheckbox").checked = true;
     }
-    else {
-      this._element("locationRow").hidden = true;
-      this._element("keywordRow").hidden = true;
-      this._element("loadInSidebarCheckbox").hidden = true;
-    }
 
     if (this._itemType == LIVEMARK_CONTAINER) {
       if (this._feedURI)
         this._element("feedLocationTextfield").value = this._feedURI.spec;
       if (this._siteURI)
         this._element("feedSiteLocationTextfield").value = this._siteURI.spec;
     }
-    else {
-      this._element("livemarkFeedLocationRow").hidden = true;
-      this._element("livemarkSiteLocationRow").hidden = true;
-    }
 
-    if (this._action == ACTION_EDIT)
-      this._element("folderRow").hidden = true;
+    this._showHideRows();
   },
 
   _createMicrosummaryMenuItem:
   function BPP__createMicrosummaryMenuItem(aMicrosummary) {
     var menuItem = document.createElement("menuitem");
 
     // Store a reference to the microsummary in the menu item, so we know
     // which microsummary this menu item represents when it's time to
@@ -549,34 +541,34 @@ var BookmarkPropertiesPanel = {
     return menuItem;
   },
 
   _initNamePicker: function BPP_initNamePicker() {
     var userEnteredNameField = this._element("userEnteredName");
     var namePicker = this._element("namePicker");
     const annos = PlacesUtils.annotations;
 
-    if (annos.itemHasAnnotation(this._bookmarkId, STATIC_TITLE_ANNO)) {
-      userEnteredNameField.label = annos.getItemAnnotation(this._bookmarkId,
+    if (annos.itemHasAnnotation(this._itemId, STATIC_TITLE_ANNO)) {
+      userEnteredNameField.label = annos.getItemAnnotation(this._itemId,
                                                            STATIC_TITLE_ANNO);
     }
     else
       userEnteredNameField.label = this._itemTitle;
 
     // Non-bookmark items always use the item-title itself
-    if (this._itemType != BOOKMARK_ITEM || !this._bookmarkURI) {
+    if (this._itemType != BOOKMARK_ITEM || !this._uri) {
       namePicker.selectedItem = userEnteredNameField;
       return;
     }
 
     var itemToSelect = userEnteredNameField;
     try {
       this._microsummaries =
-        PlacesUIUtils.microsummaries.getMicrosummaries(this._bookmarkURI,
-                                                       this._bookmarkId);
+        PlacesUIUtils.microsummaries.getMicrosummaries(this._uri,
+                                                       this._itemId);
     }
     catch(ex) {
       // getMicrosummaries will throw an exception if the page to which the URI
       // refers isn't HTML or XML (the only two content types the service knows
       // how to summarize).
       this._microsummaries = null;
     }
     if (this._microsummaries) {
@@ -589,17 +581,17 @@ var BookmarkPropertiesPanel = {
         var menupopup = namePicker.menupopup;
         while (enumerator.hasMoreElements()) {
           var microsummary = enumerator.getNext()
                                        .QueryInterface(Ci.nsIMicrosummary);
           var menuItem = this._createMicrosummaryMenuItem(microsummary);
 
           if (this._action == ACTION_EDIT &&
               PlacesUIUtils.microsummaries
-                           .isMicrosummary(this._bookmarkId, microsummary))
+                           .isMicrosummary(this._itemId, microsummary))
             itemToSelect = menuItem;
 
           menupopup.appendChild(menuItem);
         }
       }
 
       this._microsummaries.addObserver(this);
     }
@@ -795,21 +787,17 @@ var BookmarkPropertiesPanel = {
 
   /**
    * Dialog-accept code path when editing an item (any type).
    *
    * Save any changes that might have been made while the properties dialog
    * was open.
    */
   _saveChanges: function BPP__saveChanges() {
-    var itemId;
-    if (this._itemType == BOOKMARK_ITEM)
-      itemId = this._bookmarkId;
-    else
-      itemId = this._folderId;
+    var itemId = this._itemId;
 
     var transactions = [];
 
     // title
     var newTitle = this._element("userEnteredName").label;
     if (newTitle != this._itemTitle)
       transactions.push(this._getEditTitleTransaction(itemId, newTitle));
 
@@ -819,17 +807,17 @@ var BookmarkPropertiesPanel = {
       transactions.push(PlacesUIUtils.ptm.
                         editItemDescription(itemId, description,
                         this._itemType != BOOKMARK_ITEM));
     }
 
     if (this._itemType == BOOKMARK_ITEM) {
       // location
       var url = PlacesUIUtils.createFixedURI(this._element("editURLBar").value);
-      if (!this._bookmarkURI.equals(url))
+      if (!this._uri.equals(url))
         transactions.push(PlacesUIUtils.ptm.editBookmarkURI(itemId, url));
 
       // keyword transactions
       var newKeyword = this._element("keywordTextfield").value;
       if (newKeyword != this._bookmarkKeyword) {
         transactions.push(PlacesUIUtils.ptm.
                           editBookmarkKeyword(itemId, newKeyword));
       }
@@ -859,29 +847,29 @@ var BookmarkPropertiesPanel = {
           PlacesUIUtils.ptm.setLoadInSidebar(itemId, loadInSidebarChecked));
       }
     }
     else if (this._itemType == LIVEMARK_CONTAINER) {
       var feedURIString = this._element("feedLocationTextfield").value;
       var feedURI = PlacesUIUtils.createFixedURI(feedURIString);
       if (!this._feedURI.equals(feedURI)) {
         transactions.push(
-          PlacesUIUtils.ptm.editLivemarkFeedURI(this._folderId, feedURI));
+          PlacesUIUtils.ptm.editLivemarkFeedURI(this._itemId, feedURI));
       }
 
       // Site Location is empty, we can set its URI to null
       var newSiteURIString = this._element("feedSiteLocationTextfield").value;
       var newSiteURI = null;
       if (newSiteURIString)
         newSiteURI = PlacesUIUtils.createFixedURI(newSiteURIString);
 
       if ((!newSiteURI && this._siteURI)  ||
           (newSiteURI && (!this._siteURI || !this._siteURI.equals(newSiteURI)))) {
         transactions.push(
-          PlacesUIUtils.ptm.editLivemarkSiteURI(this._folderId, newSiteURI));
+          PlacesUIUtils.ptm.editLivemarkSiteURI(this._itemId, newSiteURI));
       }
     }
 
     // If we have any changes to perform, do them via the
     // transaction manager passed by the opener so they can be undone.
     if (transactions.length > 0) {
       window.arguments[0].performed = true;
       var aggregate =
@@ -935,17 +923,17 @@ var BookmarkPropertiesPanel = {
     }
 
     if (this._postData) {
       childTransactions.push(
         PlacesUIUtils.ptm.editBookmarkPostData(-1, this._postData));
     }
 
     if (this._charSet)
-      PlacesUtils.history.setCharsetForURI(this._bookmarkURI, this._charSet);
+      PlacesUtils.history.setCharsetForURI(this._uri, this._charSet);
 
     var transactions = [PlacesUIUtils.ptm.createItem(uri, aContainer, aIndex,
                                                      title, keyword,
                                                      annotations,
                                                      childTransactions)];
 
     return PlacesUIUtils.ptm.aggregateTransactions(this._getDialogTitle(), transactions);
   },
@@ -1106,24 +1094,18 @@ var BookmarkPropertiesPanel = {
     this._folderTree.selectItems([this._getFolderIdFromMenuList()]);
   },
 
   onFolderTreeSelect: function BPP_onFolderTreeSelect() {
     var selectedNode = this._folderTree.selectedNode;
     if (!selectedNode)
       return;
 
-    var folderId = selectedNode.itemId;
-    // Don't set the selected item if the static item for the folder is
-    // already selected
-    var oldSelectedItem = this._folderMenuList.selectedItem;
-    if ((oldSelectedItem.id == "toolbarFolderItem" &&
-         folderId == PlacesUtils.toolbarFolderId) ||
-        (oldSelectedItem.id == "bookmarksRootItem" &&
-         folderId == PlacesUtils.bookmarksMenuFolderId))
+    var folderId = PlacesUtils.getConcreteItemId(selectedNode);
+    if (this._getFolderIdFromMenuList() == folderId)
       return;
 
     var folderItem = this._getFolderMenuItem(folderId);
     this._folderMenuList.selectedItem = folderItem;
   },
 
   _markFolderAsRecentlyUsed:
   function BPP__markFolderAsRecentlyUsed(aFolderId) {
--- a/browser/components/places/content/controller.js
+++ b/browser/components/places/content/controller.js
@@ -72,26 +72,43 @@ const REMOVE_PAGES_MAX_SINGLEREMOVES = 1
  *          The index within the container where we should insert
  * @param   aOrientation
  *          The orientation of the insertion. NOTE: the adjustments to the
  *          insertion point to accommodate the orientation should be done by
  *          the person who constructs the IP, not the user. The orientation
  *          is provided for informational purposes only!
  * @param   [optional] aIsTag
  *          Indicates if parent container is a tag
+ * @param   [optional] aDropNearItemId
+ *          When defined we will calculate index based on this itemId
  * @constructor
  */
-function InsertionPoint(aItemId, aIndex, aOrientation, aIsTag) {
+function InsertionPoint(aItemId, aIndex, aOrientation, aIsTag,
+                        aDropNearItemId) {
   this.itemId = aItemId;
-  this.index = aIndex;
+  this._index = aIndex;
   this.orientation = aOrientation;
   this.isTag = aIsTag;
+  this.dropNearItemId = aDropNearItemId;
 }
-InsertionPoint.prototype.toString = function IP_toString() {
-  return "[object InsertionPoint(folder:" + this.itemId + ",index:" + this.index + ",orientation:" + this.orientation + ",isTag:" + this.isTag + ")]";
+
+InsertionPoint.prototype = {
+  set index(val) {
+    return this._index = val;
+  },
+
+  get index() {
+    if (this.dropNearItemId > 0) {
+      // If dropNearItemId is set up we must calculate the real index of
+      // the item near which we will drop.
+      var index = PlacesUtils.bookmarks.getItemIndex(this.dropNearItemId);
+      return this.orientation == Ci.nsITreeView.DROP_BEFORE ? index : index + 1;
+    }
+    return this._index;
+  }
 };
 
 /**
  * Places Controller
  */
 
 function PlacesController(aView) {
   this._view = aView;
@@ -142,16 +159,18 @@ PlacesController.prototype = {
       return this._canInsert() &&
              !asQuery(this._view.getResult().root).queryOptions.excludeItems &&
              this._view.getResult().sortingMode ==
                  Ci.nsINavHistoryQueryOptions.SORT_BY_NONE;
     case "placesCmd_show:info":
       var selectedNode = this._view.selectedNode;
       if (selectedNode) {
         if (PlacesUtils.nodeIsFolder(selectedNode) ||
+            (PlacesUtils.nodeIsQuery(selectedNode) &&
+             selectedNode.itemId != -1) ||
             (PlacesUtils.nodeIsBookmark(selectedNode) &&
             !PlacesUtils.nodeIsLivemarkItem(selectedNode)))
           return true;
       }
       return false;
     case "placesCmd_reloadMicrosummary":
       var selectedNode = this._view.selectedNode;
       return selectedNode && PlacesUtils.nodeIsBookmark(selectedNode) &&
@@ -259,41 +278,32 @@ PlacesController.prototype = {
   
   /**
    * Determine whether or not the selection can be removed, either by the 
    * delete or cut operations based on whether or not any of its contents
    * are non-removable. We don't need to worry about recursion here since it
    * is a policy decision that a removable item not be placed inside a non-
    * removable item.
    * @param aIsMoveCommand
-   *        True if thecommand for which this method is called only moves the
+   *        True if the command for which this method is called only moves the
    *        selected items to another container, false otherwise.
-   * @returns true if the there's a selection which has no nodes that cannot be removed,
+   * @returns true if all nodes in the selection can be removed,
    *          false otherwise.
    */
   _hasRemovableSelection: function PC__hasRemovableSelection(aIsMoveCommand) {
     var nodes = this._view.getSelectionNodes();
     var root = this._view.getResultNode();
 
     for (var i = 0; i < nodes.length; ++i) {
       // Disallow removing the view's root node
       if (nodes[i] == root)
         return false;
 
-      // Disallow removing shortcuts from the left pane
-      var nodeItemId = nodes[i].itemId;
-      if (PlacesUtils.annotations
-                     .itemHasAnnotation(nodeItemId, ORGANIZER_QUERY_ANNO))
-        return false;
-
-      // Disallow removing the toolbar, menu and unfiled-bookmarks folders
-      if (!aIsMoveCommand &&
-           (nodeItemId == PlacesUtils.toolbarFolderId ||
-            nodeItemId == PlacesUtils.unfiledBookmarksFolderId ||
-            nodeItemId == PlacesUtils.bookmarksMenuFolderId))
+      if (PlacesUtils.nodeIsFolder(nodes[i]) &&
+          !PlacesControllerDragHelper.canMoveContainerNode(nodes[i]))
         return false;
 
       // We don't call nodeIsReadOnly here, because nodeIsReadOnly means that
       // a node has children that cannot be edited, reordered or removed. Here,
       // we don't care if a node's children can't be reordered or edited, just
       // that they're removable. All history results have removable children
       // (based on the principle that any URL in the history table should be
       // removable), but some special bookmark folders may have non-removable
@@ -378,23 +388,23 @@ PlacesController.prototype = {
   },
 
   /** 
    * Gathers information about the selected nodes according to the following
    * rules:
    *    "link"              node is a URI
    *    "bookmark"          node is a bookamrk
    *    "livemarkChild"     node is a child of a livemark
+   *    "tagChild"          node is a child of a tag
    *    "folder"            node is a folder
    *    "query"             node is a query
    *    "dynamiccontainer"  node is a dynamic container
    *    "separator"         node is a separator line
    *    "host"              node is a host
-   *    "mutable"           node can have items inserted or reordered
-   *    
+   *
    * @returns an array of objects corresponding the selected nodes. Each
    *          object has each of the properties above set if its corresponding
    *          node matches the rule. In addition, the annotations names for each 
    *          node are set on its corresponding object as properties.
    * Notes:
    *   1) This can be slow, so don't call it anywhere performance critical!
    *   2) A single-object array corresponding the root node is returned if
    *      there's no selection.
@@ -441,35 +451,32 @@ PlacesController.prototype = {
           break;
         case Ci.nsINavHistoryResultNode.RESULT_TYPE_URI:
         case Ci.nsINavHistoryResultNode.RESULT_TYPE_VISIT:
         case Ci.nsINavHistoryResultNode.RESULT_TYPE_FULL_VISIT:
           nodeData["link"] = true;
           uri = PlacesUtils._uri(node.uri);
           if (PlacesUtils.nodeIsBookmark(node)) {
             nodeData["bookmark"] = true;
+            PlacesUtils.nodeIsTagQuery(node.parent)
             var mss = PlacesUIUtils.microsummaries;
             if (mss.hasMicrosummary(node.itemId))
               nodeData["microsummary"] = true;
-            else if (node.parent &&
-                     PlacesUtils.nodeIsLivemarkContainer(node.parent))
-              nodeData["livemarkChild"] = true;
+
+            var parentNode = node.parent;
+            if (parentNode) {
+              if (PlacesUtils.nodeIsTagQuery(parentNode))
+                nodeData["tagChild"] = true;
+              else if (PlacesUtils.nodeIsLivemarkContainer(parentNode))
+                nodeData["livemarkChild"] = true;
+            }
           }
           break;
       }
 
-      // Mutability is whether or not a container can have selected items
-      // inserted or reordered. It does _not_ dictate whether or not the 
-      // container can have items removed from it, since some containers that
-      // aren't  reorderable can have items removed from them, e.g. a history
-      // list. 
-      if (!PlacesUtils.nodeIsReadOnly(node) &&
-          !PlacesUtils.isReadonlyFolder(node.parent || root))
-        nodeData["mutable"] = true;
-
       // annotations
       if (uri) {
         var names = PlacesUtils.annotations.getPageAnnotationNames(uri, {});
         for (var j = 0; j < names.length; ++j)
           nodeData[names[j]] = true;
       }
 
       // For items also include the item-specific annotations
@@ -504,18 +511,22 @@ PlacesController.prototype = {
     var forceHideRules = aMenuItem.getAttribute("forcehideselection").split("|");
     for (var i = 0; i < aMetaData.length; ++i) {
       for (var j=0; j < forceHideRules.length; ++j) {
         if (forceHideRules[j] in aMetaData[i])
           return false;
       }
     }
 
-    if (aMenuItem.hasAttribute("selection")) {
-      var showRules = aMenuItem.getAttribute("selection").split("|");
+    var selectionAttr = aMenuItem.getAttribute("selection");
+    if (selectionAttr) {
+      if (selectionAttr == "any")
+        return true;
+
+      var showRules = selectionAttr.split("|");
       var anyMatched = false;
       function metaDataNodeMatches(metaDataNode, rules) {
         for (var i=0; i < rules.length; i++) {
           if (rules[i] in metaDataNode)
             return true;
         }
 
         return false;
@@ -548,34 +559,40 @@ PlacesController.prototype = {
    *  3) A menu-item may be visible only if at least one of the rules set in
    *     its selection attribute apply to each of the selected nodes in the
    *     view.
    *  4) The "forcehideselection" attribute may be set on a menu-item to rules
    *     for which it should be hidden. This attribute takes priority over the
    *     selection attribute. A menu-item would be hidden if at least one of the
    *     given rules apply to one of the selected nodes. The rules should be
    *     separated with the | character.
-   *  5) The visibility state of a menu-item is unchanged if none of these
+   *  5) The "hideifnoinsetionpoint" attribute may be set on a menu-item to
+   *     true if it should be hidden when there's no insertion point
+   *  6) The visibility state of a menu-item is unchanged if none of these
    *     attribute are set.
-   *  6) These attributes should not be set on separators for which the
+   *  7) These attributes should not be set on separators for which the
    *     visibility state is "auto-detected."
    * @param   aPopup
    *          The menupopup to build children into.
    * @return true if at least one item is visible, false otherwise.
    */
   buildContextMenu: function PC_buildContextMenu(aPopup) {
     var metadata = this._buildSelectionMetadata();
+    var ip = this._view.insertionPoint;
+    var noIp = !ip || ip.isTag;
 
     var separator = null;
     var visibleItemsBeforeSep = false;
     var anyVisible = false;
     for (var i = 0; i < aPopup.childNodes.length; ++i) {
       var item = aPopup.childNodes[i];
       if (item.localName != "menuseparator") {
-        item.hidden = !this._shouldShowMenuItem(item, metadata);
+        item.hidden = (item.getAttribute("hideifnoinsetionpoint") == "true" && noIp) ||
+                      !this._shouldShowMenuItem(item, metadata);
+
         if (!item.hidden) {
           visibleItemsBeforeSep = true;
           anyVisible = true;
 
           // Show the separator above the menu-item if any
           if (separator) {
             separator.hidden = false;
             separator = null;
@@ -626,19 +643,20 @@ PlacesController.prototype = {
    */
   showBookmarkPropertiesForSelection: 
   function PC_showBookmarkPropertiesForSelection() {
     var node = this._view.selectedNode;
     if (!node)
       return;
 
     if (PlacesUtils.nodeIsFolder(node))
-      PlacesUIUtils.showFolderProperties(node.itemId);
-    else if (PlacesUtils.nodeIsBookmark(node))
-      PlacesUIUtils.showBookmarkProperties(node.itemId);
+      PlacesUIUtils.showItemProperties(node.itemId, "folder");
+    else if (PlacesUtils.nodeIsBookmark(node) ||
+             PlacesUtils.nodeIsQuery(node))
+      PlacesUIUtils.showItemProperties(node.itemId, "bookmark");
   },
 
   /**
    * This method can be run on a URI parameter to ensure that it didn't
    * receive a string instead of an nsIURI object.
    */
   _assertURINotString: function PC__assertURINotString(value) {
     NS_ASSERT((typeof(value) == "object") && !(value instanceof String), 
@@ -861,16 +879,25 @@ PlacesController.prototype = {
       else if (PlacesUtils.nodeIsTagQuery(node.parent)) {
         var queries = asQuery(node.parent).getQueries({});
         var folders = queries[0].getFolders({});
         var uri = PlacesUtils._uri(node.uri);
         var tagItemId = folders[0];
         transactions.push(PlacesUIUtils.ptm.untagURI(uri, [tagItemId]));
         continue;
       }
+      else if (PlacesUtils.nodeIsQuery(node.parent) &&
+               asQuery(node.parent).queryOptions.queryType ==
+                Ci.nsINavHistoryQueryOptions.QUERY_TYPE_HISTORY &&
+               node.uri) {
+        // remove page from history, history deletes are not undoable
+        var bhist = PlacesUtils.history.QueryInterface(Ci.nsIBrowserHistory);
+        bhist.removePage(PlacesUtils._uri(node.uri));
+        continue;
+      }
 
       transactions.push(PlacesUIUtils.ptm.removeItem(node.itemId));
     }
   },
 
   /**
    * Removes the set of selected ranges from bookmarks.
    * @param   txnName
@@ -985,16 +1012,17 @@ PlacesController.prototype = {
    * Get a TransferDataSet containing the content of the selection that can be
    * dropped elsewhere. 
    * @param   dragAction
    *          The action to happen when dragging, i.e. copy
    * @returns A TransferDataSet object that can be dragged and dropped 
    *          elsewhere.
    */
   getTransferData: function PC_getTransferData(dragAction) {
+    var copy = dragAction == Ci.nsIDragService.DRAGDROP_ACTION_COPY;
     var result = this._view.getResult();
     var oldViewer = result.viewer;
     try {
       result.viewer = null;
       var nodes = this._view.getDragableSelection();
       if (dragAction == Ci.nsIDragService.DRAGDROP_ACTION_MOVE) {
         nodes = nodes.filter(function(node) {
           var parent = node.parent;
@@ -1004,17 +1032,17 @@ PlacesController.prototype = {
 
       var dataSet = new TransferDataSet();
       for (var i = 0; i < nodes.length; ++i) {
         var node = nodes[i];
 
         var data = new TransferData();
         function addData(type, overrideURI) {
           data.addDataForFlavour(type, PlacesUIUtils._wrapString(
-                                 PlacesUtils.wrapNode(node, type, overrideURI)));
+                                 PlacesUtils.wrapNode(node, type, overrideURI, copy)));
         }
 
         function addURIData(overrideURI) {
           addData(PlacesUtils.TYPE_X_MOZ_URL, overrideURI);
           addData(PlacesUtils.TYPE_UNICODE, overrideURI);
           addData(PlacesUtils.TYPE_HTML, overrideURI);
         }
 
@@ -1072,17 +1100,18 @@ PlacesController.prototype = {
           mozURLString += (PlacesUtils.wrapNode(node, PlacesUtils.TYPE_X_MOZ_URL,
                                                  uri) + suffix);
           unicodeString += (PlacesUtils.wrapNode(node, PlacesUtils.TYPE_UNICODE,
                                                  uri) + suffix);
           htmlString += (PlacesUtils.wrapNode(node, PlacesUtils.TYPE_HTML,
                                                  uri) + suffix);
 
           var placeSuffix = i < (nodes.length - 1) ? "," : "";
-          return PlacesUtils.wrapNode(node, type, overrideURI) + placeSuffix;
+          var resolveShortcuts = !PlacesControllerDragHelper.canMoveContainerNode(node);
+          return PlacesUtils.wrapNode(node, type, overrideURI, resolveShortcuts) + placeSuffix;
         }
 
         // all items wrapped as TYPE_X_MOZ_PLACE
         placeString += generateChunk(PlacesUtils.TYPE_X_MOZ_PLACE);
       }
 
       function addData(type, data) {
         xferable.addDataFlavor(type);
@@ -1236,17 +1265,17 @@ var PlacesControllerDragHelper = {
   /**
    * DOM Element currently being dragged over
    */
   currentDropTarget: null,
 
   /**
    * @returns The current active drag session. Returns null if there is none.
    */
-  getSession: function VO__getSession() {
+  getSession: function PCDH__getSession() {
     var dragService = Cc["@mozilla.org/widget/dragservice;1"].
                       getService(Ci.nsIDragService);
     return dragService.getCurrentSession();
   },
 
   /**
    * Determines whether or not the data currently being dragged can be dropped
    * on a places view.
@@ -1296,16 +1325,81 @@ var PlacesControllerDragHelper = {
           parentId = PlacesUtils.bookmarks.getFolderIdForItem(parentId);
         }
       }
     }
 
     return true;
   },
 
+  /**
+   * Determines if a container node can be moved.
+   * 
+   * @param   aNode
+   *          A bookmark folder node.
+   * @param   [optional] aInsertionPoint
+   *          The insertion point of the drop target.
+   * @returns True if the container can be moved.
+   */
+  canMoveContainerNode:
+  function PCDH_canMoveContainerNode(aNode, aInsertionPoint) {
+    // can't move query root
+    if (!aNode.parent)
+      return false;
+
+    var targetId = aInsertionPoint ? aInsertionPoint.itemId : -1;
+    var parentId = PlacesUtils.getConcreteItemId(aNode.parent);
+    var concreteId = PlacesUtils.getConcreteItemId(aNode);
+
+    // can't move tag containers 
+    if (PlacesUtils.nodeIsTagQuery(aNode))
+      return false;
+
+    // check is child of a read-only container 
+    if (PlacesUtils.nodeIsReadOnly(aNode.parent))
+      return false;
+
+    // check for special folders, etc
+    if (!this.canMoveContainer(aNode.itemId, parentId))
+      return false;
+
+    return true;
+  },
+
+  /**
+   * Determines if a container node can be moved.
+   * 
+   * @param   aId
+   *          A bookmark folder id.
+   * @param   [optional] aParentId
+   *          The parent id of the folder.
+   * @returns True if the container can be moved to the target.
+   */
+  canMoveContainer:
+  function PCDH_canMoveContainer(aId, aParentId) {
+    if (aId == -1)
+      return false;
+
+    // Disallow moving of roots and special folders
+    const ROOTS = [PlacesUtils.placesRootId, PlacesUtils.bookmarksMenuFolderId,
+                   PlacesUtils.tagsFolderId, PlacesUtils.unfiledBookmarksFolderId,
+                   PlacesUtils.toolbarFolderId];
+    if (ROOTS.indexOf(aId) != -1)
+      return false;
+
+    // Get parent id if necessary
+    if (aParentId == null || aParentId == -1)
+      aParentId = PlacesUtils.bookmarks.getFolderIdForItem(aId);
+
+    if(PlacesUtils.bookmarks.getFolderReadonly(aParentId))
+      return false;
+
+    return true;
+  },
+
   /** 
    * Creates a Transferable object that can be filled with data of types
    * supported by a view. 
    * @param   session
    *          The active drag session
    * @returns An object implementing nsITransferable that can receive data
    *          dropped onto a view. 
    */
@@ -1322,16 +1416,18 @@ var PlacesControllerDragHelper = {
 
   /**
    * Handles the drop of one or more items onto a view.
    * @param   insertionPoint
    *          The insertion point where the items should be dropped
    */
   onDrop: function PCDH_onDrop(insertionPoint) {
     var session = this.getSession();
+    // XXX dragAction is not valid, so we also set copy below by checking
+    // whether the dropped item is moveable, before creating the transaction
     var copy = session.dragAction & Ci.nsIDragService.DRAGDROP_ACTION_COPY;
     var transactions = [];
     var xferable = this._initTransferable(session);
     var dropCount = session.numDropItems;
 
     var movedCount = 0;
 
     for (var i = 0; i < dropCount; ++i) {
@@ -1339,34 +1435,40 @@ var PlacesControllerDragHelper = {
 
       var data = { }, flavor = { };
       xferable.getAnyTransferData(flavor, data, { });
       data.value.QueryInterface(Ci.nsISupportsString);
 
       // There's only ever one in the D&D case. 
       var unwrapped = PlacesUtils.unwrapNodes(data.value.data, 
                                               flavor.value)[0];
+
       var index = insertionPoint.index;
 
       // Adjust insertion index to prevent reversal of dragged items. When you
       // drag multiple elts upward: need to increment index or each successive
       // elt will be inserted at the same index, each above the previous.
-      if ((index != -1) && ((index < unwrapped.index) ||
-                           (unwrapped.folder && (index < unwrapped.folder.index)))) {
+      if (index != -1 && index < unwrapped.index) {
         index = index + movedCount;
         movedCount++;
       }
 
       // if dragging over a tag container we should tag the item
       if (insertionPoint.isTag) {
         var uri = PlacesUtils._uri(unwrapped.uri);
         var tagItemId = insertionPoint.itemId;
         transactions.push(PlacesUIUtils.ptm.tagURI(uri,[tagItemId]));
       }
       else {
+        if (!this.canMoveContainer(unwrapped.id, null))
+          copy = true;
+        else if (unwrapped.concreteId &&
+                 !this.canMoveContainer(unwrapped.concreteId, null))
+          copy = true;
+
         transactions.push(PlacesUIUtils.makeTransaction(unwrapped,
                           flavor.value, insertionPoint.itemId,
                           index, copy));
       }
     }
 
     var txn = PlacesUIUtils.ptm.aggregateTransactions("DropItems", transactions);
     PlacesUIUtils.ptm.doTransaction(txn);
--- a/browser/components/places/content/editBookmarkOverlay.js
+++ b/browser/components/places/content/editBookmarkOverlay.js
@@ -62,113 +62,129 @@ var gEditItemOverlay = {
       this._hiddenRows = aInfo.hiddenRows;
     else
       this._hiddenRows.splice(0);
     // force-read-only
     this._readOnly = aInfo && aInfo.forceReadOnly;
   },
 
   _showHideRows: function EIO__showHideRows() {
-    var isBookmark = this._itemType == Ci.nsINavBookmarksService.TYPE_BOOKMARK;
+    var isBookmark = this._itemId != -1 &&
+                     this._itemType == Ci.nsINavBookmarksService.TYPE_BOOKMARK;
+    var isQuery = false;
+    if (this._uri)
+      isQuery = this._uri.schemeIs("place");
 
     this._element("nameRow").collapsed = this._hiddenRows.indexOf("name") != -1;
     this._element("folderRow").collapsed =
-      this._hiddenRows.indexOf("folderPicker") != -1;
-    this._element("tagsRow").collapsed = !isBookmark ||
-      this._hiddenRows.indexOf("tags") != -1;
+      this._hiddenRows.indexOf("folderPicker") != -1 || this._readOnly;
+
+    this._element("tagsRow").collapsed = !this._uri ||
+      this._hiddenRows.indexOf("tags") != -1 || isQuery;
     this._element("descriptionRow").collapsed =
-      this._hiddenRows.indexOf("description") != -1 ||
-      this._readOnly;
+      this._hiddenRows.indexOf("description") != -1 || this._readOnly;
     this._element("keywordRow").collapsed = !isBookmark || this._readOnly ||
-      this._hiddenRows.indexOf("keyword") != -1;
-    this._element("locationRow").collapsed = !isBookmark ||
+      this._hiddenRows.indexOf("keyword") != -1 || isQuery;
+    this._element("locationRow").collapsed = !isBookmark || isQuery ||
       this._hiddenRows.indexOf("location") != -1;
-    this._element("loadInSidebarCheckbox").collapsed = !isBookmark ||
+    this._element("loadInSidebarCheckbox").collapsed = !isBookmark || isQuery ||
       this._readOnly || this._hiddenRows.indexOf("loadInSidebar") != -1;
     this._element("feedLocationRow").collapsed = !this._isLivemark ||
       this._hiddenRows.indexOf("feedLocation") != -1;
     this._element("siteLocationRow").collapsed = !this._isLivemark ||
       this._hiddenRows.indexOf("siteLocation") != -1;
   },
 
   /**
    * Initialize the panel
-   * @param aItemId
-   *        a places-itemId of a bookmark, folder or a live bookmark.
+   * @param aFor
+   *        Either a places-itemId (of a bookmark, folder or a live bookmark),
+   *        or a URI object (in which case, the panel would be initialized in
+   *        read-only mode).
    * @param [optional] aInfo
    *        JS object which stores additional info for the panel
    *        initialization. The following properties may bet set:
    *        * hiddenRows (Strings array): list of rows to be hidden regardless
    *          of the item edited. Possible values: "title", "location",
    *          "description", "keyword", "loadInSidebar", "feedLocation",
    *          "siteLocation", folderPicker"
    *        * forceReadOnly - set this flag to initialize the panel to its
    *          read-only (view) mode even if the given item is editable.
    */
-  initPanel: function EIO_initPanel(aItemId, aInfo) {
-    const bms = PlacesUtils.bookmarks;
-
+  initPanel: function EIO_initPanel(aFor, aInfo) {
     this._folderMenuList = this._element("folderMenuList");
     this._folderTree = this._element("folderTree");
-    this._itemId = aItemId;
-    this._itemType = bms.getItemType(this._itemId);
-    this._determineInfo(aInfo);
 
-    var container = bms.getFolderIdForItem(this._itemId);
-    if (this._itemType == Ci.nsINavBookmarksService.TYPE_BOOKMARK) {
-      this._uri = bms.getBookmarkURI(this._itemId);
+    this._determineInfo(aInfo);
+    if (aFor instanceof Ci.nsIURI) {
+      this._itemId = -1;
+      this._uri = aFor;
+      this._readOnly = true;
+    }
+    else {
+      this._itemId = aFor;
+      var container =  PlacesUtils.bookmarks.getFolderIdForItem(this._itemId);
+      this._itemType = PlacesUtils.bookmarks.getItemType(this._itemId);
+      if (this._itemType == Ci.nsINavBookmarksService.TYPE_BOOKMARK) {
+        this._uri = PlacesUtils.bookmarks.getBookmarkURI(this._itemId);
+        if (!this._readOnly) // If readOnly wasn't forced through aInfo
+          this._readOnly = PlacesUtils.livemarks.isLivemark(container);
+        this._initTextField("keywordField",
+                            PlacesUtils.bookmarks
+                                       .getKeywordForBookmark(this._itemId));
+        // Load In Sidebar checkbox
+        this._element("loadInSidebarCheckbox").checked =
+          PlacesUtils.annotations.itemHasAnnotation(this._itemId,
+                                                    LOAD_IN_SIDEBAR_ANNO);
+      }
+      else {
+        if (!this._readOnly) // If readOnly wasn't forced through aInfo
+          this._readOnly = false;
+
+        this._uri = null;
+        this._isLivemark = PlacesUtils.livemarks.isLivemark(this._itemId);
+        if (this._isLivemark) {
+          var feedURI = PlacesUtils.livemarks.getFeedURI(this._itemId);
+          var siteURI = PlacesUtils.livemarks.getSiteURI(this._itemId);
+          this._initTextField("feedLocationField", feedURI.spec);
+          this._initTextField("siteLocationField", siteURI ? siteURI.spec : "");
+        }
+      }
+
+      // folder picker
+      this._initFolderMenuList(container);
+
+      // description field
+      this._initTextField("descriptionField", 
+                          PlacesUIUtils.getItemDescription(this._itemId));
+    }
+
+    if (this._itemId == -1 ||
+        this._itemType == Ci.nsINavBookmarksService.TYPE_BOOKMARK) {
       this._isLivemark = false;
-      if (!this._readOnly) // If readOnly wasn't forced through aInfo
-        this._readOnly = PlacesUtils.livemarks.isLivemark(container);
 
       this._initTextField("locationField", this._uri.spec);
       this._initTextField("tagsField",
                            PlacesUtils.tagging
                                       .getTagsForURI(this._uri, {}).join(", "),
                           false);
 
       // tags selector
       this._rebuildTagsSelectorList();
-
-      this._initTextField("keywordField",
-                          bms.getKeywordForBookmark(this._itemId));
-
-      // Load In Sidebar checkbox
-      this._element("loadInSidebarCheckbox").checked =
-        PlacesUtils.annotations.itemHasAnnotation(this._itemId,
-                                                  LOAD_IN_SIDEBAR_ANNO);
     }
-    else {
-      if (!this._readOnly) // If readOnly wasn't forced through aInfo
-        this._readOnly = false;
-      this._isLivemark = PlacesUtils.livemarks.isLivemark(this._itemId);
-      if (this._isLivemark) {
-        var feedURI = PlacesUtils.livemarks.getFeedURI(this._itemId);
-        var siteURI = PlacesUtils.livemarks.getSiteURI(this._itemId);
-        this._initTextField("feedLocationField", feedURI.spec);
-        this._initTextField("siteLocationField", siteURI ? siteURI.spec : "");
-      }
-      this._uri = null;
-    }
-
-    // folder picker
-    this._initFolderMenuList(container);
 
     // name picker
     this._initNamePicker();
-
-    // description field
-    this._initTextField("descriptionField", 
-                        PlacesUIUtils.getItemDescription(this._itemId));
     
     this._showHideRows();
 
     // observe changes
     if (!this._observersAdded) {
-      PlacesUtils.bookmarks.addObserver(this, false);
+      if (this._itemId != -1)
+        PlacesUtils.bookmarks.addObserver(this, false);
       window.addEventListener("unload", this, false);
       this._observersAdded = true;
     }
   },
 
   _initTextField: function(aTextFieldId, aValue, aReadOnly) {
     var field = this._element(aTextFieldId);
     field.readOnly = aReadOnly !== undefined ? aReadOnly : this._readOnly;
@@ -304,23 +320,24 @@ var gEditItemOverlay = {
                                      aMicrosummary.generator.uri.spec);
       aMicrosummary.update();
     }
 
     return menuItem;
   },
 
   _getItemStaticTitle: function EIO__getItemStaticTitle() {
+    if (this._itemId == -1)
+      return PlacesUtils.history.getPageTitle(this._uri);
+
     const annos = PlacesUtils.annotations;
     if (annos.itemHasAnnotation(this._itemId, STATIC_TITLE_ANNO))
       return annos.getItemAnnotation(this._itemId, STATIC_TITLE_ANNO);
-    var title = PlacesUtils.bookmarks.getItemTitle(this._itemId);
-    if (title === null)
-      return PlacesUtils.history.getPageTitle(this._uri);
-    return title;
+
+    return PlacesUtils.bookmarks.getItemTitle(this._itemId);
   },
 
   _initNamePicker: function EIO_initNamePicker() {
     var userEnteredNameField = this._element("userEnteredName");
     var namePicker = this._element("namePicker");
     var droppable = false;
 
     userEnteredNameField.label = this._getItemStaticTitle();
@@ -332,17 +349,18 @@ var gEditItemOverlay = {
 
     if (this._microsummaries) {
       this._microsummaries.removeObserver(this);
       this._microsummaries = null;
     }
 
     var itemToSelect = userEnteredNameField;
     try {
-      if (this._itemType == Ci.nsINavBookmarksService.TYPE_BOOKMARK &&
+      if (this._itemId != -1 &&
+          this._itemType == Ci.nsINavBookmarksService.TYPE_BOOKMARK &&
           !this._readOnly)
         this._microsummaries = PlacesUIUtils.microsummaries
                                             .getMicrosummaries(this._uri, -1);
     }
     catch(ex) {
       // getMicrosummaries will throw an exception in at least two cases:
       // 1. the bookmarked URI contains a scheme that the service won't
       //    download for security reasons (currently it only handles http,
@@ -428,24 +446,27 @@ var gEditItemOverlay = {
 
       // hide the tag selector if it was previously visible
       var tagsSelector = this._element("tagsSelector");
       if (!tagsSelector.collapsed)
         this.toggleTagsSelector();
     }
 
     if (this._observersAdded) {
-      PlacesUtils.bookmarks.removeObserver(this);
+      if (this._itemId != -1)
+        PlacesUtils.bookmarks.removeObserver(this);
+
       this._observersAdded = false;
     }
     if (this._microsummaries) {
       this._microsummaries.removeObserver(this);
       this._microsummaries = null;
     }
     this._itemId = -1;
+    this._uri = null;
   },
 
   onTagsFieldBlur: function EIO_onTagsFieldBlur() {
     this._updateTags();
   },
 
   _updateTags: function EIO__updateTags() {
     var currentTags = PlacesUtils.tagging.getTagsForURI(this._uri, { });
--- a/browser/components/places/content/history-panel.js
+++ b/browser/components/places/content/history-panel.js
@@ -63,30 +63,16 @@ function HistorySidebarInit()
     document.getElementById("byday").setAttribute("checked", "true");
 
   initContextMenu();
   
   searchHistory("");
 }
 
 function initContextMenu() {
-  // Force-hide items in the context menu which never apply to this view
-  var alwaysHideElements = ["placesContext_new:bookmark",
-                            "placesContext_new:folder",
-                            "placesContext_new:separator",
-                            "placesContext_cut",
-                            "placesContext_paste",
-                            "placesContext_sortBy:name"];
-  for (var i=0; i < alwaysHideElements.length; i++) {
-    var elt = document.getElementById(alwaysHideElements[i]);
-    elt.removeAttribute("selection");
-    elt.removeAttribute("forcehideselection");
-    elt.hidden = true;
-  }
-
   // Insert "Bookmark This Link" right before the copy item
   document.getElementById("placesContext")
           .insertBefore(document.getElementById("addBookmarkContextItem"),
                         document.getElementById("placesContext_copy"));
 }
 
 function GroupBy(groupingType)
 {
--- a/browser/components/places/content/menu.xml
+++ b/browser/components/places/content/menu.xml
@@ -142,17 +142,17 @@
               node = node.nextSibling;
             newMarginTop = node ? node.boxObject.screenY - scrollBoxObject.screenY :
                                   scrollBoxObject.height;
           }
           else if (scrollDir == 1)
             newMarginTop = scrollBoxObject.height;
 
           // set the new marginTop based on arrowscrollbox
-          newMarginTop += scrollBoxObject.y - this.boxObject.y;
+          newMarginTop += scrollBoxObject.y - this._scrollBox.boxObject.y;
           this._indicatorBar.firstChild.style.marginTop = newMarginTop + "px";
           this._indicatorBar.hidden = false;
         ]]></body>
       </method>
 
       <method name="onDragExit">
         <parameter name="aEvent"/>
         <parameter name="aDragSession"/>
@@ -176,27 +176,30 @@
 
           // The autoopened attribute is set when this folder was automatically
           // opened after the user dragged over it.  If this attribute is set,
           // auto-close the folder on drag exit.
           if (this.hasAttribute("autoopened")) {
             this._overFolder.closeMenuTimer = this._overFolder
                                                   .setTimer(this._overFolder.hoverTime);
           }
+
+          this._rootView._draggedNode = null;
         ]]></body>
       </method>
 
       <method name="onDragStart">
         <parameter name="aEvent"/>
         <parameter name="aXferData"/>
         <parameter name="aDragAction"/>
         <body><![CDATA[
-          // Force a copy action if parent node is a query
+          // Force a copy action if parent node is a query or not-removable
           if (aEvent.ctrlKey ||
-              PlacesUtils.nodeIsQuery(aEvent.target.node.parent))
+              PlacesUtils.nodeIsQuery(aEvent.target.node.parent) ||
+              PlacesControllerDragHelper.canMoveContainerNode(aEvent.target.node))
             aDragAction.action = Ci.nsIDragService.DRAGDROP_ACTION_COPY;
 
           // activate the view and cache the dragged node
           this._rootView._draggedNode = aEvent.target.node;
           this._rootView.focus();
 
           aXferData.data = this._rootView.controller
                                          .getTransferData(aDragAction.action);
@@ -890,41 +893,43 @@
           return null;
         ]]></getter>
       </property>
 
       <!-- nsIPlacesView -->
       <property name="insertionPoint">
         <getter><![CDATA[
           // By default, the insertion point is at the top level, at the end.
-          var index = -1;
+          var index = PlacesUtils.bookmarks.DEFAULT_INDEX;
           var folderId = 0;
+          var orientation = Ci.nsITreeView.DROP_BEFORE;
           var isTag = false;
 
           if (PlacesUtils.nodeIsFolder(this._resultNode)) {
             folderId = PlacesUtils.getConcreteItemId(this._resultNode);
             isTag = PlacesUtils.nodeIsTagQuery(this._resultNode);
           }
 
           var selectedNode = this.selectedNode;
           if (selectedNode) {
-            if (PlacesUtils.nodeIsFolder(selectedNode)) {
-              // If there is a folder selected, the insertion point is the
-              // end of the folder.
+            var popupNode = document.popupNode;
+            if (popupNode == popupNode.parentNode._emptyMenuItem) {
+              // If (empty) menuitem is selected the insertion point
+              // is inside the folder, at the end.
               folderId = PlacesUtils.getConcreteItemId(selectedNode);
+              orientation = Ci.nsITreeView.DROP_ON;
             }
             else {
-              // If there is another type of node selected, the insertion point
-              // is after that node.
+              // In all other cases the insertion point is before that node.
               folderId = PlacesUtils.getConcreteItemId(selectedNode.parent);
               index = PlacesUtils.getIndexOfNode(selectedNode);
               isTag = PlacesUtils.nodeIsTagQuery(selectedNode.parent);
             }
           }
-          return new InsertionPoint(folderId, index, 1, isTag);
+          return new InsertionPoint(folderId, index, orientation, isTag);
         ]]></getter>
       </property>
 
       <!-- nsIPlacesView -->
       <method name="selectAll">
         <body/>
       </method>
 
--- a/browser/components/places/content/places.js
+++ b/browser/components/places/content/places.js
@@ -99,16 +99,20 @@ var PlacesOrganizer = {
     
     // 3. Disable the keyboard shortcut for the History menu back/forward
     // in order to support those in the Library
     var historyMenuBack = document.getElementById("historyMenuBack");
     historyMenuBack.removeAttribute("key");
     var historyMenuForward = document.getElementById("historyMenuForward");
     historyMenuForward.removeAttribute("key");
 #endif
+
+    // remove the "Properties" context-menu item, we've our own details pane
+    document.getElementById("placesContext")
+            .removeChild(document.getElementById("placesContext_show:info"));
   },
 
   QueryInterface: function PO_QueryInterface(aIID) {
     if (aIID.equals(Components.interfaces.nsIDOMEventListener) ||
         aIID.equals(Components.interfaces.nsISupports))
       return this;
 
     throw Components.results.NS_NOINTERFACE;
@@ -203,32 +207,35 @@ var PlacesOrganizer = {
     var node = this._places.selectedNode;
     var queries = asQuery(node).getQueries({});
 
     // Items are only excluded on the left pane
     var options = node.queryOptions.clone();
     options.excludeItems = false;
     var placeURI = PlacesUtils.history.queriesToQueryString(queries, queries.length, options);
 
-    // update the right-pane contents
-    if (this._content.place != placeURI)
+    // Update the right-pane contents.
+    // We must update also if the user clears the search box, in that case
+    // we are called with resetSearchBox == false.
+    if (this._content.place != placeURI || !resetSearchBox)
       this._content.place = placeURI;
 
     // This just updates the back/forward buttons, it doesn't call us back
     // because node.uri is our current selection.
     this.location = node.uri;
 
     // Make sure the search UI is hidden.
     PlacesSearchBox.hideSearchUI();
     if (resetSearchBox) {
       var searchFilter = document.getElementById("searchFilter");
       searchFilter.reset();
     }
 
     this._setSearchScopeForNode(node);
+    this._fillDetailsPane(node);
   },
 
   /**
    * Sets the search scope based on node's properties
    * @param   aNode
    *          the node to set up scope from
    */
   _setSearchScopeForNode: function PO__setScopeForNode(aNode) {
@@ -300,16 +307,28 @@ var PlacesOrganizer = {
         // The command execution function will take care of seeing the
         // selection is a folder/container and loading its contents in
         // tabs for us.
         PlacesUIUtils.openContainerNodeInTabs(selectedNode);
       }
     }
   },
 
+  /**
+   * Handle focus changes on the trees.
+   * When moving focus between panes we should update the details pane contents.
+   * @param   aEvent
+   *          The mouse event.
+   */
+  onTreeFocus: function PO_onTreeFocus(aEvent) {
+    var currentView = aEvent.currentTarget;
+    var selectedNode = currentView.selectedNode;
+    this._fillDetailsPane(selectedNode);
+  },
+
   openFlatContainer: function PO_openFlatContainerFlatContainer(aContainer) {
     if (aContainer.itemId != -1)
       this._places.selectItems([aContainer.itemId]);
     else if (PlacesUtils.nodeIsQuery(aContainer))
       this._places.selectPlaceURI(aContainer.uri);
   },
 
   openSelectedNode: function PU_openSelectedNode(aEvent) {
@@ -567,19 +586,20 @@ var PlacesOrganizer = {
      * of livemark-children are not likely to fill the infoBox anyway,
      * thus we remove the "More/Less" button and show all details.
      *
      * the wasminimal attribute here is used to persist the "more/less"
      * state in a bookmark->folder->bookmark scenario.
      */
     var infoBox = document.getElementById("infoBox");
     var infoBoxExpander = document.getElementById("infoBoxExpander");
-    if ((PlacesUtils.nodeIsFolder(aNode) &&
-         !PlacesUtils.nodeIsLivemarkContainer(aNode)) ||
-        PlacesUtils.nodeIsLivemarkItem(aNode)) {
+    if (aNode.itemId != -1 &&
+        ((PlacesUtils.nodeIsFolder(aNode) &&
+          !PlacesUtils.nodeIsLivemarkContainer(aNode)) ||
+         PlacesUtils.nodeIsLivemarkItem(aNode))) {
       if (infoBox.getAttribute("minimal") == "true")
         infoBox.setAttribute("wasminimal", "true");
       infoBox.removeAttribute("minimal");
       infoBoxExpander.hidden = true;
     }
     else {
       if (infoBox.getAttribute("wasminimal") == "true")
         infoBox.setAttribute("minimal", "true");
@@ -594,57 +614,58 @@ var PlacesOrganizer = {
     var canvas = document.getElementById("itemThumbnail");
     var height = previewBox.boxObject.height;
     var width = height * (screen.width / screen.height);
     canvas.width = width;
     canvas.height = height;
   },
 
   onContentTreeSelect: function PO_onContentTreeSelect() {
+    this._fillDetailsPane(this._content.selectedNode);
+  },
+
+  _fillDetailsPane: function PO__fillDetailsPane(aSelectedNode) {
+    var infoBox = document.getElementById("infoBox");
+    var detailsDeck = document.getElementById("detailsDeck");
+
     // If a textbox within a panel is focused, force-blur it so its contents
     // are saved
     if (gEditItemOverlay.itemId != -1) {
       var focusedElement = document.commandDispatcher.focusedElement;
       if ((focusedElement instanceof HTMLInputElement ||
            focusedElement instanceof HTMLTextAreaElement) &&
           /^editBMPanel.*/.test(focusedElement.parentNode.parentNode.id))
         focusedElement.blur();
+
+      // don't update the panel if we are already editing this node
+      if (aSelectedNode && gEditItemOverlay.itemId == aSelectedNode.itemId &&
+          detailsDeck.selectedIndex == 1)
+        return;
     }
-
-    var infoBox = document.getElementById("infoBox");
-    var detailsDeck = document.getElementById("detailsDeck");
-    detailsDeck.selectedIndex = 1;
-    var selectedNode = this._content.selectedNode;
-    if (selectedNode) {
+ 
+    if (aSelectedNode && !PlacesUtils.nodeIsSeparator(aSelectedNode)) {
+      detailsDeck.selectedIndex = 1;
       infoBox.hidden = false;
-      if (selectedNode.itemId != -1 &&
-          !PlacesUtils.nodeIsSeparator(selectedNode)) {
-        if (this._paneDisabled) {
-          this._setDetailsFieldsDisabledState(false);
-          this._paneDisabled = false;
-        }
-
-        // Using the concrete itemId is arguably wrong. The bookmarks API
-        // does allow setting properties for folder shortcuts as well, but since
-        // the UI does not distinct between the couple, we better just show
-        // the concrete item properties.
-        if (selectedNode.type ==
-            Ci.nsINavHistoryResultNode.RESULT_TYPE_FOLDER_SHORTCUT) {
-          gEditItemOverlay.initPanel(asQuery(selectedNode).folderItemId,
-                                     { hiddenRows: ["folderPicker"],
-                                       forceReadOnly: true });
-        }
-        else {
-          gEditItemOverlay.initPanel(selectedNode.itemId,
-                                     { hiddenRows: ["folderPicker"] });
-        }
-
-        this._detectAndSetDetailsPaneMinimalState(selectedNode);
-        return;
+      // Using the concrete itemId is arguably wrong. The bookmarks API
+      // does allow setting properties for folder shortcuts as well, but since
+      // the UI does not distinct between the couple, we better just show
+      // the concrete item properties.
+      if (aSelectedNode.type ==
+          Ci.nsINavHistoryResultNode.RESULT_TYPE_FOLDER_SHORTCUT) {
+        gEditItemOverlay.initPanel(asQuery(aSelectedNode).folderItemId,
+                                  { hiddenRows: ["folderPicker"],
+                                    forceReadOnly: true });
       }
+      else {
+        var itemId = PlacesUtils.getConcreteItemId(aSelectedNode);
+        gEditItemOverlay.initPanel(itemId != -1 ? itemId :
+                                   PlacesUtils._uri(aSelectedNode.uri),
+                                   { hiddenRows: ["folderPicker"] });
+      }
+      this._detectAndSetDetailsPaneMinimalState(aSelectedNode);
     }
     else {
       detailsDeck.selectedIndex = 0;
       // The details deck has the height of its biggest child, so we hide the
       // infoBox to allow it shrinking when there is no selection.
       infoBox.hidden = true;
       var selectItemDesc = document.getElementById("selectItemDescription");
       var itemsCountLabel = document.getElementById("itemsCountText");
@@ -659,23 +680,16 @@ var PlacesOrganizer = {
           itemsCountLabel.value = PlacesUIUtils.getString("detailsPane.oneItem");
         else {
           itemsCountLabel.value =
             PlacesUIUtils.getFormattedString("detailsPane.multipleItems",
                                              [rowCount]);
         }
       }
     }
-
-    // Nothing to do if the pane was already disabled
-    if (!this._paneDisabled) {
-      gEditItemOverlay.uninitPanel();
-      this._setDetailsFieldsDisabledState(true);
-      this._paneDisabled = true;
-    }
   },
 
   // NOT YET USED
   _updateThumbnail: function PO__updateThumbnail() {
     var bo = document.getElementById("previewBox").boxObject;
     var width  = bo.width;
     var height = bo.height;
 
@@ -711,23 +725,22 @@ var PlacesOrganizer = {
   },
 
   /**
    * Save the current search (or advanced query) to the bookmarks root.
    */
   saveSearch: function PO_saveSearch() {
     // Get the place: uri for the query.
     // If the advanced query builder is showing, use that.
-    var queries = PlacesQueryBuilder.queries;
     var options = this.getCurrentOptions();
 
-#ifndef PLACES_QUERY_BUILDER
-    var query = PlacesUtils.history.getNewQuery();
-    query.searchTerms = PlacesSearchBox.value;
-    queries.push(query);
+#ifdef PLACES_QUERY_BUILDER
+    var queries = PlacesQueryBuilder.queries;
+#else
+    var queries = this.getCurrentQueries();
 #endif
 
     var placeSpec = PlacesUtils.history.queriesToQueryString(queries,
                                                              queries.length,
                                                              options);
     var placeURI = Cc["@mozilla.org/network/io-service;1"].
                    getService(Ci.nsIIOService).
                    newURI(placeSpec, null, null);
@@ -1419,24 +1432,16 @@ var PlacesQueryBuilder = {
       else
         child.setAttribute("checked", "true");
       child = child.nextSibling;
     }
 
     // update collection type and get folders
     var folders = [];
     switch (id) {
-      case "scopeBarToolbar":
-        PlacesSearchBox.filterCollection = "collection";
-        folders.push(PlacesUtils.toolbarFolderId);
-        break;
-      case "scopeBarMenu":
-        PlacesSearchBox.filterCollection = "collection";
-        folders.push(PlacesUtils.bookmarksMenuFolderId);
-        break;
       case "scopeBarHistory":
         PlacesSearchBox.filterCollection = "history";
         folders = [];
         break;
       case "scopeBarFolder":
         var selectedFolder = PlacesOrganizer._places.selectedNode.itemId;
         // note "all bookmarks" isn't the concrete parent of the top-level
         // bookmark folders
--- a/browser/components/places/content/places.xul
+++ b/browser/components/places/content/places.xul
@@ -176,20 +176,23 @@
   <keyset id="editMenuKeys">
 #ifdef XP_MACOSX
     <key id="key_delete2" keycode="VK_BACK" command="cmd_delete"/>
 #endif
   </keyset>
 
   <popupset id="placesPopupset">
     <popup id="placesContext"/>
+    <popup id="placesColumnsContext"
+           onpopupshowing="ViewMenu.fillWithColumns(event, null, null, 'checkbox', null);"
+           oncommand="ViewMenu.showHideColumn(event.target); event.stopPropagation();"/>
   </popupset>
 
   <toolbox id="placesToolbox">
-    <toolbar class="chromeclass-toolbar" id="placesToolbar" align="center">
+    <toolbar class="chromeclass-toolbar" id="placesToolbar" align="center" chromedir="&locale.dir;">
       <toolbarbutton id="back-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
                      command="OrganizerCommand:Back"
                      tooltiptext="&backButton.tooltip;"
                      accesskey="&backCmd.accesskey;"
                      chromedir="&locale.dir;"
                      disabled="true"/>
 
       <toolbarbutton id="forward-button" class="toolbarbutton-1 chromeclass-toolbar-additional"
@@ -393,16 +396,17 @@
 
   <hbox flex="1" id="placesView">
     <tree id="placesList"
           class="placesTree"
           type="places"
           hidecolumnpicker="true" context="placesContext"
           onselect="PlacesOrganizer.onPlaceSelected(true);"
           onclick="PlacesOrganizer.onTreeClick(event);"
+          onfocus="PlacesOrganizer.onTreeFocus(event);"          
           seltype="single"
           persist="width"
           width="200"
           minwidth="100"
           maxwidth="400">
       <treecols>
         <treecol anonid="title" flex="1" primary="true" hideheader="true"/>
       </treecols>
@@ -443,26 +447,28 @@
                       oncommand="PlacesQueryBuilder.toggleVisibility();"/>
             </toolbar>
 #include advancedSearch.inc
 #else
             </toolbar>
 #endif
           </vbox>
           <vbox flex="1">
-            <tree id="placeContent" class="placesTree" context="placesContext" 
+            <tree id="placeContent" class="placesTree" context="placesContext"
+                  hidecolumnpicker="true"
                   flex="1" type="places"
                   flatList="true"
                   enableColumnDrag="true"
                   onkeypress="if (event.keyCode == KeyEvent.DOM_VK_RETURN) PlacesOrganizer.openSelectedNode(event);"
                   ondblclick="PlacesOrganizer.openSelectedNode(event);"
                   onopenflatcontainer="PlacesOrganizer.openFlatContainer(aContainer);"
                   onselect="PlacesOrganizer.onContentTreeSelect();"
+                  onfocus="PlacesOrganizer.onTreeFocus(event);"
                   onclick="PlacesOrganizer.onTreeClick(event);">
-              <treecols id="placeContentColumns">
+              <treecols id="placeContentColumns" context="placesColumnsContext">
                 <treecol label="&col.name.label;" id="placesContentTitle" anonid="title" flex="5" primary="true" ordinal="1" 
                          persist="width hidden ordinal sortActive sortDirection"/>
                 <splitter class="tree-splitter"/>
                 <treecol label="&col.tags.label;" id="placesContentTags" anonid="tags" flex="2"
                          persist="width hidden ordinal sortActive sortDirection"/>
                 <splitter class="tree-splitter"/>
                 <treecol label="&col.url.label;" id="placesContentUrl" anonid="url" flex="5"
                          persist="width hidden ordinal sortActive sortDirection"/>
--- a/browser/components/places/content/placesOverlay.xul
+++ b/browser/components/places/content/placesOverlay.xul
@@ -132,55 +132,59 @@
               accesskey="&cmd.open_all_in_tabs.accesskey;"
               selectiontype="multiple"
               selection="link"/>
     <menuseparator id="placesContext_openSeparator"/>
     <menuitem id="placesContext_new:bookmark"
               command="placesCmd_new:bookmark"
               label="&cmd.new_bookmark.label;"
               accesskey="&cmd.new_bookmark.accesskey;"
-              selection="mutable"/>
+              selection="any"
+              hideifnoinsetionpoint="true"/>
     <menuitem id="placesContext_new:folder"
               command="placesCmd_new:folder"
               label="&cmd.new_folder.label;"
               accesskey="&cmd.context_new_folder.accesskey;"
-              selection="mutable"/>
+              selection="any"
+              hideifnoinsetionpoint="true"/>
     <menuitem id="placesContext_new:separator"
               command="placesCmd_new:separator"
               label="&cmd.new_separator.label;"
               accesskey="&cmd.new_separator.accesskey;"
               closemenu="single"
-              selection="mutable"/>
+              selection="any"
+              hideifnoinsetionpoint="true"/>
     <menuseparator id="placesContext_newSeparator"/>
     <menuitem id="placesContext_cut"
               command="cmd_cut"
               label="&cutCmd.label;"
               accesskey="&cutCmd.accesskey;" 
               closemenu="single"
-              selection="separator|link|folder|mixed|query"
-              forcehideselection="livemarkChild"/>
+              selection="bookmark|folder|separator|query"
+              forcehideselection="tagChild|livemarkChild"/>
     <menuitem id="placesContext_copy"
               command="cmd_copy"
               label="&copyCmd.label;"
               closemenu="single"
               accesskey="&copyCmd.accesskey;" 
-              selection="separator|link|folder|query"/>
+              selection="any"/>
     <menuitem id="placesContext_paste"
               command="cmd_paste"
               label="&pasteCmd.label;"
               closemenu="single"
               accesskey="&pasteCmd.accesskey;"
-              selection="mutable|query"/>
+              selection="any"
+              hideifnoinsetionpoint="true"/>
     <menuseparator id="placesContext_editSeparator"/>
     <menuitem id="placesContext_delete"
               command="cmd_delete"
               label="&deleteCmd.label;"
               accesskey="&deleteCmd.accesskey;"
               closemenu="single"
-              selection="host|separator|link|folder|day|query"
+              selection="any"
               forcehideselection="livemarkChild"/>
     <menuseparator id="placesContext_deleteSeparator"/>
     <menuitem id="placesContext_reload"
               command="placesCmd_reload"
               label="&cmd.reloadLivebookmark.label;"
               accesskey="&cmd.reloadLivebookmark.accesskey;"
               closemenu="single"
               selection="livemark/feedURI"/>
@@ -190,19 +194,19 @@
               accesskey="&cmd.reloadMicrosummary.accesskey;"
               closemenu="single"
               selection="microsummary"/>
     <menuitem id="placesContext_sortBy:name"
               command="placesCmd_sortBy:name"
               label="&cmd.sortby_name.label;"
               accesskey="&cmd.context_sortby_name.accesskey;"
               closemenu="single"
-              selection="mutable"/>
+              selection="folder"/>
     <menuseparator id="placesContext_sortSeparator"/>
     <menuitem id="placesContext_show:info"
               command="placesCmd_show:info"
               label="&cmd.properties.label;" 
               accesskey="&cmd.properties.accesskey;"
-              selection="bookmark|folder"
+              selection="bookmark|folder|query"
               forcehideselection="livemarkChild"/>
   </popup>
 
 </overlay>
--- a/browser/components/places/content/toolbar.xml
+++ b/browser/components/places/content/toolbar.xml
@@ -379,36 +379,38 @@
           return null;
         ]]></getter>
       </property>
 
       <!-- nsIPlacesView -->
       <property name="insertionPoint">
         <getter><![CDATA[
           // By default, the insertion point is at the top level, at the end. 
-          var index = -1;
+          var index = PlacesUtils.bookmarks.DEFAULT_INDEX;
           var folderId = PlacesUtils.getConcreteItemId(this._result.root);
+          var orientation = Ci.nsITreeView.DROP_BEFORE;
           var isTag = false;
 
           var selectedNode = this.selectedNode;
           if (selectedNode) {
-            if (PlacesUtils.nodeIsFolder(selectedNode)) {
-              // If there is a folder selected, the insertion point is the
-              // end of the folder.
+            var popupNode = document.popupNode;
+            if (popupNode == popupNode.parentNode._emptyMenuItem) {
+              // If (empty) menuitem is selected the insertion point
+              // is inside the folder, at the end.
               folderId = PlacesUtils.getConcreteItemId(selectedNode);
+              orientation = Ci.nsITreeView.DROP_ON;
             }
             else {
-              // If there is another type of node selected, the insertion point
-              // is after that node.
+              // In all other cases the insertion point is before that node.
               folderId = PlacesUtils.getConcreteItemId(selectedNode.parent);
               index = PlacesUtils.getIndexOfNode(selectedNode);
               isTag = PlacesUtils.nodeIsTagQuery(selectedNode.parent);
             }
           }
-          return new InsertionPoint(folderId, index, 1, isTag);
+          return new InsertionPoint(folderId, index, orientation, isTag);
         ]]></getter>
       </property>
 
       <!-- nsIPlacesView -->
       <method name="selectAll">
         <body><![CDATA[ 
           // Nothing
         ]]></body>
@@ -444,17 +446,17 @@
           // some methods (e.g. getURLsFromContainer) temporarily null out the
           // viewer when they do temporary changes to the view, this does _not_
           // call setResult(null), but then, we're called again with the result
           // object which is already set for this viewer. At that point,
           // we should do nothing.
           if (this._self._result != val) {
             this._self._containerNodesMap = [];
             this._self._result = val;
-            if (val) // this calls _rebuild through invalidateContainer
+            if (val) // this calls _rebuild through invalidateContainer
               val.root.containerOpen = true;
           }
           return val;
         },
 
         itemInserted: function TV_V_itemInserted(aParentNode, aNode, aIndex) {
           // don't insert new items into the toolbar
           // if the parent is not the root 
@@ -911,16 +913,18 @@
           // flicker.)
           if (this._ibTimer)
             this._ibTimer.cancel();
           this._ibTimer = this._setTimer(10);
           // Close any folder being hovered over
           if (this._overFolder.node)
             this._overFolder.closeTimer = this._setTimer(this._overFolder.hoverTime);
           PlacesControllerDragHelper.currentDropTarget = null;
+
+          this._self._draggedNode = null;
         },
 
         getSupportedFlavours: function TBV_DO_getSupportedFlavours() {
           var flavorSet = new FlavourSet();
           var types = PlacesUIUtils.GENERIC_VIEW_DROP_TYPES;
           for (var i = 0; i < types.length; ++i)
             flavorSet.appendFlavour(types[i]);
           return flavorSet;
--- a/browser/components/places/content/tree.xml
+++ b/browser/components/places/content/tree.xml
@@ -435,56 +435,56 @@
           // so bail out now and save a lot of work when updating commands
           var resultNode = this.getResultNode();
           if (PlacesUtils.nodeIsQuery(resultNode)) {
             var options = asQuery(resultNode).queryOptions;
             if (options.queryType == options.QUERY_TYPE_HISTORY)
               return this._cachedInsertionPoint = null;
           }
 
-          var orientation = Ci.nsITreeView.DROP_AFTER;
+          var orientation = Ci.nsITreeView.DROP_BEFORE;
           // If there is no selection, insert at the end of the container. 
           if (!this.hasSelection) {
             var index = this.view.rowCount - 1;
             this._cachedInsertionPoint =
               this._getInsertionPoint(index, orientation);
             return this._cachedInsertionPoint;
           }
 
           // This is a two-part process. The first part is determining the drop
           // orientation.
-          // * The default orientation is to drop _after_ the selected item. 
-          // * If the selected item is an open container, the default 
-          //   orientation is to drop _into_ that container.
+          // * The default orientation is to drop _before_ the selected item.
+          // * If the selected item is a container, the default orientation
+          //   is to drop _into_ that container.
           //
           // Warning: It may be tempting to use tree indexes in this code, but
           //          you must not, since the tree is nested and as your tree 
           //          index may change when folders before you are opened and
           //          closed. You must convert your tree index to a node, and
           //          then use getIndexOfNode to find your absolute index in
           //          the parent container instead. 
           //
           var resultView = this.getResultView();
           var selection = resultView.selection;
           var rc = selection.getRangeCount();
           var min = { }, max = { };
           selection.getRangeAt(rc - 1, min, max);
           
-          // If the sole selection is an open container, insert into it rather 
-          // than adjacent to it. Note that this only applies to _single_ 
-          // selections - if the last element within a multi-selection is an
-          // open folder, insert _adajacent_ to the selection.
+          // If the sole selection is a container, and we are not in
+          // a flatlist, insert into it.
+          // Note that this only applies to _single_ selections,
+          // if the last element within a multi-selection is a
+          // container, insert _adjacent_ to the selection.
           //
           // If the sole selection is the bookmarks toolbar folder, we insert
           // into it even if it is not opened
           var itemId =
             PlacesUtils.getConcreteItemId(resultView.nodeForTreeIndex(max.value));
           if (selection.count == 1 && resultView.isContainer(max.value) &&
-              (resultView.isContainerOpen(max.value) ||
-               itemId == PlacesUtils.bookmarksMenuFolderId))
+              !this.flatList)
             orientation = Ci.nsITreeView.DROP_ON;
 
           this._cachedInsertionPoint =
             this._getInsertionPoint(max.value, orientation);
           return this._cachedInsertionPoint;
         ]]></getter>
       </property>
       
@@ -502,30 +502,32 @@
 
       <method name="_getInsertionPoint">
         <parameter name="index"/>
         <parameter name="orientation"/>
         <body><![CDATA[ 
           var result = this.getResult();
           var resultview = this.getResultView();
           var container = result.root;
+          var dropNearItemId = -1;
           NS_ASSERT(container, "null container");
           // When there's no selection, assume the container is the container
           // the view is populated from (i.e. the result's itemId).
           if (index != -1) {
             var lastSelected = resultview.nodeForTreeIndex(index);
             if (resultview.isContainer(index) && orientation == Ci.nsITreeView.DROP_ON) {
               // If the last selected item is an open container, append _into_
               // it, rather than insert adjacent to it. 
               container = lastSelected;
               index = -1;
             }
             else if (!this._disallowInsertion(lastSelected) &&
                      lastSelected.containerOpen &&
-                     orientation == Ci.nsITreeView.DROP_AFTER) {
+                     orientation == Ci.nsITreeView.DROP_AFTER &&
+                     lastSelected.hasChildren) {
              // If the last selected item is an open container and the user is
              // trying to drag into it as a first item, really insert into it.
              container = lastSelected;
              orientation = Ci.nsITreeView.DROP_BEFORE;
              index = 0;
             }
             else {
               // Use the last-selected node's container unless the root node
@@ -534,36 +536,44 @@
               container = lastSelected.parent || container;
 
               // avoid the potentially expensive call to getIndexOfNode() 
               // if we know this container doesn't allow insertion
               if (this._disallowInsertion(container))
                 return null;
 
               var queryOptions = asQuery(result.root).queryOptions;
-              if (queryOptions.excludeItems || queryOptions.excludeQueries ||
-                  queryOptions.excludeReadOnlyFolders ||
-                  queryOptions.sortingMode != Ci.nsINavHistoryQueryOptions.SORT_BY_NONE) {
-                // If we are within either a sorted view or a view in which
-                // some items may be invisible, insert at the end
-                index = -1;   
+              if (queryOptions.sortingMode !=
+                    Ci.nsINavHistoryQueryOptions.SORT_BY_NONE) {
+                // If we are within a sorted view, insert at the end
+                index = -1;
+              }
+              else if (queryOptions.excludeItems ||
+                       queryOptions.excludeQueries ||
+                       queryOptions.excludeReadOnlyFolders) {
+                // Some item may be invisible, insert near last selected one.
+                // We don't replace index here to avoid requests to the db,
+                // instead it will be calculated later by the controller.
+                index = -1;
+                dropNearItemId = lastSelected.itemId;
               }
               else {
                 var lsi = PlacesUtils.getIndexOfNode(lastSelected);
                 index = orientation == Ci.nsITreeView.DROP_BEFORE ? lsi : lsi + 1;
               }
             }
           }
 
           if (this._disallowInsertion(container))
             return null;
 
           return new InsertionPoint(PlacesUtils.getConcreteItemId(container),
                                     index, orientation,
-                                    PlacesUtils.nodeIsTagQuery(container));
+                                    PlacesUtils.nodeIsTagQuery(container),
+                                    dropNearItemId);
         ]]></body>
       </method>
 
       <!-- nsIPlacesView -->
       <method name="selectAll">
         <body><![CDATA[ 
           this.view.selection.selectAll();
         ]]></body>
@@ -668,18 +678,19 @@
             // Disallow dragging the root node of a tree
             var parent = node.parent;
             if (!parent)
               throw Cr.NS_OK;
 
             // If this node is part of a readonly container (e.g. a livemark) it 
             // cannot be moved, only copied, so we must change the action used
             // by the drag session.
-            if (PlacesUtils.nodeIsReadOnly(parent) ||
-                PlacesUtils.nodeIsTagQuery(parent)) {
+            if (PlacesUtils.nodeIsTagQuery(parent) ||
+                !PlacesControllerDragHelper.canMoveContainerNode(node)) {
+              // XXX DOES NOTHING! dragAction doesn't persist
               dragAction.action = Ci.nsIDragService.DRAGDROP_ACTION_COPY;
               break;
             }
           }
  
           // XXXben - the drag wrapper should do this automatically.
           if (event.ctrlKey)
             dragAction.action = Ci.nsIDragService.DRAGDROP_ACTION_COPY;
@@ -688,38 +699,34 @@
         ]]></body>
       </method>
       
       <!-- nsDragAndDrop -->
       <method name="canDrop">
         <parameter name="event"/>
         <parameter name="session"/>
         <body><![CDATA[ 
-          return this.view.canDrop(-1, -1);
+          var row = { }, col = { }, child = { };
+          this.treeBoxObject.getCellAt(event.clientX, event.clientY, row, col, 
+                                       child);
+          return this.view.canDrop(row.value, -1);
         ]]></body>
       </method>
       
       <!-- nsDragAndDrop -->
       <method name="onDragOver">
         <parameter name="event"/>
         <parameter name="flavor"/>
         <parameter name="session"/>
         <body><![CDATA[ 
-          // When the user is dragging over an empty area of the tree, make 
-          // sure canDrop is set to true to indicate dropping into the bucket.
-          var row = { }, col = { }, child = { };
-          this.treeBoxObject.getCellAt(event.clientX, event.clientY, row, col, 
-                                       child);
-          if (row.value == -1) {
-            var dragService = 
-                Cc["@mozilla.org/widget/dragservice;1"].
-                getService(Ci.nsIDragService);
-            var dragSession = dragService.getCurrentSession();
-            dragSession.canDrop = this.canDrop(-1, 1);
-          }
+          var dragService = 
+              Cc["@mozilla.org/widget/dragservice;1"].
+              getService(Ci.nsIDragService);
+          var dragSession = dragService.getCurrentSession();
+          dragSession.canDrop = this.canDrop(event, session);
         ]]></body>
       </method>
 
       <!-- nsDragAndDrop -->
       <method name="getSupportedFlavours">
         <body><![CDATA[
           var flavorSet = new FlavourSet();
           var types = PlacesUIUtils.GENERIC_VIEW_DROP_TYPES;
--- a/browser/components/places/content/treeView.js
+++ b/browser/components/places/content/treeView.js
@@ -135,16 +135,20 @@ PlacesTreeView.prototype = {
   },
 
   /**
    * Call to completely rebuild the list of visible items. Note if there is no
    * tree or root this will just clear out the list, so you can also call this
    * when a tree is detached to clear the list.
    */
   _buildVisibleList: function PTV__buildVisibleList() {
+    var selection = this.selection;
+    if (selection)
+      selection.selectEventsSuppressed = true;
+
     if (this._result) {
       // Any current visible elements need to be marked as invisible.
       for (var i = 0; i < this._visibleElements.length; i++) {
         this._visibleElements[i].node.viewIndex = -1;
       }
     }
 
     var rootNode = this._result.root;
@@ -158,21 +162,22 @@ PlacesTreeView.prototype = {
           { node: this._result.root, properties: null });
         this._tree.rowCountChanged(0, 1);
         this._result.root.viewIndex = 0;
       }
       else if (!rootNode.containerOpen) {
         // this triggers containerOpened which then builds the visible
         // section
         rootNode.containerOpen = true;
-        return;
       }
-
-      this.invalidateContainer(rootNode);
+      else
+        this.invalidateContainer(rootNode);
     }
+    if (selection)
+      selection.selectEventsSuppressed = false;
   },
 
   /**
    * This takes a container and recursively appends visible elements to the
    * given array. This is used to build the visible element list (with
    * this._visibleElements passed as the array), or portions thereof (with
    * a separate array that is merged with the main list later.
    *
@@ -989,19 +994,16 @@ PlacesTreeView.prototype = {
       // The user cannot drop an item into itself or a read-only container
       var dragService =  Cc["@mozilla.org/widget/dragservice;1"].
                          getService(Ci.nsIDragService);
       var dragSession = dragService.getCurrentSession();
       var elt = dragSession.sourceNode.parentNode;
       if (elt.localName == "tree" && elt.view == this &&
           this.selection.isSelected(aRow))
         return false;
-      if (node.parent && PlacesUtils.nodeIsReadOnly(node.parent) &&
-          !PlacesUtils.nodeIsTagQuery(node))
-        return false;
     }
   
     var ip = this._getInsertionPoint(aRow, aOrientation);
     return ip && PlacesControllerDragHelper.canDrop(ip);
   },
 
   // XXXmano: these two are copied over from tree.xml, to fix this we need to
   // either add a helper to PlacesUtils or keep it here and add insertionPoint
@@ -1012,29 +1014,31 @@ PlacesTreeView.prototype = {
       return false;
     // Disallow insertion of items under readonly folders
     return (!PlacesUtils.nodeIsFolder(aContainer) ||
             PlacesUtils.nodeIsReadOnly(aContainer));
   },
 
   _getInsertionPoint: function PTV__getInsertionPoint(index, orientation) {
     var container = this._result.root;
+    var dropNearItemId = -1;
     // When there's no selection, assume the container is the container
     // the view is populated from (i.e. the result's itemId).
     if (index != -1) {
       var lastSelected = this.nodeForTreeIndex(index);
       if (this.isContainer(index) && orientation == Ci.nsITreeView.DROP_ON) {
         // If the last selected item is an open container, append _into_
         // it, rather than insert adjacent to it. 
         container = lastSelected;
         index = -1;
       }
       else if (!this._disallowInsertion(lastSelected) &&
                lastSelected.containerOpen &&
-               orientation == Ci.nsITreeView.DROP_AFTER) {
+               orientation == Ci.nsITreeView.DROP_AFTER &&
+               lastSelected.hasChildren) {
         // If the last selected item is an open container and the user is
         // trying to drag into it as a first item, really insert into it.
         container = lastSelected;
         orientation = Ci.nsITreeView.DROP_BEFORE;
         index = 0;
       }
       else {
         // Use the last-selected node's container unless the root node
@@ -1042,27 +1046,44 @@ PlacesTreeView.prototype = {
         // insertion point.
         container = lastSelected.parent || container;
 
         // avoid the potentially expensive call to getIndexOfNode() 
         // if we know this container doesn't allow insertion
         if (this._disallowInsertion(container))
           return null;
 
-        var lsi = PlacesUtils.getIndexOfNode(lastSelected);
-        index = orientation == Ci.nsITreeView.DROP_BEFORE ? lsi : lsi + 1;
+        var queryOptions = asQuery(this._result.root).queryOptions;
+        if (queryOptions.sortingMode != Ci.nsINavHistoryQueryOptions.SORT_BY_NONE) {
+          // If we are within a sorted view, insert at the end
+          index = -1;
+        }
+        else if (queryOptions.excludeItems ||
+                 queryOptions.excludeQueries ||
+                 queryOptions.excludeReadOnlyFolders) {
+          // Some item may be invisible, insert near last selected one.
+          // We don't replace index here to avoid requests to the db,
+          // instead it will be calculated later by the controller.
+          index = -1;
+          dropNearItemId = lastSelected.itemId;
+        }
+        else {
+          var lsi = PlacesUtils.getIndexOfNode(lastSelected);
+          index = orientation == Ci.nsITreeView.DROP_BEFORE ? lsi : lsi + 1;
+        }
       }
     }
 
     if (this._disallowInsertion(container))
       return null;
 
     return new InsertionPoint(PlacesUtils.getConcreteItemId(container),
                               index, orientation,
-                              PlacesUtils.nodeIsTagQuery(container));
+                              PlacesUtils.nodeIsTagQuery(container),
+                              dropNearItemId);
   },
 
   drop: function PTV_drop(aRow, aOrientation) {
     // We are responsible for translating the |index| and |orientation| 
     // parameters into a container id and index within the container, 
     // since this information is specific to the tree view.
     var ip = this._getInsertionPoint(aRow, aOrientation);
     if (!ip)
--- a/browser/components/places/content/utils.js
+++ b/browser/components/places/content/utils.js
@@ -55,16 +55,17 @@ var Cr = Components.results;
 });
 
 const LOAD_IN_SIDEBAR_ANNO = "bookmarkProperties/loadInSidebar";
 const DESCRIPTION_ANNO = "bookmarkProperties/description";
 const LMANNO_FEEDURI = "livemark/feedURI";
 const LMANNO_SITEURI = "livemark/siteURI";
 const ORGANIZER_FOLDER_ANNO = "PlacesOrganizer/OrganizerFolder";
 const ORGANIZER_QUERY_ANNO = "PlacesOrganizer/OrganizerQuery";
+const ORGANIZER_LEFTPANE_VERSION = 4;
 
 #ifdef XP_MACOSX
 // On Mac OSX, the transferable system converts "\r\n" to "\n\n", where we
 // really just want "\n".
 const NEWLINE= "\n";
 #else
 // On other platforms, the transferable system converts "\r\n" to "\n".
 const NEWLINE = "\r\n";
@@ -249,20 +250,21 @@ var PlacesUIUtils = {
     function getChildItemsTransactions(aChildren) {
       var childItemsTransactions = [];
       var cc = aChildren.length;
       var index = aIndex;
       for (var i = 0; i < cc; ++i) {
         var txn = null;
         var node = aChildren[i];
 
-        // adjusted to make sure that items are given the correct index -
-        // transactions insert differently if index == -1
-        if (aIndex > -1)
-          index = aIndex + i;
+        // Make sure that items are given the correct index, this will be
+        // passed by the transaction manager to the backend for the insertion.
+        // Insertion behaves differently if index == DEFAULT_INDEX (append)
+        if (aIndex != PlacesUtils.bookmarks.DEFAULT_INDEX)
+          index = i;
 
         if (node.type == PlacesUtils.TYPE_X_MOZ_PLACE_CONTAINER) {
           if (node.livemark && node.annos) // node is a livemark
             txn = self._getLivemarkCopyTransaction(node, aContainer, index);
           else
             txn = self._getFolderCopyTransaction(node, aContainer, index);
         }
         else if (node.type == PlacesUtils.TYPE_X_MOZ_PLACE_SEPARATOR)
@@ -418,17 +420,17 @@ var PlacesUIUtils = {
    *        will be shown in the dialog if this is used.
    * @param [optional] aPostData
    *        POST data for POST-style keywords.
    * @param [optional] aCharSet
    *        The character set for the bookmarked page.
    * @return true if any transaction has been performed.
    *
    * Notes:
-   *  - the location, description and "load in sidebar" fields are
+   *  - the location, description and "loadInSidebar" fields are
    *    visible only if there is no initial URI (aURI is null).
    *  - When aDefaultInsertionPoint is not set, the dialog defaults to the
    *    bookmarks root folder.
    */
   showAddBookmarkUI: function PU_showAddBookmarkUI(aURI,
                                                    aTitle,
                                                    aDescription,
                                                    aDefaultInsertionPoint,
@@ -486,17 +488,17 @@ var PlacesUIUtils = {
   showMinimalAddBookmarkUI:
   function PU_showMinimalAddBookmarkUI(aURI, aTitle, aDescription,
                                        aDefaultInsertionPoint, aShowPicker,
                                        aLoadInSidebar, aKeyword, aPostData,
                                        aCharSet) {
     var info = {
       action: "add",
       type: "bookmark",
-      hiddenRows: ["location", "description", "load in sidebar"]
+      hiddenRows: ["location", "description", "loadInSidebar"]
     };
     if (aURI)
       info.uri = aURI;
 
     // allow default empty title
     if (typeof(aTitle) == "string")
       info.title = aTitle;
 
@@ -633,43 +635,29 @@ var PlacesUIUtils = {
       type: "folder",
       hiddenRows: ["description"],
       URIList: aURIList
     };
     this._showBookmarkDialog(info, true);
   },
 
   /**
-   * Opens the bookmark properties panel for a given bookmark identifier.
+   * Opens the properties dialog for a given item identifier.
    *
-   * @param aId
-   *        bookmark identifier for which the properties are to be shown
+   * @param aItemId
+   *        item identifier for which the properties are to be shown
+   * @param aType
+   *        item type, either "bookmark" or "folder"
    * @return true if any transaction has been performed.
    */
-  showBookmarkProperties: function PU_showBookmarkProperties(aId) {
+  showItemProperties: function PU_showItemProperties(aItemId, aType) {
     var info = {
       action: "edit",
-      type: "bookmark",
-      bookmarkId: aId
-    };
-    return this._showBookmarkDialog(info);
-  },
-
-  /**
-   * Opens the folder properties panel for a given folder ID.
-   *
-   * @param aId
-   *        an integer representing the ID of the folder to edit
-   * @return true if any transaction has been performed.
-   */
-  showFolderProperties: function PU_showFolderProperties(aId) {
-    var info = {
-      action: "edit",
-      type: "folder",
-      folderId: aId
+      type: aType,
+      itemId: aItemId
     };
     return this._showBookmarkDialog(info);
   },
 
   /**
    * Shows the "New Folder" dialog.
    *
    * @param [optional] aTitle
@@ -1124,24 +1112,36 @@ var PlacesUIUtils = {
     this.leftPaneFolderId;
     return this.leftPaneQueries;
   },
 
   // get the folder id for the organizer left-pane folder
   get leftPaneFolderId() {
     var leftPaneRoot = -1;
     var allBookmarksId;
-    var items = PlacesUtils.annotations.getItemsWithAnnotation(ORGANIZER_FOLDER_ANNO, {});
-    if (items.length != 0 && items[0] != -1)
+    var items = PlacesUtils.annotations
+                           .getItemsWithAnnotation(ORGANIZER_FOLDER_ANNO, {});
+    if (items.length != 0 && items[0] != -1) {
       leftPaneRoot = items[0];
+      // check organizer left pane version
+      var version = PlacesUtils.annotations
+                               .getItemAnnotation(leftPaneRoot, ORGANIZER_FOLDER_ANNO);
+      if (version != ORGANIZER_LEFTPANE_VERSION) {
+        // If version is not valid we must rebuild the left pane.
+        PlacesUtils.bookmarks.removeFolder(leftPaneRoot);
+        leftPaneRoot = -1;
+      }
+    }
+
     if (leftPaneRoot != -1) {
       // Build the leftPaneQueries Map
       delete this.leftPaneQueries;
       this.leftPaneQueries = {};
-      var items = PlacesUtils.annotations.getItemsWithAnnotation(ORGANIZER_QUERY_ANNO, { });
+      var items = PlacesUtils.annotations
+                             .getItemsWithAnnotation(ORGANIZER_QUERY_ANNO, {});
       for (var i=0; i < items.length; i++) {
         var queryName = PlacesUtils.annotations
                                    .getItemAnnotation(items[i], ORGANIZER_QUERY_ANNO);
         this.leftPaneQueries[queryName] = items[i];
       }
       delete this.leftPaneFolderId;
       return this.leftPaneFolderId = leftPaneRoot;
     }
@@ -1150,16 +1150,18 @@ var PlacesUIUtils = {
     const EXPIRE_NEVER = PlacesUtils.annotations.EXPIRE_NEVER;
     var callback = {
       runBatched: function(aUserData) {
         delete self.leftPaneQueries;
         self.leftPaneQueries = { };
 
         // Left Pane Root Folder
         leftPaneRoot = PlacesUtils.bookmarks.createFolder(PlacesUtils.placesRootId, "", -1);
+        // ensure immediate children can't be removed
+        PlacesUtils.bookmarks.setFolderReadonly(leftPaneRoot, true);
 
         // History Query
         let uri = PlacesUtils._uri("place:sort=4&");
         let title = self.getString("OrganizerQueryHistory");
         let itemId = PlacesUtils.bookmarks.insertBookmark(leftPaneRoot, uri, -1, title);
         PlacesUtils.annotations.setItemAnnotation(itemId, ORGANIZER_QUERY_ANNO,
                                                   "History", 0, EXPIRE_NEVER);
         self.leftPaneQueries["History"] = itemId;
@@ -1180,16 +1182,19 @@ var PlacesUIUtils = {
         // All Bookmarks Folder
         title = self.getString("OrganizerQueryAllBookmarks");
         itemId = PlacesUtils.bookmarks.createFolder(leftPaneRoot, title, -1);
         allBookmarksId = itemId;
         PlacesUtils.annotations.setItemAnnotation(itemId, ORGANIZER_QUERY_ANNO,
                                                   "AllBookmarks", 0, EXPIRE_NEVER);
         self.leftPaneQueries["AllBookmarks"] = itemId;
 
+        // disallow manipulating this folder within the organizer UI
+        PlacesUtils.bookmarks.setFolderReadonly(allBookmarksId, true);
+
         // All Bookmarks->Bookmarks Toolbar Query
         uri = PlacesUtils._uri("place:folder=TOOLBAR");
         itemId = PlacesUtils.bookmarks.insertBookmark(allBookmarksId, uri, -1, null);
         PlacesUtils.annotations.setItemAnnotation(itemId, ORGANIZER_QUERY_ANNO,
                                                   "BookmarksToolbar", 0, EXPIRE_NEVER);
         self.leftPaneQueries["BookmarksToolbar"] = itemId;
 
         // All Bookmarks->Bookmarks Menu Query
@@ -1207,18 +1212,20 @@ var PlacesUIUtils = {
                                                   EXPIRE_NEVER);
         self.leftPaneQueries["UnfiledBookmarks"] = itemId;
 
         // disallow manipulating this folder within the organizer UI
         PlacesUtils.bookmarks.setFolderReadonly(leftPaneRoot, true);
       }
     };
     PlacesUtils.bookmarks.runInBatchMode(callback, null);
-    PlacesUtils.annotations.setItemAnnotation(leftPaneRoot, ORGANIZER_FOLDER_ANNO,
-                                              true, 0, EXPIRE_NEVER);
+    PlacesUtils.annotations.setItemAnnotation(leftPaneRoot,
+                                              ORGANIZER_FOLDER_ANNO,
+                                              ORGANIZER_LEFTPANE_VERSION,
+                                              0, EXPIRE_NEVER);
     delete this.leftPaneFolderId;
     return this.leftPaneFolderId = leftPaneRoot;
   },
 
   get allBookmarksFolderId() {
     // ensure the left-pane root is initialized;
     this.leftPaneFolderId;
     delete this.allBookmarksFolderId;
--- a/browser/components/places/tests/browser/Makefile.in
+++ b/browser/components/places/tests/browser/Makefile.in
@@ -40,12 +40,13 @@ srcdir		= @srcdir@
 VPATH			= @srcdir@
 relativesrcdir  = browser/components/places/tests/browser
 
 include $(DEPTH)/config/autoconf.mk
 include $(topsrcdir)/config/rules.mk
 
 _BROWSER_TEST_FILES = \
 	browser_425884.js \
+	browser_423515.js \
 	$(NULL)
 
 libs:: $(_BROWSER_TEST_FILES)
 	$(INSTALL) $(foreach f,$^,"$f") $(DEPTH)/_tests/testing/mochitest/browser/$(relativesrcdir)
new file mode 100644
--- /dev/null
+++ b/browser/components/places/tests/browser/browser_423515.js
@@ -0,0 +1,243 @@
+/* vim:set ts=2 sw=2 sts=2 et: */
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Places test code.
+ *
+ * The Initial Developer of the Original Code is Mozilla Corp.
+ * Portions created by the Initial Developer are Copyright (C) 2008
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ *  Dietrich Ayala <dietrich@mozilla.com>
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+function test() {
+  // sanity check
+  ok(PlacesUtils, "checking PlacesUtils, running in chrome context?");
+  ok(PlacesUIUtils, "checking PlacesUIUtils, running in chrome context?");
+  ok(PlacesControllerDragHelper, "checking PlacesControllerDragHelper, running in chrome context?");
+
+  const IDX = PlacesUtils.bookmarks.DEFAULT_INDEX;
+
+  // setup
+  var rootId = PlacesUtils.bookmarks.createFolder(PlacesUtils.toolbarFolderId, "", IDX);
+  var rootNode = PlacesUtils.getFolderContents(rootId, false, true).root;
+  is(rootNode.childCount, 0, "confirm test root is empty");
+
+  var tests = [];
+
+  // add a regular folder, should be moveable
+  tests.push({
+    populate: function() {
+      this.id =
+        PlacesUtils.bookmarks.createFolder(rootId, "", IDX);
+    },
+    validate: function() {
+      is(rootNode.childCount, 1,
+        "populate added data to the test root");
+      is(PlacesControllerDragHelper.canMoveContainer(this.id),
+         true, "can move regular folder id");
+      is(PlacesControllerDragHelper.canMoveContainerNode(rootNode.getChild(0)),
+         true, "can move regular folder node");
+    }
+  });
+
+  // add a regular folder shortcut, should be moveable
+  tests.push({
+    populate: function() {
+      this.folderId =
+        PlacesUtils.bookmarks.createFolder(rootId, "foo", IDX);
+      this.shortcutId =
+        PlacesUtils.bookmarks.insertBookmark(rootId, makeURI("place:folder="+this.folderId), IDX, "bar");
+    },
+    validate: function() {
+      is(rootNode.childCount, 2,
+        "populated data to the test root");
+
+      var folderNode = rootNode.getChild(0);
+      is(folderNode.type, 6, "node is folder");
+      is(this.folderId, folderNode.itemId, "folder id and folder node item id match");
+
+      var shortcutNode = rootNode.getChild(1);
+      is(shortcutNode.type, 9, "node is folder shortcut");
+      is(this.shortcutId, shortcutNode.itemId, "shortcut id and shortcut node item id match");
+
+      var concreteId = PlacesUtils.getConcreteItemId(shortcutNode);
+      is(concreteId, folderNode.itemId, "shortcut node id and concrete id match");
+
+      is(PlacesControllerDragHelper.canMoveContainer(this.shortcutId),
+         true, "can move folder shortcut id");
+
+      is(PlacesControllerDragHelper.canMoveContainerNode(shortcutNode),
+         true, "can move folder shortcut node");
+    }
+  });
+
+  // add a regular query, should be moveable
+  tests.push({
+    populate: function() {
+      this.bookmarkId =
+        PlacesUtils.bookmarks.insertBookmark(rootId, makeURI("http://foo.com"), IDX, "foo");
+      this.queryId =
+        PlacesUtils.bookmarks.insertBookmark(rootId, makeURI("place:terms=foo"), IDX, "bar");
+    },
+    validate: function() {
+      is(rootNode.childCount, 2,
+        "populated data to the test root");
+
+      var bmNode = rootNode.getChild(0);
+      is(bmNode.itemId, this.bookmarkId, "bookmark id and bookmark node item id match");
+
+      var queryNode = rootNode.getChild(1);
+      is(queryNode.itemId, this.queryId, "query id and query node item id match");
+
+      is(PlacesControllerDragHelper.canMoveContainer(this.queryId),
+         true, "can move query id");
+
+      is(PlacesControllerDragHelper.canMoveContainerNode(queryNode),
+         true, "can move query node");
+    }
+  });
+
+  // test that special folders cannot be moved
+  // test that special folders shortcuts can be moved
+  tests.push({
+    folders: [PlacesUtils.bookmarksMenuFolderId,
+              PlacesUtils.tagsFolderId, PlacesUtils.unfiledBookmarksFolderId,
+              PlacesUtils.toolbarFolderId],
+    shortcuts: {},
+    populate: function() {
+      for (var i = 0; i < this.folders.length; i++) {
+        var id = this.folders[i];
+        this.shortcuts[id] =
+          PlacesUtils.bookmarks.insertBookmark(rootId, makeURI("place:folder=" + id), IDX, "");
+      }
+    },
+    validate: function() {
+      // test toolbar shortcut node
+      is(rootNode.childCount, this.folders.length,
+        "populated data to the test root");
+
+      function getRootChildNode(aId) {
+        var node = PlacesUtils.getFolderContents(PlacesUtils.placesRootId, false, true).root;
+        for (var i = 0; i < node.childCount; i++) {
+          var child = node.getChild(i);
+          if (child.itemId == aId)
+            return child;
+        }
+      }
+
+      for (var i = 0; i < this.folders.length; i++) {
+        var id = this.folders[i];
+
+        is(PlacesControllerDragHelper.canMoveContainer(id),
+           false, "shouldn't be able to move special folder id");
+
+        //var node = PlacesUtils.getFolderContents(id, false, true).root;
+        var node = getRootChildNode(id);
+        is(PlacesControllerDragHelper.canMoveContainerNode(node),
+           false, "shouldn't be able to move special folder node");
+
+        var shortcutId = this.shortcuts[id];
+        var shortcutNode = rootNode.getChild(i);
+
+        is(shortcutNode.itemId, shortcutId, "shortcut id and shortcut node item id match");
+
+        LOG("can move shortcut id?");
+        is(PlacesControllerDragHelper.canMoveContainer(shortcutId),
+           true, "should be able to move special folder shortcut id");
+
+        LOG("can move shortcut node?");
+        is(PlacesControllerDragHelper.canMoveContainerNode(shortcutNode),
+           true, "should be able to move special folder shortcut node");
+      }
+    }
+  });
+
+  // test that a tag container cannot be moved
+  tests.push({
+    populate: function() {
+      // tag a uri
+      this.uri = makeURI("http://foo.com");
+      PlacesUtils.tagging.tagURI(this.uri, ["bar"]);
+    },
+    validate: function() {
+      // get tag root
+      var query = PlacesUtils.history.getNewQuery();
+      var options = PlacesUtils.history.getNewQueryOptions();
+      options.resultType = Ci.nsINavHistoryQueryOptions.RESULTS_AS_TAG_QUERY;
+      var tagsNode = PlacesUtils.history.executeQuery(query, options).root;
+
+      tagsNode.containerOpen = true;
+      is(tagsNode.childCount, 1, "has new tag");
+
+      var tagNode = tagsNode.getChild(0);
+      
+      is(PlacesControllerDragHelper.canMoveContainerNode(tagNode),
+         false, "should not be able to move tag container node");
+    }
+  });
+
+  // test that any child of a read-only node cannot be moved
+  tests.push({
+    populate: function() {
+      this.id =
+        PlacesUtils.bookmarks.createFolder(rootId, "foo", IDX);
+      PlacesUtils.bookmarks.createFolder(this.id, "bar", IDX);
+      PlacesUtils.bookmarks.setFolderReadonly(this.id, true);
+    },
+    validate: function() {
+      is(rootNode.childCount, 1,
+        "populate added data to the test root");
+      var readOnlyFolder = rootNode.getChild(0);
+
+      // test that we can move the read-only folder
+      is(PlacesControllerDragHelper.canMoveContainer(this.id),
+         true, "can move read-only folder id");
+      is(PlacesControllerDragHelper.canMoveContainerNode(readOnlyFolder),
+         true, "can move read-only folder node");
+
+      // test that we cannot move the child of a read-only folder
+      readOnlyFolder.QueryInterface(Ci.nsINavHistoryContainerResultNode);
+      readOnlyFolder.containerOpen = true;
+      var childFolder = readOnlyFolder.getChild(0);
+
+      is(PlacesControllerDragHelper.canMoveContainer(childFolder.itemId),
+         false, "cannot move a child of a read-only folder");
+      is(PlacesControllerDragHelper.canMoveContainerNode(childFolder),
+         false, "cannot move a child node of a read-only folder node");
+    }
+  });
+
+  tests.forEach(function(aTest) {
+    PlacesUtils.bookmarks.removeFolderChildren(rootId);
+    aTest.populate();
+    aTest.validate();
+  });
+
+  PlacesUtils.bookmarks.removeItem(rootId);
+}
--- a/browser/components/preferences/colors.xul
+++ b/browser/components/preferences/colors.xul
@@ -111,12 +111,12 @@
           <checkbox id="browserUnderlineAnchors" label="&underlineLinks.label;" accesskey="&underlineLinks.accesskey;"
                     preference="browser.underline_anchors"/>
         </hbox>
       </groupbox>
     </hbox>
     <hbox>
       <checkbox id="useDocumentColors" 
                 label="&allowPagesToUse.label;" accesskey="&allowPagesToUse.accesskey;"
-                preference="browser.display.use_document_colors"/>
+                preference="browser.display.use_document_colors" flex="1"/>
     </hbox>
   </prefpane>
 </prefwindow>
--- a/browser/components/safebrowsing/content/globalstore.js
+++ b/browser/components/safebrowsing/content/globalstore.js
@@ -145,23 +145,27 @@ PROT_DataProvider.prototype.updateListMa
  * Lookup the value of a URL from prefs file and do parameter substitution.
  */
 PROT_DataProvider.prototype.getUrlPref_ = function(prefName) {
   var url = this.prefs_.getPref(prefName);
 
   var appInfo = Components.classes["@mozilla.org/xre/app-info;1"]
                           .getService(Components.interfaces.nsIXULAppInfo);
 
-  var mozClientStr = MOZ_OFFICIAL_BUILD ? 'navclient-auto-ffox' : appInfo.name;
+  var mozClientStr = this.prefs_.getPref("browser.safebrowsing.clientid",
+                                         MOZ_OFFICIAL_BUILD ? 'navclient-auto-ffox' : appInfo.name);
+
+  var versionStr = this.prefs_.getPref("browser.safebrowsing.clientver",
+                                       appInfo.version);
 
   // Parameter substitution
   url = url.replace(MOZ_PARAM_LOCALE, this.getLocale_());
   url = url.replace(MOZ_PARAM_CLIENT, mozClientStr);
   url = url.replace(MOZ_PARAM_BUILDID, appInfo.appBuildID);
-  url = url.replace(MOZ_PARAM_VERSION, appInfo.version);
+  url = url.replace(MOZ_PARAM_VERSION, versionStr);
   return url;
 }
 
 /**
  * @return String the browser locale (similar code is in nsSearchService.js)
  */
 PROT_DataProvider.prototype.getLocale_ = function() {
   const localePref = "general.useragent.locale";
--- a/browser/components/search/content/search.xml
+++ b/browser/components/search/content/search.xml
@@ -92,17 +92,17 @@
             <xul:menuitem class="open-engine-manager"
                           anonid="open-engine-manager"
                           label="&cmd_engineManager.label;"
 # The empty tooltiptext attribute is here to avoid bug 336231
                           tooltiptext=""
                           oncommand="openManager(event);"/>
           </xul:menupopup>
         </xul:button>
-        <xul:hbox class="search-go-container">
+        <xul:hbox class="search-go-container" chromedir="&locale.dir;">
           <xul:image class="search-go-button"
                      anonid="search-go-button"
                      chromedir="&locale.dir;"
                      onclick="handleSearchCommand(event);"
                      tooltiptext="&searchEndCap.label;" />
         </xul:hbox>
       </xul:textbox>
     </content>
--- a/browser/components/shell/src/nsWindowsShellService.cpp
+++ b/browser/components/shell/src/nsWindowsShellService.cpp
@@ -61,17 +61,23 @@
 #include "nsDirectoryServiceUtils.h"
 #include "nsAppDirectoryServiceDefs.h"
 #include "nsDirectoryServiceDefs.h"
 #include "nsIWindowsRegKey.h"
 #include "nsUnicharUtils.h"
 
 #include "windows.h"
 #include "shellapi.h"
-#include "shlobj.h"
+
+#ifdef _WIN32_WINNT
+#undef _WIN32_WINNT
+#endif
+#define _WIN32_WINNT 0x0600
+#define INITGUID
+#include <shlobj.h>
 
 #include <mbstring.h>
 
 #ifndef MAX_BUF
 #define MAX_BUF 4096
 #endif
 
 #define REG_SUCCEEDED(val) \
@@ -210,87 +216,43 @@ static SETTING gSettings[] = {
 
   // Protocol Handlers
   { MAKE_KEY_NAME1("HTTP", DI),    "", VAL_FILE_ICON, APP_PATH_SUBSTITUTION },
   { MAKE_KEY_NAME1("HTTP", SOP),   "", VAL_OPEN, APP_PATH_SUBSTITUTION },
   { MAKE_KEY_NAME1("HTTPS", DI),   "", VAL_FILE_ICON, APP_PATH_SUBSTITUTION },
   { MAKE_KEY_NAME1("HTTPS", SOP),  "", VAL_OPEN, APP_PATH_SUBSTITUTION }
 };
 
-
-// Support for versions of shlobj.h that don't include the Vista API's
-#if !defined(IApplicationAssociationRegistration)
-
-typedef enum tagASSOCIATIONLEVEL {
-  AL_MACHINE,
-  AL_EFFECTIVE,
-  AL_USER
-} ASSOCIATIONLEVEL;
-
-typedef enum tagASSOCIATIONTYPE {
-  AT_FILEEXTENSION,
-  AT_URLPROTOCOL,
-  AT_STARTMENUCLIENT,
-  AT_MIMETYPE
-} ASSOCIATIONTYPE;
-
-MIDL_INTERFACE("4e530b0a-e611-4c77-a3ac-9031d022281b")
-IApplicationAssociationRegistration : public IUnknown
-{
- public:
-  virtual HRESULT STDMETHODCALLTYPE QueryCurrentDefault(LPCWSTR pszQuery,
-                                                        ASSOCIATIONTYPE atQueryType,
-                                                        ASSOCIATIONLEVEL alQueryLevel,
-                                                        LPWSTR *ppszAssociation) = 0;
-  virtual HRESULT STDMETHODCALLTYPE QueryAppIsDefault(LPCWSTR pszQuery,
-                                                      ASSOCIATIONTYPE atQueryType,
-                                                      ASSOCIATIONLEVEL alQueryLevel,
-                                                      LPCWSTR pszAppRegistryName,
-                                                      BOOL *pfDefault) = 0;
-  virtual HRESULT STDMETHODCALLTYPE QueryAppIsDefaultAll(ASSOCIATIONLEVEL alQueryLevel,
-                                                         LPCWSTR pszAppRegistryName,
-                                                         BOOL *pfDefault) = 0;
-  virtual HRESULT STDMETHODCALLTYPE SetAppAsDefault(LPCWSTR pszAppRegistryName,
-                                                    LPCWSTR pszSet,
-                                                    ASSOCIATIONTYPE atSetType) = 0;
-  virtual HRESULT STDMETHODCALLTYPE SetAppAsDefaultAll(LPCWSTR pszAppRegistryName) = 0;
-  virtual HRESULT STDMETHODCALLTYPE ClearUserAssociations(void) = 0;
-};
-#endif
-
-static const CLSID CLSID_ApplicationAssociationReg = {0x591209C7,0x767B,0x42B2,{0x9F,0xBA,0x44,0xEE,0x46,0x15,0xF2,0xC7}};
-static const IID   IID_IApplicationAssociationReg  = {0x4e530b0a,0xe611,0x4c77,{0xa3,0xac,0x90,0x31,0xd0,0x22,0x28,0x1b}};
-
-
 PRBool
 nsWindowsShellService::IsDefaultBrowserVista(PRBool aStartupCheck, PRBool* aIsDefaultBrowser)
 {
+#if !defined(MOZ_DISABLE_VISTA_SDK_REQUIREMENTS)
   IApplicationAssociationRegistration* pAAR;
   
-  HRESULT hr = CoCreateInstance(CLSID_ApplicationAssociationReg,
+  HRESULT hr = CoCreateInstance(CLSID_ApplicationAssociationRegistration,
                                 NULL,
                                 CLSCTX_INPROC,
-                                IID_IApplicationAssociationReg,
+                                IID_IApplicationAssociationRegistration,
                                 (void**)&pAAR);
   
   if (SUCCEEDED(hr)) {
     hr = pAAR->QueryAppIsDefaultAll(AL_EFFECTIVE,
                                     APP_REG_NAME,
                                     aIsDefaultBrowser);
     
     // If this is the first browser window, maintain internal state that we've
     // checked this session (so that subsequent window opens don't show the 
     // default browser dialog).
     if (aStartupCheck)
       mCheckedThisSession = PR_TRUE;
     
     pAAR->Release();
     return PR_TRUE;
   }
-  
+#endif  
   return PR_FALSE;
 }
 
 NS_IMETHODIMP
 nsWindowsShellService::IsDefaultBrowser(PRBool aStartupCheck,
                                         PRBool* aIsDefaultBrowser)
 {
   // If this is the first browser window, maintain internal state that we've
--- a/browser/components/shell/src/nsWindowsShellService.h
+++ b/browser/components/shell/src/nsWindowsShellService.h
@@ -53,17 +53,16 @@ public:
   virtual ~nsWindowsShellService() {};
 
   NS_DECL_ISUPPORTS
   NS_DECL_NSISHELLSERVICE
   NS_DECL_NSIWINDOWSSHELLSERVICE
 
 protected:
   PRBool    IsDefaultBrowserVista(PRBool aStartupCheck, PRBool* aIsDefaultBrowser);
-  PRBool    SetDefaultBrowserVista();
 
   PRBool    GetMailAccountKey(HKEY* aResult);
   void      SetRegKey(const nsString& aKeyName,
                       const nsString& aValueName,
                       const nsString& aValue, PRBool aHKLMOnly);
 
   DWORD     DeleteRegKey(HKEY baseKey, const nsString& keyName);
   DWORD     DeleteRegKeyDefaultValue(HKEY baseKey,
--- a/browser/installer/removed-files.in
+++ b/browser/installer/removed-files.in
@@ -98,16 +98,35 @@ extensions/inspector@mozilla.org/compone
 extensions/inspector@mozilla.org/components/@DLL_PREFIX@inspector@DLL_SUFFIX@
 extensions/inspector@mozilla.org/chrome/icons/default/winInspectorMain.ico
 uninstall/UninstallFirefox.exe
 uninstall/UninstallDeerPark.exe
 uninstall/uninst.exe
 uninstall/uninstall.exe
 components/myspell/en-US.dic
 components/myspell/en-US.aff
+searchplugins/centrum-cz.xml
+searchplugins/eBay-fy-NL.xml
+searchplugins/eBay-nl.xml
+searchplugins/eBay-zh-CN.xml
+searchplugins/eBay-zh-TW.xml
+searchplugins/filesearchru.xml
+searchplugins/goo.xml
+searchplugins/google-ar.xml
+searchplugins/grandiccionari.xml
+searchplugins/lingvo.yandex.ru.xml
+searchplugins/nana.xml
+searchplugins/netex.xml
+searchplugins/nosaltres.xml
+searchplugins/pbi-pl.xml
+searchplugins/taobao.xml
+searchplugins/wikipedia-zh.xml
+searchplugins/yahoo-jp-shopping.xml
+searchplugins/yahoo-ru.xml
+searchplugins/yahoo-zh-CN.xml
 searchplugins/DRAE.src
 searchplugins/DRAE.png
 searchplugins/DRAE.gif
 searchplugins/MediaDICO-fr.src
 searchplugins/MediaDICO-fr.png
 searchplugins/MediaDICO-fr.gif
 searchplugins/allegro-pl.src
 searchplugins/allegro-pl.png
--- a/browser/locales/en-US/os2/README.txt
+++ b/browser/locales/en-US/os2/README.txt
@@ -260,15 +260,15 @@ milestone release.
 - Firefox will beep when copying more than 64 kB of text to the clipboard.
   This is to alert users that many applications (most notably the system
   editor, EPM, and applications running in VIO windows) cannot paste more
   than this.
 
 - Firefox cannot make use of OS/2 fonts like WarpSans and others which
   are not available in Type1 or TrueType format. It is therefore
   recommended to install the "Workplace Sans" font from
-     http://www.cs-club.org/~alex/creative/fonts/
+     http://users.socis.ca/~ataylo00/creative/fonts/
   or
      http://hobbes.nmsu.edu/cgi-bin/h-search?key=wpsu_ttf
   which Firefox will use as a replacement of WarpSans.
 
 Other known problems can be found by following the link "Current Open Warpzilla
 Bugs" on the OS/2 Mozilla page <http://www.mozilla.org/ports/os2/>.
--- a/browser/locales/shipped-locales
+++ b/browser/locales/shipped-locales
@@ -1,27 +1,27 @@
 af
-ar linux win32
+ar
 be
 ca
 cs
 da
 de
 el
 en-GB
 en-US
 es-AR
 es-ES
 eu
 fi
 fr
 fy-NL
 ga-IE
 gu-IN linux win32
-he linux win32
+he
 hu
 id
 it
 ja linux win32
 ja-JP-mac osx
 ka
 ko
 ku
--- a/browser/themes/gnomestripe/browser/browser.css
+++ b/browser/themes/gnomestripe/browser/browser.css
@@ -876,18 +876,24 @@ toolbar[iconsize="small"] #paste-button[
   padding: 0 2px;
   margin: 0;
 }
 
 #identity-icon-label[value=""] {
   display: none;
 }
 
+#identity-box.verifiedDomain > hbox {
+  background-color: rgba(30, 80, 170, 0.7);
+  color: white;
+}
+
 #identity-box.verifiedIdentity > hbox {
-  background-color: rgba(0, 255, 0, 0.25);
+  background-color: rgba(50, 150, 50, 0.8);
+  color: white;
 }
 
 /* Identity popup icons */
 #identity-popup-icon {
   height: 64px;
   width: 64px;
   padding: 0;
   list-style-image: url("chrome://browser/skin/identity.png");
@@ -950,25 +956,16 @@ toolbar[iconsize="small"] #paste-button[
 /* Identity popup bounding box */
 #identity-popup-container {
   background-image: none;
   background-color: white;
   min-width: 280px;
   padding: 10px;
 }
 
-/* Secure site coloring */
-#urlbar[level="high"][pageproxystate="valid"] > .autocomplete-textbox-container,
-#urlbar[level="low"][pageproxystate="valid"] > .autocomplete-textbox-container,
-#urlbar[level="high"][pageproxystate="valid"] #autocomplete-security-wrapper,
-#urlbar[level="low"][pageproxystate="valid"] #autocomplete-security-wrapper {
-  background-color: #F5F6BE; /* #F7F898; */
-  color: #000000;
-}
-
 #urlbar > .autocomplete-textbox-container {
   -moz-binding: url(chrome://browser/skin/browser.xml#autocomplete-security-wrapper);
 }
 
 #autocomplete-security-wrapper {
   /* keep the URL bar content LTR */
   direction: ltr;
   -moz-box-align: stretch;
@@ -1160,63 +1157,59 @@ statusbarpanel#statusbar-display {
   padding: 0px !important;
   min-width: 0;
   background-color: transparent;
   list-style-image: url("chrome://global/skin/icons/notloading_16.png");
 }
 
 #navigator-throbber[busy="true"] {
   list-style-image: url("chrome://global/skin/icons/loading_16.png");
-  opacity: 0.5;
 }
 
 #navigator-throbber > hbox {
   border-top: 0px;
   border-bottom: 0px;
   padding-bottom: 1px;
 }
 
 toolbar[mode="text"] #navigator-throbber,
 toolbar[iconsize="small"] #navigator-throbber {
   list-style-image: url("chrome://global/skin/icons/notloading_16.png");
 }
 toolbar[mode="text"] #navigator-throbber[busy="true"],
 toolbar[iconsize="small"] #navigator-throbber[busy="true"] {
   list-style-image: url("chrome://global/skin/icons/loading_16.png");
-  opacity: 0.5;
 }
 
 tabpanels {
   -moz-appearance: none;
 }
 
 /* Tabs */
 .tabbrowser-tab {
   border: none !important;
   padding: 0px;
   margin-bottom: 1px;
 }
 
 .tabbrowser-tab[selected="true"] {
   margin-bottom: 0px;
-  font-weight: bold;
 }
 
 .tab-icon-image {
   width: 16px;
   height: 16px;
   -moz-margin-start: 4px;
   -moz-margin-end: 3px;
   list-style-image: url("chrome://global/skin/icons/folder-item.png");
   -moz-image-region: rect(0px, 16px, 16px, 0px);
 }
 
 .tabbrowser-tab[busy] > .tab-icon-image {
   list-style-image: url("chrome://global/skin/icons/loading_16.png") !important;
-  opacity: 0.6;
 }
 
 .tabs-bottom {
   border-bottom: 1px solid threedshadow;
 }
 
 #context_newTab {
   list-style-image: url("chrome://browser/skin/Toolbar-small.png");
@@ -1325,32 +1318,30 @@ tabpanels {
 }
 
 .alltabs-item[selected="true"] {
   font-weight: bold;
 }
 
 .alltabs-item[busy] > .menu-iconic-left > .menu-iconic-icon {
   list-style-image: url("chrome://global/skin/icons/loading_16.png");
-  opacity: 0.6;
 }
 
 .tabs-alltabs-button > .toolbarbutton-icon {
    margin: 0px;
 }
 
 /* Sidebar */
 #sidebar-box .tabs-closebutton {
   margin-bottom: 0px !important;
   padding: 0px 2px 0px 2px !important;
 }
 
 #sidebar-throbber[loading="true"] {
   list-style-image: url("chrome://global/skin/icons/loading_16.png");
-  opacity: 0.5;
   -moz-margin-end: 4px;
 }
 
 toolbarbutton.chevron {
   list-style-image: url("chrome://global/skin/toolbar/chevron.gif") !important;
 }
 
 toolbarbutton.chevron[chromedir="rtl"] {
index e807a531efe73461cc9adf4f878b2b8e8885cdf5..2f97e742a3f0855c97a356c9f699b3bda3ac7c7b
GIT binary patch
literal 4167
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
new file mode 100755
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..a2169ac42d070326a149839f08b7acecfc781935
GIT binary patch
literal 37302
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%0D<=a7qXgvVU8BE1>Ol+DjI~JjNxrquxy~
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
U)3evMCNcnlr>mdKI;Vst09Pjo4*&oF
deleted file mode 100644
index ab4bca4d01cf558145d688f5ba818d0e4e444599..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
--- a/browser/themes/pinstripe/browser/bookmarks/addBookmark.css
+++ /dev/null
@@ -1,108 +0,0 @@
-@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
-@namespace html url("http://www.w3.org/1999/xhtml");
-
-.folder-icon > .menulist-label-box > .menulist-icon,
-.folder-icon > .menu-iconic-left > .menu-iconic-icon {
-  width: 16px;
-  height: 16px;
-}
-
-.folder-icon > .menu-iconic-left {
-  display: -moz-box;
-}
-
-.folder-icon {
-  list-style-image: url("chrome://global/skin/tree/folder.png") !important;
-}
-
-.menulist-icon {
-	margin: 0px !important;
-}
-
-#folder-tree {
-	margin: 6px 0px;
-	font: message-box;
-}
-
-dialog {
-	font: menu;
-}
-
-#expander {
-  -moz-appearance: none;
-  margin-left: 8px;
-  padding: 0px;
-  min-width: 0px;
-}
-
-#addgroup {
-	margin-top: 6px;
-        margin-bottom: 0px;
-}
-
-.up {
-	list-style-image: url("chrome://browser/skin/bookmarks/expander-open.png") !important;
-}
-
-.down {
-	list-style-image: url("chrome://browser/skin/bookmarks/expander-closed.png") !important;
-}
-
-.down:hover:active {
-	list-style-image: url("chrome://browser/skin/bookmarks/expander-closed-active.png") !important;
-}
-
-.up:hover:active {
-	list-style-image: url("chrome://browser/skin/bookmarks/expander-open-active.png") !important;
-}
-
-/* Make the microsummary picker look like a regular textbox instead of 
- * an editable menulist when no microsummaries are available.
- */
-
-menulist#name[droppable="false"] {
-  -moz-appearance: none;
-  margin: 0px;
-  border: none;
-  padding: 0px;
-  height: auto !important;
-}
-
-menulist#name[droppable="false"] > .menulist-editable-box {
-  /* These rules are duplicates of the rules for the textbox element
-   * in textbox.css and should track changes in that file.
-   */
-  -moz-appearance: textfield;
-  cursor: text;
-  margin: 4px 4px;
-  border: 3px solid;
-  -moz-border-top-colors: transparent #888888 #000000;
-  -moz-border-right-colors: transparent #FFFFFF #000000;
-  -moz-border-bottom-colors: transparent #FFFFFF #000000;
-  -moz-border-left-colors: transparent #888888 #000000;
-  -moz-border-radius-topright: 2px;
-  -moz-border-radius-bottomleft: 2px;
-  /*padding: 1px 0px 1px 2px ;*/
-  padding: 0px;
-  background-color: -moz-Field;
-  color: -moz-FieldText;
-}
-
-menulist#name[droppable="false"] > .menulist-editable-box > html|*.textbox-input {
-  margin: 0px !important;
-  border: none !important;
-  padding: 0px !important;
-  background-color: inherit;
-  color: inherit;
-  font: inherit;
-}
-
-/* Hide the drop marker and the popup. */
-
-menulist#name[droppable="false"] > .menulist-dropmarker {
-  display: none;
-}
-
-menulist#name[droppable="false"] > menupopup {
-  display: none;
-}
deleted file mode 100644
index 59bb2bbd14385375f03ef9dcf422fbac7ad10f9f..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index b966b2534c88265695861b7a77b36388509d3a82..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
--- a/browser/themes/pinstripe/browser/bookmarks/bookmarksManager.css
+++ /dev/null
@@ -1,107 +0,0 @@
-#bookmark-window toolbarbutton {
-  list-style-image: url("chrome://browser/skin/bookmarks/Bookmarks-toolbar.png");
-  -moz-box-orient: vertical;
-}
-
-toolbarbutton#newbookmark {
-  -moz-image-region: rect(0px, 168px, 24px, 144px);
-}
-toolbarbutton#newbookmark:not([disabled="true"]):hover {
-  -moz-image-region: rect(24px, 168px, 48px, 144px);
-}
-toolbarbutton#newbookmark[disabled="true"] {
-  -moz-image-region: rect(48px, 168px, 72px, 144px);
-}
-toolbarbutton#newbookmark:not([disabled="true"]):hover:active {
-  -moz-image-region: rect(72px, 168px, 96px, 144px);
-}
-
-toolbarbutton#newfolder {
-  -moz-image-region: rect(0px, 24px, 24px, 0px);
-}
-toolbarbutton#newfolder:not([disabled="true"]):hover {
-  -moz-image-region: rect(24px, 24px, 48px, 0px);
-}
-toolbarbutton#newfolder[disabled="true"] {
-  -moz-image-region: rect(48px, 24px, 72px, 0px);
-}
-toolbarbutton#newfolder:not([disabled="true"]):hover:active {
-  -moz-image-region: rect(72px, 24px, 96px, 0px);
-}
-
-toolbarbutton#newseparator {
-  -moz-image-region: rect(0px, 48px, 24px, 24px);
-}
-toolbarbutton#newseparator:not([disabled="true"]):hover {
-  -moz-image-region: rect(24px, 48px, 48px, 24px);
-}
-toolbarbutton#newseparator[disabled="true"] {
-  -moz-image-region: rect(48px, 48px, 72px, 24px);
-}
-toolbarbutton#newseparator:not([disabled="true"]):hover:active {
-  -moz-image-region: rect(72px, 48px, 96px, 24px);
-}
-
-toolbarbutton#moveBookmark {
-  -moz-image-region: rect(0px, 72px, 24px, 48px);
-}
-toolbarbutton#moveBookmark:not([disabled="true"]):hover {
-  -moz-image-region: rect(24px, 72px, 48px, 48px);
-}
-toolbarbutton#moveBookmark[disabled="true"] {
-  -moz-image-region: rect(48px, 72px, 72px, 48px);
-}
-toolbarbutton#moveBookmark:not([disabled="true"]):hover:active {
-  -moz-image-region: rect(72px, 72px, 96px, 48px);
-}
-
-toolbarbutton#properties {
-  -moz-image-region: rect(0px, 96px, 24px, 72px);
-}
-toolbarbutton#properties:not([disabled="true"]):hover {
-  -moz-image-region: rect(24px, 96px, 48px, 72px);
-}
-toolbarbutton#properties[disabled="true"] {
-  -moz-image-region: rect(48px, 96px, 72px, 72px);
-}
-toolbarbutton#properties:not([disabled="true"]):hover:active {
-  -moz-image-region: rect(72px, 96px, 96px, 72px);
-}
-
-toolbarbutton#rename {
-  -moz-image-region: rect(0px, 120px, 24px, 96px);
-}
-toolbarbutton#rename:not([disabled="true"]):hover {
-  -moz-image-region: rect(24px, 120px, 48px, 96px);
-}
-toolbarbutton#rename[disabled="true"] {
-  -moz-image-region: rect(48px, 120px, 72px, 96px);
-}
-toolbarbutton#rename:not([disabled="true"]):hover:active {
-  -moz-image-region: rect(72px, 120px, 96px, 96px);
-}
-
-toolbarbutton#delete {
-  -moz-image-region: rect(0px, 144px, 24px, 120px);
-}
-toolbarbutton#delete:not([disabled="true"]):hover {
-  -moz-image-region: rect(24px, 144px, 48px, 120px);
-}
-toolbarbutton#delete[disabled="true"] {
-  -moz-image-region: rect(48px, 144px, 72px, 120px);
-}
-toolbarbutton#delete:not([disabled="true"]):hover:active {
-  -moz-image-region: rect(72px, 144px, 96px, 120px);
-}
-
-#bookmarks-search {
-	background-image: none;
-}
-
-.bookmarksTree {
-  margin: 0px !important;
-}
-
-#bookmark-views-splitter {
-  border-right: 1px solid #bebebe;
-}
deleted file mode 100644
--- a/browser/themes/pinstripe/browser/bookmarks/bookmarksProperties.css
+++ /dev/null
@@ -1,90 +0,0 @@
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is Firefox.
- *
- * The Initial Developer of the Original Code is Mozilla.
- * Portions created by the Initial Developer are Copyright (C) 2006
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *   Myk Melez <myk@mozilla.org>
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 2 or later (the "GPL"), or
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
-@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
-@namespace html url("http://www.w3.org/1999/xhtml");
-
-/* Make the microsummary picker look like a regular textbox instead of 
- * an editable menulist when no microsummaries are available.
- */
-
-menulist#name[droppable="false"] {
-  -moz-appearance: none;
-  margin: 0px;
-  border: none;
-  padding: 0px;
-  height: auto !important;
-}
-
-menulist#name[droppable="false"] > .menulist-dropmarker {
-  display: none;
-}
-
-menulist#name[droppable="false"] > .menulist-editable-box {
-  /* These rules are duplicates of the rules for the textbox element
-   * in textbox.css and should track changes in that file.
-   */
-  -moz-appearance: textfield;
-  cursor: text;
-  margin: 2px 4px;
-  border: 2px solid;
-  -moz-border-top-colors: ThreeDShadow ThreeDDarkShadow;
-  -moz-border-right-colors: ThreeDHighlight ThreeDLightShadow;
-  -moz-border-bottom-colors: ThreeDHighlight ThreeDLightShadow;
-  -moz-border-left-colors: ThreeDShadow ThreeDDarkShadow;
-  padding: 2px 2px 3px 4px;
-  background-color: -moz-Field;
-  color: -moz-FieldText;
-}
-
-menulist#name[droppable="false"] > .menulist-editable-box > html|*.textbox-input {
-  margin: 0px !important;
-  border: none !important;
-  padding: 0px !important;
-  background-color: inherit;
-  color: inherit;
-  font: inherit;
-}
-
-/* Hide the drop marker and the popup. */
-
-menulist#name[droppable="false"] > .menulist-dropmarker {
-  display: none;
-}
-
-menulist#name[droppable="false"] > menupopup {
-  display: none;
-}
deleted file mode 100644
index 7ef5f04f9ea9aec76eb9bee7af5aaa2c74a3fb01..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 7850c9e9510b196e7b34398d2c028a457c901418..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 673ead568d21bf9fb2d3ff1d729d8326541740e6..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 76553571d9744faf08b3ca6548eb1ee429fa9cc8..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 53ce25c6bfe18b41bdd1f9f05dad3cc4436d80ff..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 43a8465b69db71c1ef5d2b7be2104bd2990db5c6..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index db3cc03fd5c7e9c63c8291e6edd86ac63defc316..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index abe864c68e8799c86323456c55383f24040fc91b..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index 32af074ad846aad169f5953d8dad64e10feb2350..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
--- a/browser/themes/pinstripe/browser/browser.css
+++ b/browser/themes/pinstripe/browser/browser.css
@@ -69,89 +69,112 @@
   border-bottom: 2px solid;
   -moz-border-bottom-colors: rgba(0,0,0,0.35) transparent;
   padding: 2px 0;
 }
 
 
 /* ----- BOOKMARK BUTTONS ----- */	
 
+toolbarbutton.bookmark-item {
+  font-weight: bold;
+  margin: 0 1px;
+  padding: 0;
+  -moz-padding-start: 7px;
+  min-width: 0;
+  max-width: 13em;
+  color: #222;
+  border: none !important;
+}
+
+toolbarbutton.bookmark-item[type=menu] > .toolbarbutton-menu-dropmarker {
+  -moz-padding-end: 7px;
+}
+
+toolbarbutton.bookmark-item[type=menu] > .toolbarbutton-menu-dropmarker[chromedir="rtl"] {
+  -moz-padding-start: 4px;
+  -moz-padding-end: 2px;
+}
+
+toolbarbutton.bookmark-item[chromedir="rtl"] {
+  -moz-padding-start: 0px;
+  -moz-padding-end: 7px;
+}
+
 .bookmark-item[container] {
   list-style-image: url("chrome://global/skin/tree/folder.png");
 }
 
 .query-item[container] {
   list-style-image: url("chrome://browser/skin/places/history.png");
 }
 
-toolbarbutton.bookmark-item:hover
-{
-  background: url("chrome://global/skin/toolbar/toolbarbutton-customhover-left.png") no-repeat left center;
-}
-
-toolbarbutton.bookmark-item:hover:active, toolbarbutton.bookmark-item[open="true"] {
-  background:url("chrome://browser/skin/bookmark-open-left.png") no-repeat left center;
-}
-
 toolbarbutton.bookmark-item > .toolbarbutton-text-stack > label {
   margin: 0;
 }
 toolbarbutton.bookmark-item > .toolbarbutton-text-stack > .toolbarbutton-text-shadow {
   padding-top: 2px;
   text-align: center;
 }
 
 toolbarbutton.bookmark-item:not([container]) > .toolbarbutton-text-stack {
   -moz-padding-end: 7px;
 }
 
+toolbarbutton.bookmark-item[chromedir="rtl"] > .toolbarbutton-text-stack {
+  -moz-padding-end: 0;
+  -moz-padding-start: 7px;
+}
+
+toolbarbutton.bookmark-item:hover {
+  background: url("chrome://global/skin/toolbar/toolbarbutton-customhover-left.png") no-repeat left center;
+}
+
+toolbarbutton.bookmark-item:hover:active,
+toolbarbutton.bookmark-item[open="true"] {
+  background:url("chrome://browser/skin/bookmark-open-left.png") no-repeat left center;
+}
 
 toolbarbutton.bookmark-item:not([container]):hover > .toolbarbutton-text-stack,
-toolbarbutton.bookmark-item[container]:not([open]):hover > .toolbarbutton-menu-dropmarker 
-{
+toolbarbutton.bookmark-item[container]:not([open]):hover > .toolbarbutton-menu-dropmarker {
   background: url("chrome://global/skin/toolbar/toolbarbutton-customhover-right.png") no-repeat right center;
 }
 
 toolbarbutton.bookmark-item[container]:hover > .toolbarbutton-text-stack,
-#home-button.bookmark-item:hover > .toolbarbutton-icon
-{
+toolbarbutton.bookmark-item[container]:not([open]):hover > .toolbarbutton-menu-dropmarker[chromedir="rtl"],
+#home-button.bookmark-item:hover > .toolbarbutton-icon,
+#home-button.bookmark-item[chromedir="rtl"]:hover > .toolbarbutton-text-stack {
   background: url("chrome://global/skin/toolbar/toolbarbutton-customhover-mid.png") repeat-x;
 }
 
+#home-button.bookmark-item:hover[chromedir="rtl"] > .toolbarbutton-icon,
+toolbarbutton.bookmark-item[chromedir="rtl"]:hover > .toolbarbutton-text-stack {
+  background: url("chrome://global/skin/toolbar/toolbarbutton-customhover-right.png") no-repeat right center;
+}
+
 toolbarbutton.bookmark-item:not([container]):hover:active  > .toolbarbutton-text-stack,
 toolbarbutton.bookmark-item[open] > .toolbarbutton-menu-dropmarker,
 toolbarbutton.bookmark-item[container]:hover:active > .toolbarbutton-menu-dropmarker 
 {
   background: url("chrome://browser/skin/bookmark-open-right.png") no-repeat right center;
 }
 
 toolbarbutton.bookmark-item[container]:hover:active  > .toolbarbutton-text-stack,
 toolbarbutton.bookmark-item[container][open="true"] > .toolbarbutton-text-stack,
-#home-button.bookmark-item:hover:active > .toolbarbutton-icon 
-{
+#home-button.bookmark-item:hover:active > .toolbarbutton-icon,
+toolbarbutton.bookmark-item[container]:hover:active > .toolbarbutton-menu-dropmarker[chromedir="rtl"],
+toolbarbutton.bookmark-item[container][open="true"] > .toolbarbutton-menu-dropmarker[chromedir="rtl"],
+#home-button.bookmark-item:hover:active[chromedir="rtl"] > .toolbarbutton-text-stack {
   background: url("chrome://browser/skin/bookmark-open-mid.png") repeat-x !important;
 }
 
-toolbarbutton.bookmark-item[type=menu] {
-  padding-left: 7px;
-}
-
-toolbarbutton.bookmark-item[type=menu] > .toolbarbutton-menu-dropmarker {
-  padding-right: 7px;
-}
-
-toolbarbutton.bookmark-item {
-  font-weight: bold;
-  margin: 0 1px;
-  padding: 0;
-  -moz-padding-start: 7px;
-  min-width: 0;
-  max-width: 13em;
-  color: #222;
-  border: none !important;
+toolbarbutton.bookmark-item[chromedir="rtl"][container]:hover:active  > .toolbarbutton-text-stack,
+toolbarbutton.bookmark-item[chromedir="rtl"][container][open] > .toolbarbutton-text-stack,
+#home-button.bookmark-item[chromedir="rtl"]:hover:active > .toolbarbutton-icon {
+  background: url("chrome://browser/skin/bookmark-open-right.png") no-repeat right center !important;
 }
 
 toolbarbutton.bookmark-item:not([container="true"]) {
   -moz-binding: url(chrome://browser/skin/browser.xml#toolbarbutton-shadow);
 }
 
 toolbarbutton.bookmark-item[container="true"] {
   -moz-binding: url(chrome://browser/skin/browser.xml#toolbarbutton-menu-shadow);
@@ -159,17 +182,16 @@ toolbarbutton.bookmark-item[container="t
 
 toolbarbutton.bookmark-item-microsummarized {
   max-width: 20em;
 }
 
 .bookmark-item > .toolbarbutton-icon {
   margin: 0px;
   display: none !important;
- 
 }
 
 toolbarbutton.bookmark-item .toolbarbutton-text {
   font-size: 100% !important; 
   margin: 0px !important;
 }
 
 /* Prevent [mode="icons"] from hiding the label */
@@ -182,21 +204,17 @@ toolbarbutton.bookmark-item .toolbarbutt
 .bookmark-item > .toolbarbutton-menu-dropmarker {
   list-style-image: url("chrome://browser/skin/places/folderDropArrow.png");
   height: 16px !important;
   padding: 5px 5px 4px 3px;
 }
 
 .bookmark-item[livemark] > .toolbarbutton-menu-dropmarker {
   list-style-image: url("chrome://browser/skin/places/livemarkFolder.png");
-  padding: 4px 4px 3px 2px;
-}
-
-.bookmark-item[livemark]:hover > .toolbarbutton-menu-dropmarker, .bookmark-item[livemark][open] > .toolbarbutton-menu-dropmarker {
-  list-style-image: url("chrome://browser/skin/places/livemarkFolderHover.png");
+  padding: 3px 4px 3px 4px;
 }
 
 .bookmark-item[livemark] {
   list-style-image: url("chrome://browser/skin/page-livemarks.png");
 }
 
 .bookmark-item[query] {
   list-style-image: url("chrome://browser/skin/places/query.png");
@@ -267,16 +285,21 @@ toolbarpaletteitem[place="toolbar"] .pla
 
 .toolbarbutton-1,
 #back-forward-dropmarker {
   min-width: 0px;
   list-style-image: url("chrome://browser/skin/Toolbar.png");
   -moz-box-orient: vertical;
 }
 
+.toolbarbutton-1[chromedir="rtl"],
+#back-forward-dropmarker[chromedir="rtl"] {
+  list-style-image: url("chrome://browser/skin/Toolbar-rtl.png");
+}
+
 toolbar[mode="text"] .toolbarbutton-1,
 toolbar[mode="text"] .toolbarbutton-menubutton-button {
   -moz-box-orient: horizontal;
 }
 
 toolbar[mode="text"] .toolbarbutton-1 > .toolbarbutton-text {
   margin: 4px;
 }
@@ -327,155 +350,235 @@ toolbar[mode="icons"] #forward-button .t
 }
 
 /* ----- DEFAULT BACK BUTTON, STAND-ALONE ----- */	
 
 #back-button {
   -moz-image-region: rect(0px, 36px, 23px, 0px);
 }
 #back-button[disabled="true"] {
-  -moz-image-region: rect(23px, 36px, 46px, 0px) !important;
+  -moz-image-region: rect(23px, 36px, 46px, 0px);
 }
-#back-button:hover:active,
-#back-button[buttondown="true"],
-#back-button[open="true"]{
+#back-button:hover:active:not([disabled]),
+#back-button[buttondown="true"]:not([disabled]),
+#back-button[open="true"] {
   -moz-image-region: rect(46px, 36px, 69px, 0px);
 }
 
 /* ----- DEFAULT FORWARD BUTTON, STAND-ALONE ----- */	
 
 #forward-button {
   -moz-image-region: rect(0px, 72px, 23px, 36px);
 }
 
 #forward-button[disabled="true"] {
-  -moz-image-region: rect(23px, 72px, 46px, 36px) !important;
+  -moz-image-region: rect(23px, 72px, 46px, 36px);
 }
-#forward-button:hover:active,
-#forward-button[buttondown="true"],
+#forward-button:hover:active:not([disabled]),
+#forward-button[buttondown="true"]:not([disabled]),
 #forward-button[open="true"] {
   -moz-image-region: rect(46px, 72px, 69px, 36px);
 }
 
 /* ----- DEFAULT BACK/FORWARD BUTTONS ----- */
 
-toolbar[mode="icons"] #back-button {
-  -moz-image-region: rect(0px, 539px, 33px, 504px) !important;
-  -moz-margin-end: 0 !important;
-  -moz-padding-end: 0 !important;
-  border-left: none !important;
-  border-right: none !important;
+toolbar[mode="icons"] #unified-back-forward-button > #back-button {
+  -moz-image-region: rect(0px, 539px, 33px, 504px);
+  -moz-margin-end: 0;
+  -moz-padding-end: 0;
+  border-left: none;
+  border-right: none;
+}
+
+toolbar[mode="icons"] #unified-back-forward-button > #back-button[chromedir="rtl"] {
+  -moz-image-region: rect(0px, 582px, 33px, 547px);
 }
 
-toolbar[mode="icons"] #back-button[disabled="true"] {
- -moz-image-region: rect(33px, 539px, 66px, 504px) !important;
+toolbar[mode="icons"] #unified-back-forward-button > #back-button[disabled="true"] {
+ -moz-image-region: rect(33px, 539px, 66px, 504px);
+}
+
+toolbar[mode="icons"] #unified-back-forward-button > #back-button[disabled="true"][chromedir="rtl"] {
+  -moz-image-region: rect(33px, 582px, 66px, 547px);
 }
 
-toolbar[mode="icons"] #back-button:hover:active:not([disabled]),
-toolbar[mode="icons"] #back-button[open="true"] {
-  -moz-image-region: rect(66px, 539px, 99px, 504px) !important;
+toolbar[mode="icons"] #unified-back-forward-button > #back-button:hover:active:not([disabled]),
+toolbar[mode="icons"] #unified-back-forward-button > #back-button[open="true"] {
+  -moz-image-region: rect(66px, 539px, 99px, 504px);
+}
+
+toolbar[mode="icons"] #unified-back-forward-button > #back-button:hover:active[chromedir="rtl"]:not([disabled]),
+toolbar[mode="icons"] #unified-back-forward-button > #back-button[open="true"][chromedir="rtl"] {
+  -moz-image-region: rect(66px, 582px, 99px, 547px);
 }
 
-toolbar[mode="icons"] #forward-button {
-  -moz-image-region: rect(0px, 566px, 33px, 539px) !important;
-  -moz-margin-start: 0 !important;
-  -moz-margin-end: 0 !important;
-  -moz-padding-start: 0 !important;
-  -moz-padding-end: 0 !important;
-  border-left: none !important;
-  border-right: none !important;
+toolbar[mode="icons"] #unified-back-forward-button > #forward-button {
+  -moz-image-region: rect(0px, 566px, 33px, 539px);
+  -moz-margin-start: 0;
+  -moz-margin-end: 0;
+  -moz-padding-start: 0;
+  -moz-padding-end: 0;
+  border-left: none;
+  border-right: none;
 }
 
-toolbar[mode="icons"] #forward-button[disabled="true"] {
- -moz-image-region: rect(33px, 566px, 66px, 539px) !important;
+toolbar[mode="icons"] #unified-back-forward-button > #forward-button[chromedir="rtl"] {
+  -moz-image-region: rect(0px, 547px, 33px, 519px);
+}
+
+toolbar[mode="icons"] #unified-back-forward-button > #forward-button[disabled="true"] {
+ -moz-image-region: rect(33px, 566px, 66px, 539px);
+}
+
+toolbar[mode="icons"] #unified-back-forward-button > #forward-button[disabled="true"][chromedir="rtl"] {
+ -moz-image-region: rect(33px, 547px, 66px, 519px);
 }
 
-toolbar[mode="icons"] #forward-button:hover:active:not([disabled]),
-toolbar[mode="icons"] #forward-button[open="true"] {
-  -moz-image-region: rect(66px, 566px, 99px, 539px) !important;
+toolbar[mode="icons"] #unified-back-forward-button > #forward-button:hover:active:not([disabled]),
+toolbar[mode="icons"] #unified-back-forward-button > #forward-button[open="true"] {
+  -moz-image-region: rect(66px, 566px, 99px, 539px);
+}
+
+toolbar[mode="icons"] #unified-back-forward-button > #forward-button[chromedir="rtl"]:hover:active:not([disabled]),
+toolbar[mode="icons"] #unified-back-forward-button > #forward-button[open="true"][chromedir="rtl"] {
+  -moz-image-region: rect(66px, 547px, 99px, 519px);
 }
 
-toolbar[mode="icons"] #back-forward-dropmarker {
-  -moz-image-region: rect(0px, 582px, 33px, 566px) !important;
-  -moz-margin-start: 0 !important;
-  -moz-margin-end: 3px !important;
-  -moz-padding-start: 0 !important;
-  -moz-padding-end: 1px !important;
-  border-left: none !important;
-  border-right: none !important;
+#back-forward-dropmarker {
+  -moz-image-region: rect(0px, 582px, 33px, 566px);
+  -moz-margin-start: 0;
+  -moz-margin-end: 3px;
+  -moz-padding-start: 0;
+  -moz-padding-end: 1px;
+  border-left: none;
+  border-right: none;
+}
+
+#back-forward-dropmarker[chromedir="rtl"] {
+  -moz-image-region: rect(0px, 519px, 33px, 504px);
 }
 
 toolbar[mode="icons"] #back-forward-dropmarker > image {
   display: -moz-box;
   margin: 0;
   padding: 0;
 }
 
 toolbar[mode="icons"] #back-forward-dropmarker > dropmarker {
   display: none;
 }
 
-toolbar[mode="icons"] #back-forward-dropmarker[disabled="true"] {
- -moz-image-region: rect(33px, 582px, 66px, 566px) !important;
+#back-forward-dropmarker[disabled="true"] {
+ -moz-image-region: rect(33px, 582px, 66px, 566px);
+}
+
+#back-forward-dropmarker[disabled="true"][chromedir="rtl"] {
+ -moz-image-region: rect(33px, 519px, 66px, 504px);
 }
 
-toolbar[mode="icons"] #back-forward-dropmarker:hover:active:not([disabled]),
-toolbar[mode="icons"] #back-forward-dropmarker[open="true"] {
-  -moz-image-region: rect(0px, 582px, 33px, 566px) !important;
+#back-forward-dropmarker:hover:active:not([disabled]),
+#back-forward-dropmarker[open="true"] {
+  -moz-image-region: rect(66px, 582px, 99px, 566px);
+}
+
+#back-forward-dropmarker[chromedir="rtl"]:hover:active:not([disabled]),
+#back-forward-dropmarker[open="true"][chromedir="rtl"] {
+  -moz-image-region: rect(66px, 519px, 99px, 504px);
 }
 
 /* ----- SMALL BACK BUTTON, PAIRED----- */	
 
-toolbar[iconsize="small"][mode="icons"] #back-button {
-  -moz-image-region: rect(0px, 616px, 23px, 582px) !important;
-  -moz-margin-end: 0 !important;
-  -moz-padding-end: 0 !important;
-  border-left: none !important;
-  border-right: none !important;
+toolbar[mode="icons"][iconsize="small"] #unified-back-forward-button > #back-button {
+  -moz-image-region: rect(0px, 616px, 23px, 582px);
+  -moz-margin-end: 0;
+  -moz-padding-end: 0;
+  border-left: none;
+  border-right: none;
+}
+
+toolbar[mode="icons"][iconsize="small"] #unified-back-forward-button > #back-button[chromedir="rtl"] {
+  -moz-image-region: rect(0px, 664px, 23px, 630px);
 }
 
-toolbar[iconsize="small"][mode="icons"] #back-button[disabled="true"] {
-  -moz-image-region: rect(23px, 616px, 46px, 582px) !important;
+toolbar[mode="icons"][iconsize="small"] #unified-back-forward-button > #back-button[disabled="true"] {
+  -moz-image-region: rect(23px, 616px, 46px, 582px);
+}
+
+toolbar[mode="icons"][iconsize="small"] #unified-back-forward-button > #back-button[disabled="true"][chromedir="rtl"] {
+  -moz-image-region: rect(23px, 664px, 46px, 630px);
 }
 
-toolbar[iconsize="small"][mode="icons"] #back-button:hover:active:not([disabled]),
-toolbar[iconsize="small"][mode="icons"] #back-button[open="true"] {
-  -moz-image-region: rect(46px, 616px, 69px, 582px) !important;
+toolbar[mode="icons"][iconsize="small"] #unified-back-forward-button > #back-button:hover:active:not([disabled]),
+toolbar[mode="icons"][iconsize="small"] #unified-back-forward-button > #back-button[open="true"] {
+  -moz-image-region: rect(46px, 616px, 69px, 582px);
+}
+
+toolbar[mode="icons"][iconsize="small"] #unified-back-forward-button > #back-button[chromedir="rtl"]:hover:active:not([disabled]),
+toolbar[mode="icons"][iconsize="small"] #unified-back-forward-button > #back-button[open="true"][chromedir="rtl"] {
+  -moz-image-region: rect(46px, 664px, 69px, 630px);
 }
 
 /* ----- SMALL FORWARD BUTTON, PAIRED ----- */	
 
-toolbar[iconsize="small"][mode="icons"] #forward-button {
-  -moz-image-region: rect(0px, 649px, 23px, 616px) !important;
-  -moz-margin-start: 0 !important;
-  -moz-padding-start: 0 !important;
-  border-left: none !important;
-  border-right: none !important;
+toolbar[mode="icons"][iconsize="small"] #unified-back-forward-button > #forward-button {
+  -moz-image-region: rect(0px, 649px, 23px, 616px);
+  -moz-margin-start: 0;
+  -moz-padding-start: 0;
+  border-left: none;
+  border-right: none;
+}
+
+toolbar[mode="icons"][iconsize="small"] #unified-back-forward-button > #forward-button[chromedir="rtl"] {
+  -moz-image-region: rect(0px, 630px, 23px, 597px);
 }
-toolbar[iconsize="small"][mode="icons"] #forward-button[disabled="true"] {
- -moz-image-region: rect(23px, 649px, 46px, 616px) !important;
+
+toolbar[mode="icons"][iconsize="small"] #unified-back-forward-button > #forward-button[disabled="true"] {
+ -moz-image-region: rect(23px, 649px, 46px, 616px);
+}
+
+toolbar[mode="icons"][iconsize="small"] #unified-back-forward-button > #forward-button[disabled="true"][chromedir="rtl"] {
+ -moz-image-region: rect(23px, 630px, 46px, 597px);
 }
-toolbar[iconsize="small"][mode="icons"] #forward-button:hover:active:not([disabled]),
-toolbar[iconsize="small"][mode="icons"] #forward-button[open="true"] {
-  -moz-image-region: rect(46px, 649px, 69px, 616px) !important;
+
+toolbar[mode="icons"][iconsize="small"] #unified-back-forward-button > #forward-button:hover:active:not([disabled]),
+toolbar[mode="icons"][iconsize="small"] #unified-back-forward-button > #forward-button[open="true"] {
+  -moz-image-region: rect(46px, 649px, 69px, 616px);
+}
+
+toolbar[mode="icons"][iconsize="small"] #unified-back-forward-button > #forward-button[chromedir="rtl"]:hover:active:not([disabled]),
+toolbar[mode="icons"][iconsize="small"] #unified-back-forward-button > #forward-button[open="true"][chromedir="rtl"] {
+  -moz-image-region: rect(46px, 630px, 69px, 597px);
 }
 
 /* ----- SMALL BACK/FORWARD DROPMARKER ----- */	
 
-toolbar[iconsize="small"][mode="icons"] #back-forward-dropmarker {
-  -moz-image-region: rect(0px, 664px, 23px, 649px) !important;
+toolbar[iconsize="small"] #unified-back-forward-button > #back-forward-dropmarker {
+  -moz-image-region: rect(0px, 664px, 23px, 649px);
+}
+
+toolbar[iconsize="small"] #unified-back-forward-button > #back-forward-dropmarker[chromedir="rtl"] {
+  -moz-image-region: rect(0px, 596px, 23px, 582px);
+}
+
+toolbar[iconsize="small"] #unified-back-forward-button > #back-forward-dropmarker[disabled="true"] {
+ -moz-image-region: rect(23px, 664px, 46px, 649px);
 }
 
-toolbar[iconsize="small"][mode="icons"] #back-forward-dropmarker[disabled="true"] {
- -moz-image-region: rect(23px, 664px, 46px, 649px) !important;
+toolbar[iconsize="small"] #unified-back-forward-button > #back-forward-dropmarker[disabled="true"][chromedir="rtl"] {
+ -moz-image-region: rect(23px, 596px, 46px, 582px);
 }
 
-toolbar[iconsize="small"][mode="icons"] #back-forward-dropmarker:hover:active:not([disabled]),
-toolbar[iconsize="small"][mode="icons"] #back-forward-dropmarker[open="true"] {
-  -moz-image-region: rect(46px, 664px, 69px, 649px) !important;
+toolbar[iconsize="small"] #unified-back-forward-button > #back-forward-dropmarker:hover:active:not([disabled]),
+toolbar[iconsize="small"] #unified-back-forward-button > #back-forward-dropmarker[open="true"] {
+  -moz-image-region: rect(46px, 664px, 69px, 649px);
+}
+
+toolbar[iconsize="small"] #unified-back-forward-button > #back-forward-dropmarker[chromedir="rtl"]:hover:active:not([disabled]),
+toolbar[iconsize="small"] #unified-back-forward-button > #back-forward-dropmarker[open="true"][chromedir="rtl"] {
+  -moz-image-region: rect(46px, 596px, 69px, 582px);
 }
 
 /* ----- DEFAULT RELOAD BUTTON ----- */	
 
 #reload-button {
   -moz-image-region: rect(0px, 108px, 23px, 72px);
 }
 #reload-button[disabled="true"] {
@@ -653,33 +756,36 @@ toolbar[iconsize="small"][mode="icons"] 
   -moz-image-region: rect(46px, 504px, 69px, 468px);
 }
 
 
 /* ----- FULLSCREEN WINDOW CONTROLS ----- */
 
 #window-controls {
   -moz-box-align: center;
-  padding: 0 2px 0 4px;
+  padding: 0;
+  -moz-padding-start: 4px;
+  -moz-padding-end: 2px;
 }
 
 #minimize-button {
   list-style-image: url("chrome://global/skin/icons/minimize.gif");
 }
 #restore-button {
   list-style-image: url("chrome://global/skin/icons/restore.gif");
 }
 #close-button {
   list-style-image: url("chrome://global/skin/icons/close.gif");
 }
 
 /* ::::: nav-bar-inner ::::: */
 
 #urlbar {
   -moz-appearance: none;
+  direction: ltr !important;
   border: none;
   background: url("chrome://browser/skin/urlbar/endcap.png") transparent right center no-repeat;
   margin: 0px 4px 1px 4px;
   -moz-padding-end: 8px;
   font: icon !important;
   width: 7em;
   min-width: 7em;
   height: 26px;
@@ -725,20 +831,30 @@ toolbar[iconsize="small"][mode="icons"] 
 
 #wrapper-urlbar-container #urlbar,
 #urlbar[readonly="true"] {
   -moz-padding-end: 12px;
   -moz-user-input: disabled;
   cursor: -moz-grab;
 }
 
+#wrapper-urlbar-container[place="palette"] {
+  max-width: 20em;
+}
+
+#wrapper-urlbar-container > #urlbar-container > #urlbar > #identity-box > hbox > #identity-icon-label,
 #wrapper-urlbar-container #urlbar > .autocomplete-history-dropmarker {
   display: none;
 }
 
+#wrapper-urlbar-container > #urlbar-container > #urlbar > #identity-box.verifiedIdentity  > hbox > #identity-icon-label,
+#wrapper-urlbar-container > #urlbar-container > #urlbar > #identity-box.verifiedDomain > hbox > #identity-icon-label {
+  display: -moz-box;
+}
+
 /* Keep the URL bar LTR */
 
 #PopupAutoCompleteRichResult {
   direction: ltr !important;
   margin-top: -2px;
 }
 
 /* ----- PAGE PROXY ICON ----- */
@@ -771,17 +887,17 @@ toolbar[iconsize="small"][mode="icons"] 
 
 
 #identity-box:active > #page-proxy-stack,
 #identity-box[open="true"] > #page-proxy-stack {
   opacity: 0.75;
 }
 
 statusbarpanel#statusbar-display {
-  padding-left: 0;
+  -moz-padding-start: 0;
 }
 
 .statusbarpanel-text {
   margin-top: 2px;
   margin-bottom: 0;
 }
 
 /* ----- AUTOCOMPLETE ----- */
@@ -792,33 +908,40 @@ statusbarpanel#statusbar-display {
 
 .ac-result-type-bookmark,
 .autocomplete-treebody::-moz-tree-image(bookmark, treecolAutoCompleteImage) {
   list-style-image: url("chrome://browser/skin/places/pageStarred.png");
   width: 16px;
   height: 16px;
 }
 
+richlistitem[selected="true"][current="true"] > hbox > .ac-result-type-bookmark,
+.autocomplete-treebody::-moz-tree-image(selected, current, bookmark, treecolAutoCompleteImage) {
+  list-style-image: url("chrome://browser/skin/places/star-icons.png");
+  -moz-image-region: rect(32px, 16px, 48px, 0px);
+}
+
 .ac-result-type-tag,
 .autocomplete-treebody::-moz-tree-image(tag, treecolAutoCompleteImage) {
   list-style-image: url("chrome://browser/skin/places/tag.png");
   width: 16px;
   height: 16px;
 }
 
 .ac-comment {
-  font-size: 1.15em;
+  font-size: 1.1em;
 }
 
 .ac-extra > .ac-comment {
   font-size: inherit;
 }
 
 .ac-url-text {
-  color: #336633;
+  color: #144fae;
+  font-size: 0.95em;
 }
 
 .autocomplete-treebody::-moz-tree-cell-text(treecolAutoCompleteComment) {
   color: GrayText;
 }
 
 .ac-comment[selected="true"], .ac-url-text[selected="true"] {
   color: inherit !important;
@@ -901,17 +1024,17 @@ statusbarpanel#statusbar-display {
 
 #editBookmarkPanelTitle {
   font-size: 130%;
   font-weight: bold;
   margin: 8px 12px 0px 9px;
 }
 
 #editBookmarkPanel > hbox {
- padding-right: 1px;
+  -moz-padding-end: 1px;
 }
 
 /**** HUD style buttons ****/
 
 #editBookmarkPanel > hbox > vbox > hbox > button,
 #editBookmarkPanel > #editBookmarkPanelBottomButtons > button {
   -moz-appearance: none;
   background: url("chrome://browser/skin/hud-style-button-middle-background.png") repeat-x #464646 center center;
@@ -963,19 +1086,21 @@ statusbarpanel#statusbar-display {
   -moz-margin-end: -8px;
   margin-bottom: 8px !important;
   height:  20px;
 }
 
 #editBookmarkPanel #editBMPanel_newFolderButton {
   -moz-appearance: none;
   background-color: transparent !important;
-  border-width: 0 3px 0 0;
+  border: 0;
+  -moz-border-end-width: 3px;
   border-style: solid;
   -moz-border-right-colors: rgba(255,255,255,0.15) rgba(0,0,0,0.5) rgba(255,255,255,0.15);
+  -moz-border-left-colors: rgba(255,255,255,0.15) rgba(0,0,0,0.5) rgba(255,255,255,0.15);
   padding: 0 9px;
   margin: 0;
   min-width: 21px;
   min-height: 20px;
   height:  20px;
   color: #ffffff;
   list-style-image: url("chrome://browser/skin/hud-style-new-folder-plus-sign.png") !important;
 }
@@ -1045,17 +1170,17 @@ statusbarpanel#statusbar-display {
   margin: 0px;
   -moz-margin-start: -8px;
   -moz-margin-end: -8px;
   color: #ffffff !important;
 }
 
 #editBookmarkPanel #editBMPanel_folderTree:focus {
   outline: 2px solid -moz-mac-focusring;
-  outline-offset: -2px;
+  outline-offset: -1px;
   -moz-outline-radius: 1px;
 }
 
 #editBMPanel_folderTree treechildren::-moz-tree-twisty {
   -moz-appearance: none !important;
   list-style-image: url("chrome://browser/skin/hud-style-twisties.png");
   -moz-image-region: rect(0px, 10px, 10px, 0px);
   margin-top: 1px;
@@ -1142,17 +1267,18 @@ statusbarpanel#statusbar-display {
   border: 3px solid;
   -moz-border-radius: 5px;
   -moz-border-top-colors: rgba(0,0,0,0.35) rgba(26,26,26,0.5) rgba(255,255,255,0.4);
   -moz-border-right-colors: rgba(53,53,53,1) rgba(53,53,53,1) rgba(162,162,162,1);
   -moz-border-bottom-colors: rgba(128,128,128,0.35) rgba(0,0,0,0.5) rgba(255,255,255,0.15);
   -moz-border-left-colors: rgba(0,0,0,0.35) rgba(26,26,26,0.5) rgba(255,255,255,0.4);
   -moz-margin-start: 4px;
   -moz-margin-end: 2px;
-  padding: 0 0 0 4px;
+  padding: 0;
+  -moz-padding-start: 4px;
   min-width: 10px;
   min-height: 22px;
   color: #ffffff !important;
 }
 
 #editBookmarkPanel .expander-up:focus,
 #editBookmarkPanel .expander-down:focus {
   outline: 2px solid -moz-mac-focusring;
@@ -1179,17 +1305,17 @@ statusbarpanel#statusbar-display {
   background-image: url("chrome://browser/skin/hud-style-button-middle-background-active.png") !important;
   background-repeat: repeat-x !important;
 }
 
 
 /**** name picker ****/
 
 #editBookmarkPanel #editBMPanel_namePicker[droppable="false"] {
-  color: #ffffff !important;
+  color: #ffffff;
 }
 
 #editBookmarkPanel #editBMPanel_namePicker[droppable="false"] > .menulist-dropmarker {
   display: none;
 }
 
 #editBookmarkPanel #editBMPanel_tagsField,
 #editBookmarkPanel #editBMPanel_namePicker[droppable="false"] > .menulist-editable-box {
@@ -1211,55 +1337,60 @@ statusbarpanel#statusbar-display {
   color: #bbbbbb;
 }
 
 #editBookmarkPanel #editBMPanel_tagsField[focused="true"],
 #editBookmarkPanel #editBMPanel_namePicker[droppable="false"][focused="true"] > .menulist-editable-box {
   outline: 2px solid -moz-mac-focusring;
   outline-offset: -1px;
   -moz-outline-radius: 1px;
+  background-color: #eeeeee;
+  color: #000000;
 }
 
 #editBookmarkPanel #editBMPanel_namePicker[droppable="false"][disabled="true"] > .menulist-editable-box {
   color: #ffffff;
 }
 
 #editBookmarkPanel #editBMPanel_namePicker[droppable="false"] > .menulist-editable-box > html|*.menulist-editable-input {
   margin: 0px !important;
   border: none !important;
   padding: 0px !important;
   background-color: inherit;
-  color: #ffffff !important;
+  color: #ffffff;
   font: inherit;
 }
 
+#editBookmarkPanel #editBMPanel_namePicker[droppable="false"][focused="true"] > .menulist-editable-box > html|*.menulist-editable-input {
+  color: #000000;
+}
+
 #editBookmarkPanel > #editBookmarkPanelContent > #editBookmarkPanelGrid > rows > row > label {
   text-align: right;
 }
 
 /* ----- SIDEBAR ELEMENTS ----- */
 
 sidebarheader { 
-  background-color: #d6dde5;
+  background-color: #d4dde5;
   padding: 2px;
   text-transform: uppercase;
 }
 
 #sidebar-box {
   -moz-appearance: dialog;
   -moz-appearance: none;
 }
 
 #sidebar-splitter {
-	 border-left: none !important;
-     border-right: 1px solid #404040;
-     min-width: 1px;
-     width: 1px;
-     background-image: none !important;
-         
+  -moz-border-start: none;
+  -moz-border-end: 1px solid #404040;
+  min-width: 1px;
+  width: 1px;
+  background-image: none !important;       
 } 
 
 #sidebar-title {
   color: #535f6d;
   font-weight: bold;  
 }
 
 #sidebar-throbber[loading="true"] {
@@ -1365,27 +1496,31 @@ sidebarheader > .tabs-closebutton > .too
   list-style-image: url("chrome://global/skin/icons/loading_16.png");
 }
 
 toolbar[iconsize="small"] #navigator-throbber[busy="true"],
 toolbar[mode="text"] #navigator-throbber[busy="true"] {
   list-style-image: url("chrome://global/skin/icons/loading_16.png");
 }
 
+#wrapper-throbber-box > #throbber-box > #navigator-throbber {
+  list-style-image: url("chrome://global/skin/icons/notloading_16.png");
+}
+
 toolbarbutton.chevron {
   list-style-image: url("chrome://global/skin/icons/chevron.png") !important;
 }
 
 
 toolbarbutton.chevron > .toolbarbutton-menu-dropmarker {
   display: none;
 }
 
 #nav-bar {
-  background-color: #9B9B9B;
+  background-color: #9e9e9e;
   border-top: none;
   border-bottom: 1px solid rgba(0,0,0,0.35);
   background-image: url("chrome://global/skin/toolbar/toolbar-background.gif");
   background-repeat: repeat-x;
   background-position: top right;
   padding: 0 4px;
 }
 
@@ -1464,29 +1599,33 @@ toolbarbutton.chevron > .toolbarbutton-m
 
 .tab-image-left,
 .tab-image-right {
   width: 8px;
   margin: 0px;
   padding: 0px;
 }
 
-.tabbrowser-tab > .tab-image-right {
+.tabbrowser-tab > .tab-image-right,
+.tabbrowser-tab[chromedir="rtl"] > .tab-image-left {
   background: url("chrome://browser/skin/tabbrowser/tab-right.png") no-repeat;
 }
 
-.tabbrowser-tab:not([selected="true"]) > .tab-image-right {
+.tabbrowser-tab:not([selected="true"]) > .tab-image-right,
+.tabbrowser-tab:not([selected="true"])[chromedir="rtl"] > .tab-image-left {
   background: url("chrome://browser/skin/tabbrowser/tab-right-bkgnd.png") no-repeat;
 }
 
-.tabbrowser-tab > .tab-image-left {
+.tabbrowser-tab > .tab-image-left,
+.tabbrowser-tab[chromedir="rtl"] > .tab-image-right {
   background: url("chrome://browser/skin/tabbrowser/tab-left.png") no-repeat;
 }
 
-.tabbrowser-tab:not([selected="true"]) > .tab-image-left {
+.tabbrowser-tab:not([selected="true"]) > .tab-image-left,
+.tabbrowser-tab:not([selected="true"])[chromedir="rtl"] > .tab-image-right {
   background: url("chrome://browser/skin/tabbrowser/tab-left-bkgnd.png") no-repeat;
 }
 
 .tabbrowser-tab > .tab-image-middle,
 .tabbrowser-tab > .tab-closebutton {
   background: url("chrome://browser/skin/tabbrowser/tab-middle.png") repeat-x;
   -moz-box-pack: center;
 }
@@ -1571,16 +1710,21 @@ tabbrowser > tabbox > tabpanels {
   -moz-appearance: none;
   border: none !important;
   padding: 0 0 4px 0;
   margin: 0;
   background: inherit;
   cursor: default;
 }
 
+.tab-close-button:hover,
+.tabbrowser-tab[selected="true"] > .tab-close-button:hover {
+  list-style-image: url("chrome://global/skin/icons/closetab-hover.png");
+}
+
 .tab-close-button:hover:active,
 .tabbrowser-tab[selected="true"] > .tab-close-button:hover:active {
   list-style-image: url("chrome://global/skin/icons/closetab-active.png");
 }
 
 .tabbrowser-tab > .tab-close-button {
   background-image: url("chrome://browser/skin/tabbrowser/tab-middle.png");
   background-repeat: repeat-x;
@@ -1591,58 +1735,91 @@ tabbrowser > tabbox > tabpanels {
      it's getting closed */
   -moz-user-focus: normal;
 }
 
 .tabbrowser-tab:not([selected="true"]) > .tab-close-button {
   background-image: url("chrome://browser/skin/tabbrowser/tab-middle-bkgnd.png");
 }
 
-.tabbrowser-arrowscrollbox > .scrollbutton-up {
-  background: url("chrome://browser/skin/tabbrowser/tab-arrow-start-bkgnd.png") top right no-repeat;
+.tabbrowser-arrowscrollbox > .scrollbutton-up,
+.tabbrowser-arrowscrollbox > .scrollbutton-down-stack > .scrollbutton-down[chromedir="rtl"] {
+  border: 0;
+  border-right: 2px solid;
+  -moz-border-right-colors: rgba(0,0,0,0.25) rgba(255,255,255,0.15);
   list-style-image: url("chrome://browser/skin/tabbrowser/tab-arrow-start.png");
   -moz-image-region: rect(0px, 7px, 11px, 0px);
-  -moz-padding-start: 0;
-  -moz-padding-end: 2px; 
+  padding: 0;
   width: 16px;
   margin: 0;
 }
 
-.tabbrowser-arrowscrollbox > .scrollbutton-up[disabled="true"] {
-  -moz-image-region: rect(0px, 28px, 11px, 21px);
+.tabbrowser-arrowscrollbox > .scrollbutton-down-stack > .scrollbutton-down[chromedir="rtl"] {
+  -moz-border-end: none;
+}
+
+.tabbrowser-arrowscrollbox > .scrollbutton-up:hover {
+  background-color: rgba(0,0,0,0.10);
 }
 
-.tabbrowser-arrowscrollbox .scrollbutton-down {
-  background: url("chrome://browser/skin/tabbrowser/tab-arrow-end-bkgnd.png") top left no-repeat;
+.tabbrowser-arrowscrollbox > .scrollbutton-up:hover:active {
+  background-color: rgba(0,0,0,0.20);
+}
+
+.tabbrowser-arrowscrollbox > .scrollbutton-up[disabled="true"],
+.tabbrowser-arrowscrollbox > .scrollbutton-down-stack > .scrollbutton-down[disabled="true"][chromedir="rtl"] {
+  -moz-image-region: rect(0px, 28px, 11px, 21px);
+  background-color: transparent !important; 
+}
+
+.tabbrowser-arrowscrollbox .scrollbutton-down,
+.tabbrowser-arrowscrollbox > .scrollbutton-up[chromedir="rtl"] {
+  border-left: 2px solid;
+  -moz-border-left-colors: rgba(0,0,0,0.25) rgba(255,255,255,0.15);
   list-style-image: url("chrome://browser/skin/tabbrowser/tab-arrow-end.png");
   -moz-image-region: rect(0px, 44px, 11px, 37px);
   -moz-padding-start: 2px;
-  -moz-padding-end: 0; 
+  -moz-padding-end: 0;
   width: 16px;
   margin: 0;
 }
 
-.tabbrowser-arrowscrollbox .scrollbutton-down[disabled="true"] {
+.tabbrowser-arrowscrollbox > .scrollbutton-up[chromedir="rtl"] {
+  -moz-border-start: none;
+}
+
+.tabbrowser-arrowscrollbox .scrollbutton-down:hover {
+  background-color: rgba(0,0,0,0.10);
+}
+
+.tabbrowser-arrowscrollbox .scrollbutton-down:hover:active {
+  background-color: rgba(0,0,0,0.20);
+}
+
+.tabbrowser-arrowscrollbox > .scrollbutton-down-stack > .scrollbutton-down[disabled="true"],
+.tabbrowser-arrowscrollbox > .scrollbutton-up[disabled="true"][chromedir="rtl"] {
   -moz-image-region: rect(0px, 23px, 11px, 16px);
+  background-color: transparent !important;
 }
 
 
 /**
  * All Tabs Button
  */
 
 .tabs-alltabs-box {
   margin: 0;
   width: 25px;
 }
 
 .tabs-alltabs-button {
   list-style-image: url("chrome://browser/skin/tabbrowser/alltabs-box-bkgnd-icon.png");
-  border-left: 2px solid;
+  -moz-border-start: 2px solid;
   -moz-border-left-colors: rgba(0,0,0,0.25) rgba(255,255,255,0.15);
+  -moz-border-right-colors: rgba(0,0,0,0.25) rgba(255,255,255,0.15);
   margin: 0;
   padding-left: 0;
   padding-right: 0;
 }
 .tabs-alltabs-button:hover {
   background-color: rgba(0,0,0,0.10);
 }
 .tabs-alltabs-button:hover:active,
@@ -1658,18 +1835,18 @@ tabbrowser > tabbox > tabpanels {
   display: none;
 }
 
 .tabs-alltabs-button > .toolbarbutton-icon {
   -moz-margin-end: 2px;
 }
 
 .tabs-alltabs-box-animate {
-  margin: 2px 0px 3px 0px;
-  width: 16px;
+  margin: 1px 0px 0px 0px;
+  width: 25px;
   background-image: url("chrome://browser/skin/tabbrowser/alltabs-box-overflow-bkgnd-animate.png");
   background-repeat: no-repeat;
   opacity: 0.0;
 }
 
 /**
  * All Tabs Menupopup 
  */
@@ -1703,41 +1880,35 @@ tabbrowser > tabbox > tabpanels {
 }
 
 tabpanels.plain {
 	background-color: #fff !important;
 }
 
 /* Personal toolbar */
 .toolbar-drop-indicator {
-  width: 9px;
-  height: 18px;
-  margin-bottom: -6px;
+  width: 7px;
+  height: 17px;
   position: relative;
-  background: url('chrome://browser/skin/places/toolbarDropMarker.png') 50% 50% no-repeat;
+  background: url('chrome://browser/skin/places/toolbarDropMarker.png') 40% 50% no-repeat;
 }
 
 .toolbar-drop-indicator-bar {
   visibility: hidden;
-  height: 18px;
-  margin-bottom: -18px;
+  height: 17px;
+  margin-bottom: -17px;
   position: relative;
 }
 
 .toolbar-drop-indicator-bar[dragging="true"] {
   visibility: visible;
 }
 
-toolbarbutton.bookmark-item[dragover="true"][open="true"] {
-  -moz-appearance: none;
-  background: Highlight !important;
-  color: HighlightText !important;
-}
+/* Bookmark drag and drop styles */
 
-/* Bookmark drag and drop styles */
 .bookmark-item[dragover-into="true"] {
   background: Highlight !important;
   color: HighlightText !important;
 }
 
 /* rules for menupopup drop indicators */
 .menupopup-drop-indicator-bar {
   position: relative;
@@ -1874,24 +2045,23 @@ toolbarbutton.bookmark-item[dragover="tr
   -moz-image-region: rect(128px, 64px, 192px, 0px);
 }
 
 /* Popup Body Text */
 #identity-popup-content-box > description,
 #identity-popup-encryption-label {
   white-space: pre-wrap;
   color: #ffffff;
-  padding-left: 15px;
+  -moz-padding-start: 15px;
   margin: 2px 0 4px;
 }
 
 #identity-popup-content-box > label {
   white-space: pre-wrap;
-  margin-left: 0;
-  padding-left: 15px;
+  -moz-padding-start: 15px;
   margin: 0;
 }
 
 #identity-popup-content-host ,
 #identity-popup-content-owner {
   font-weight: bold;
   max-width: 300px;
 }
@@ -1907,17 +2077,17 @@ toolbarbutton.bookmark-item[dragover="tr
 
 #identity-popup-content-verifier {
   margin: 4px 0 2px;
 }
 
 #identity-popup-content-box.verifiedIdentity > #identity-popup-encryption ,
 #identity-popup-content-box.verifiedDomain > #identity-popup-encryption {
   margin-top: 10px;
-  margin-left: -24px;
+  -moz-margin-start: -24px;
 }
 
 #identity-popup-content-box.verifiedIdentity > #identity-popup-encryption > vbox > #identity-popup-encryption-icon ,
 #identity-popup-content-box.verifiedDomain > #identity-popup-encryption > vbox > #identity-popup-encryption-icon {
   margin-top: 5px;
   list-style-image: url("chrome://browser/skin/Secure-Glyph-White.png");
 }
 
@@ -1940,17 +2110,16 @@ toolbarbutton.bookmark-item[dragover="tr
   color:  #ffffff;
 }
 
 /* Popup Buttons */
 #identity-popup-more-info-button {
   -moz-appearance: none;
   background: url("chrome://browser/skin/hud-style-button-middle-background.png") repeat-x #464646 center center;
   border: 3px solid;
-  -moz-border-radius: 5px;
   -moz-border-top-colors: rgba(0,0,0,0.35) rgba(26,26,26,0.5) rgba(255,255,255,0.4);
   -moz-border-right-colors: rgba(53,53,53,1) rgba(53,53,53,1) rgba(162,162,162,1);
   -moz-border-bottom-colors: rgba(128,128,128,0.35) rgba(0,0,0,0.5) rgba(255,255,255,0.15);
   -moz-border-left-colors: rgba(0,0,0,0.35) rgba(26,26,26,0.5) rgba(255,255,255,0.4);
   -moz-border-radius: 20px;
   padding: 1px 9px;
   margin: 6px;
   min-height: 0px;
--- a/browser/themes/pinstripe/browser/browser.xml
+++ b/browser/themes/pinstripe/browser/browser.xml
@@ -18,30 +18,30 @@
   <binding id="bookmark-left">
     <content>
       	<xul:spacer class="bookmark-image-left" xbl:inherits="selected"/>
         <children/>
     </content>
   </binding>
    <binding id="toolbarbutton-menu-shadow" display="xul:menu" 
            extends="chrome://global/content/bindings/toolbarbutton.xml#toolbarbutton">
-    <content>
+    <content chromedir="&locale.dir;">
       <children includes="observes|template|menupopup|tooltip"/>
       <xul:image class="toolbarbutton-icon" xbl:inherits="validate,src=image,toolbarmode,buttonstyle"/>
       <xul:stack class="toolbarbutton-text-stack" crop="right" flex="1">
          <xul:label class="toolbarbutton-text-shadow" crop="right" flex="1"
                  xbl:inherits="value=label,accesskey,crop,dragover-top,toolbarmode,buttonstyle"/>
          <xul:label class="toolbarbutton-text" crop="right" flex="1"
                  xbl:inherits="value=label,accesskey,crop,dragover-top,toolbarmode,buttonstyle"/>
       </xul:stack>
-      <xul:dropmarker type="menu" class="toolbarbutton-menu-dropmarker" xbl:inherits="disabled,label"/>
+      <xul:dropmarker type="menu" class="toolbarbutton-menu-dropmarker" xbl:inherits="disabled,label,chromedir"/>
     </content>
   </binding>
   <binding id="toolbarbutton-shadow" extends="chrome://global/content/bindings/toolbarbutton.xml#toolbarbutton">
-   <content>
+   <content chromedir="&locale.dir;">
       <children includes="observes|template|menupopup|tooltip"/>
       <xul:image class="toolbarbutton-icon" xbl:inherits="validate,src=image,toolbarmode,buttonstyle"/>
       <xul:stack class="toolbarbutton-text-stack" crop="right" flex="1">
          <xul:label class="toolbarbutton-text-shadow" crop="right" flex="1"
                  xbl:inherits="value=label,accesskey,crop,toolbarmode,buttonstyle"/>
          <xul:label class="toolbarbutton-text" crop="right" flex="1"
                  xbl:inherits="value=label,accesskey,crop,toolbarmode,buttonstyle"/>
       </xul:stack>
index c27ec500ac3c5a454983165895cf499501b5595e..e6255c3c9c23ae1a562378dd21d935104fc37d95
GIT binary patch
literal 2114
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
index 4d15304643248fb3380cdd7e7614888bb1e8feb6..236b5f82106ed4e9f74eff40a29ee36701a894c2
GIT binary patch
literal 1816
zc$@(k2j}>SP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F80000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU&x=BPqRCwC7S6gfpRT%!}va>t83q=bC
z2$y07EMQ5AiBJqyBPmhPq+*OwW4vID4@NZTgD)B{QHc?+iHQ#y<VC~>0Rx&KV#F$l
zctI*CV3BqyP<GqBb!W~w{^!i@TzWwtWSYOTXU;$W|NZwl8obMBUA24mxJ$2Euj{du
zxQG|$&bGn+U)Js2+IEzdOq0qN-LPr?WixKx)7TiRTXJm-={g;PHpEy`XhYOUErPY$
zuKf-@lZvwEIXd?`INj^!`ntC-JFx4nLnb|s*H3MGrSWpJ?uK>?C;J8d>gHow;49`L
z^qVXTgW{pzwKe^v6B^pv<Ji3mb<Ayhg~WA80JdSK+FM&KboGcat&R#57gi>QlTgod
zd4Zq)WN29wLw9$oUFtTQ7O!s<;Lu`ZMOA(6B`*kC6@fN7fd2v_#9wAaF3E!Oa>6{^
zx$g9gx%XqBEUNJmU@pTmtCPO<y;+V7#qW5ZN7+J6xE58$N4I=9xWS^I9HtC`CeiQ^
zqvN;{_fMIiD{7hLtq*m(_~tOfvC|>|5=uI*{*4W+;-KaM%>zJBx$qK6m5R7<Db1f@
zD*B_x#m*mH9Lw-(h&0dY3xr03WV{w)4}d}=m9iSAX5g*uIk*JXG6km9o0u~#fh%X&
z5g=DgH5GmN^AL9IXDC&)Xo-#jLK@DP?*VuKgckzNJa<X}C$l=O4I+Uf8Ag`oi8+hw
z7us05AcaX2Vm^@To8!1*3d4p^N|a!_ACj=u;k5!FJOH`}fWaX}E`{E8>Fx-1=S&JS
zpy?K3@f3tP9-kl7@Z`H^ux0mo6iUnoF@2JO=k85m@&r=gihx*^!fRJ3oxTS+m_p@k
zNB|74KbTew#UVklW;ohIU98I`z8Dh8@%U_C89)4f25VMbf>~4JiZ@A(=84rd0W6?2
z<mJSOkPx{{D4ih>a5y!Dl%bV!PzA}jhUQr&Zd+<${R2td)fPkC)L@u4GC3PBe9({Y
ze$5B`1Y+GCHY`I#Jy9jDyf8`#JlA_6kc?wpt@C1d@xCM$%#_v{WJeksJ}MB1qR%sP
zvVm1gOp?cywakT2F7v`04S~!7sobe0ih&nD>{nGV{W25t8sfNSK{{gPqa8`?_-+WB
zc2=NiHs0Qx$HY1ljngf~b5m;q-yW>s@QI+C)&`SfdOD*?DA75d7dTn=M~{VLeKvL-
z)bScw_|WsGu=ij-;*Ay8#Ibsri9(Jem$UHd`{$7_1c`b3jR{nSSXFKi2AS+441fza
z$bQGmgP{^7;DCmF)<7YfKu^ZTv+oSx<@fq97*cX;n~kfRbXCSDdUb61BIoZl&#}<d
z0G0Ww%&Vl<!i{>MQV}Q&P@g};aQ2j|?s8ozdoK$ZFk<A9eZbn6dLkg!-jhZ=##LY2
zxV3=ZGmgJ^3jvg~#V^MyjqpI`FNT404CMm%5|Nk^mcXj(Vz_gKg_%<{0-~v&aH7}3
zn;XyiO43OkYdUQ8j&9i4@pTZYr7a26*I^g{L_HuEszjLA4dw3!Qux91<MHtAN!-2C
z#yd}s$3q=)wWnzozUbuGvoBE8zSO4K%E&Sb!{?<)t}JLYM#zr>;ME*ZBt1am_>r`-
zEPQn=x2eQDE93{n8ymBc{pCv%YA;{Zao|t@qIqtNl=6@cp>#$)5OR-0<u`evF=`)J
zve5J_pm1c)8TcVo|IKr&dsIaSek%t<Yr3fn3x{Du2;5;EYpiQvP=e*EsmM9;)%Ss=
zElqLN#-*E&91jw4c7vt78tI5p08V6ZNbC0hQXHu~&#<er=yf&8M<3O{9}n90xRmZG
z;*vM|t^`(-uR<W4;W-dYG0t^7{z4!2{Z#M;oXS-2z*F7m?bH3i#cJa_qKH>zL;-}Y
zm%3^>Am47da^=Uz>&Goau_!`c!GyR{q_*qz=X}Y4X(g%5V!?;1<dfi?BHbC4DDlKn
z>OR(Ud8JYs&JOHB*S6KOOeKRmq`W}$z=rP2Cg<oW8pqYCWooL#n2TXY7Wuu9CaRr$
zwCXqA=+EUmD3yxxgro#X0B)sxb`M0?GAG{z!yvS#L6&L(knoY{U$4=5IP=O|4xuvd
zqDmv3q+0?gpF6VowfcE?FM?G`7X}&$QT%^D6H3c1y8>(6pJaU|FLg@Y(oA^(n3kHd
zxMjlZTOKnKmoC1Thf`MW@5~<kbVH%H^G90#tq!L|)U7d*s9shRQ7zN7|H}bYl7Sy2
zI!7djNlx=Ki4LjqtR|03)en`60YIj(Y>~2i4M~UmBftP(5JBbQ>PF-M0000<MNUMn
GLSTZS`fO<c
index 3b0f2d859e2e2ff5ac1e5b4b3b44b584d8fd649e..a489de3bf858b6ea84d1470c17ab157f50adc01d
GIT binary patch
literal 852
zc$@)L1FQUrP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!_DMuRRCwA<Q%h?TQ5ZdU=FX&fwbj=6
zPNTJI#cD+qEeNi(x@ZgC`2$1{vAWPzp;QnN7j+@1Ah>Ynrd_!a1O*?cD_>Y2P3x<)
zLQFGFX6~K2<9F}4Fz_Y0Gjq;-=R4<P<KyFa_SGFsW%3g?cS{TmF@V^7!F*ym=(8@R
zVuVtZgSt0zc!!wcFXnQCZR<*tt%V}oraTz44A21n2P+MxiWL0iTB)))JNfAS>=18R
z)iF`%*oj<g0nB!xJAf$-W`;lm4MC(UhMNsw@jP`BPw?jUVkzBHfQlVl8crMFuZqIV
zg2L135EU;WO2E1cO`d|AUX66VTH<ypM=x|Cgv9iBpB_-yUd&+a3JZPPIG%ivn0g`q
zkucLi6cSPF!m@JUN?8c$2AG3e4+SI<an!JHi;IE2W*q8vuxS;;^+_LruuT_HNF)-F
zA%jIaNDCe4_sH%vj_=E3O<RuM%y9AcB0iLTY-r~=GmwT&-3dQVDu^MeEDe+*rpZbi
z-Q%EtkBbY#S)A<8!sZ!VzE{PY&pwI;8~uB2c-07XFGi!T5`s{G^wWi9VD#p1T)Vq~
z`9+D|P6uZPG7w7+#%@&L)gv4`*n}*P;MbE*BuTN?Z9O&SRdVqD#P~T6eEFvE;PDb#
z^D*}KWU!v}KYSjd(GYY_n;g7)8yahcUj_G;6xpG}qHuGx8JjoQ_%thV?#cpsyEEwP
zZ9;L)GLhDC`ov1~bUD;<1I)6`+-QiTMJTMyDRge+lthNE4hKs$hCBBwCKm^K98^6E
zuiw?NrRX5=rNL;daX}Ap?uW$3nZN+1%K{-;^kX5}g(!@SQ;3s<YOuy=EZf!pawe56
zmULvJFn|hmOjG1QigboF=^6!wgS%O}?;EMy$<Q?$!SY<02aVbYtYDH^E-g>Wq%xwo
zDxsH&Bv~zHsif3PmPB1j>O=+5SnKNf+El}vAMzW1Sp;N{ww3%1f+Q?Lu%yiY#PWci
e)fkQaE5HDNfxtJnvSe!j0000<MNUMnLSTZ>O^Xu%
index 3b0f2d859e2e2ff5ac1e5b4b3b44b584d8fd649e..a489de3bf858b6ea84d1470c17ab157f50adc01d
GIT binary patch
literal 852
zc$@)L1FQUrP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!_DMuRRCwA<Q%h?TQ5ZdU=FX&fwbj=6
zPNTJI#cD+qEeNi(x@ZgC`2$1{vAWPzp;QnN7j+@1Ah>Ynrd_!a1O*?cD_>Y2P3x<)
zLQFGFX6~K2<9F}4Fz_Y0Gjq;-=R4<P<KyFa_SGFsW%3g?cS{TmF@V^7!F*ym=(8@R
zVuVtZgSt0zc!!wcFXnQCZR<*tt%V}oraTz44A21n2P+MxiWL0iTB)))JNfAS>=18R
z)iF`%*oj<g0nB!xJAf$-W`;lm4MC(UhMNsw@jP`BPw?jUVkzBHfQlVl8crMFuZqIV
zg2L135EU;WO2E1cO`d|AUX66VTH<ypM=x|Cgv9iBpB_-yUd&+a3JZPPIG%ivn0g`q
zkucLi6cSPF!m@JUN?8c$2AG3e4+SI<an!JHi;IE2W*q8vuxS;;^+_LruuT_HNF)-F
zA%jIaNDCe4_sH%vj_=E3O<RuM%y9AcB0iLTY-r~=GmwT&-3dQVDu^MeEDe+*rpZbi
z-Q%EtkBbY#S)A<8!sZ!VzE{PY&pwI;8~uB2c-07XFGi!T5`s{G^wWi9VD#p1T)Vq~
z`9+D|P6uZPG7w7+#%@&L)gv4`*n}*P;MbE*BuTN?Z9O&SRdVqD#P~T6eEFvE;PDb#
z^D*}KWU!v}KYSjd(GYY_n;g7)8yahcUj_G;6xpG}qHuGx8JjoQ_%thV?#cpsyEEwP
zZ9;L)GLhDC`ov1~bUD;<1I)6`+-QiTMJTMyDRge+lthNE4hKs$hCBBwCKm^K98^6E
zuiw?NrRX5=rNL;daX}Ap?uW$3nZN+1%K{-;^kX5}g(!@SQ;3s<YOuy=EZf!pawe56
zmULvJFn|hmOjG1QigboF=^6!wgS%O}?;EMy$<Q?$!SY<02aVbYtYDH^E-g>Wq%xwo
zDxsH&Bv~zHsif3PmPB1j>O=+5SnKNf+El}vAMzW1Sp;N{ww3%1f+Q?Lu%yiY#PWci
e)fkQaE5HDNfxtJnvSe!j0000<MNUMnLSTZ>O^Xu%
index 4d15304643248fb3380cdd7e7614888bb1e8feb6..236b5f82106ed4e9f74eff40a29ee36701a894c2
GIT binary patch
literal 1816
zc$@(k2j}>SP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F80000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU&x=BPqRCwC7S6gfpRT%!}va>t83q=bC
z2$y07EMQ5AiBJqyBPmhPq+*OwW4vID4@NZTgD)B{QHc?+iHQ#y<VC~>0Rx&KV#F$l
zctI*CV3BqyP<GqBb!W~w{^!i@TzWwtWSYOTXU;$W|NZwl8obMBUA24mxJ$2Euj{du
zxQG|$&bGn+U)Js2+IEzdOq0qN-LPr?WixKx)7TiRTXJm-={g;PHpEy`XhYOUErPY$
zuKf-@lZvwEIXd?`INj^!`ntC-JFx4nLnb|s*H3MGrSWpJ?uK>?C;J8d>gHow;49`L
z^qVXTgW{pzwKe^v6B^pv<Ji3mb<Ayhg~WA80JdSK+FM&KboGcat&R#57gi>QlTgod
zd4Zq)WN29wLw9$oUFtTQ7O!s<;Lu`ZMOA(6B`*kC6@fN7fd2v_#9wAaF3E!Oa>6{^
zx$g9gx%XqBEUNJmU@pTmtCPO<y;+V7#qW5ZN7+J6xE58$N4I=9xWS^I9HtC`CeiQ^
zqvN;{_fMIiD{7hLtq*m(_~tOfvC|>|5=uI*{*4W+;-KaM%>zJBx$qK6m5R7<Db1f@
zD*B_x#m*mH9Lw-(h&0dY3xr03WV{w)4}d}=m9iSAX5g*uIk*JXG6km9o0u~#fh%X&
z5g=DgH5GmN^AL9IXDC&)Xo-#jLK@DP?*VuKgckzNJa<X}C$l=O4I+Uf8Ag`oi8+hw
z7us05AcaX2Vm^@To8!1*3d4p^N|a!_ACj=u;k5!FJOH`}fWaX}E`{E8>Fx-1=S&JS
zpy?K3@f3tP9-kl7@Z`H^ux0mo6iUnoF@2JO=k85m@&r=gihx*^!fRJ3oxTS+m_p@k
zNB|74KbTew#UVklW;ohIU98I`z8Dh8@%U_C89)4f25VMbf>~4JiZ@A(=84rd0W6?2
z<mJSOkPx{{D4ih>a5y!Dl%bV!PzA}jhUQr&Zd+<${R2td)fPkC)L@u4GC3PBe9({Y
ze$5B`1Y+GCHY`I#Jy9jDyf8`#JlA_6kc?wpt@C1d@xCM$%#_v{WJeksJ}MB1qR%sP
zvVm1gOp?cywakT2F7v`04S~!7sobe0ih&nD>{nGV{W25t8sfNSK{{gPqa8`?_-+WB
zc2=NiHs0Qx$HY1ljngf~b5m;q-yW>s@QI+C)&`SfdOD*?DA75d7dTn=M~{VLeKvL-
z)bScw_|WsGu=ij-;*Ay8#Ibsri9(Jem$UHd`{$7_1c`b3jR{nSSXFKi2AS+441fza
z$bQGmgP{^7;DCmF)<7YfKu^ZTv+oSx<@fq97*cX;n~kfRbXCSDdUb61BIoZl&#}<d
z0G0Ww%&Vl<!i{>MQV}Q&P@g};aQ2j|?s8ozdoK$ZFk<A9eZbn6dLkg!-jhZ=##LY2
zxV3=ZGmgJ^3jvg~#V^MyjqpI`FNT404CMm%5|Nk^mcXj(Vz_gKg_%<{0-~v&aH7}3
zn;XyiO43OkYdUQ8j&9i4@pTZYr7a26*I^g{L_HuEszjLA4dw3!Qux91<MHtAN!-2C
z#yd}s$3q=)wWnzozUbuGvoBE8zSO4K%E&Sb!{?<)t}JLYM#zr>;ME*ZBt1am_>r`-
zEPQn=x2eQDE93{n8ymBc{pCv%YA;{Zao|t@qIqtNl=6@cp>#$)5OR-0<u`evF=`)J
zve5J_pm1c)8TcVo|IKr&dsIaSek%t<Yr3fn3x{Du2;5;EYpiQvP=e*EsmM9;)%Ss=
zElqLN#-*E&91jw4c7vt78tI5p08V6ZNbC0hQXHu~&#<er=yf&8M<3O{9}n90xRmZG
z;*vM|t^`(-uR<W4;W-dYG0t^7{z4!2{Z#M;oXS-2z*F7m?bH3i#cJa_qKH>zL;-}Y
zm%3^>Am47da^=Uz>&Goau_!`c!GyR{q_*qz=X}Y4X(g%5V!?;1<dfi?BHbC4DDlKn
z>OR(Ud8JYs&JOHB*S6KOOeKRmq`W}$z=rP2Cg<oW8pqYCWooL#n2TXY7Wuu9CaRr$
zwCXqA=+EUmD3yxxgro#X0B)sxb`M0?GAG{z!yvS#L6&L(knoY{U$4=5IP=O|4xuvd
zqDmv3q+0?gpF6VowfcE?FM?G`7X}&$QT%^D6H3c1y8>(6pJaU|FLg@Y(oA^(n3kHd
zxMjlZTOKnKmoC1Thf`MW@5~<kbVH%H^G90#tq!L|)U7d*s9shRQ7zN7|H}bYl7Sy2
zI!7djNlx=Ki4LjqtR|03)en`60YIj(Y>~2i4M~UmBftP(5JBbQ>PF-M0000<MNUMn
GLSTZS`fO<c
index 3b0f2d859e2e2ff5ac1e5b4b3b44b584d8fd649e..a489de3bf858b6ea84d1470c17ab157f50adc01d
GIT binary patch
literal 852
zc$@)L1FQUrP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!_DMuRRCwA<Q%h?TQ5ZdU=FX&fwbj=6
zPNTJI#cD+qEeNi(x@ZgC`2$1{vAWPzp;QnN7j+@1Ah>Ynrd_!a1O*?cD_>Y2P3x<)
zLQFGFX6~K2<9F}4Fz_Y0Gjq;-=R4<P<KyFa_SGFsW%3g?cS{TmF@V^7!F*ym=(8@R
zVuVtZgSt0zc!!wcFXnQCZR<*tt%V}oraTz44A21n2P+MxiWL0iTB)))JNfAS>=18R
z)iF`%*oj<g0nB!xJAf$-W`;lm4MC(UhMNsw@jP`BPw?jUVkzBHfQlVl8crMFuZqIV
zg2L135EU;WO2E1cO`d|AUX66VTH<ypM=x|Cgv9iBpB_-yUd&+a3JZPPIG%ivn0g`q
zkucLi6cSPF!m@JUN?8c$2AG3e4+SI<an!JHi;IE2W*q8vuxS;;^+_LruuT_HNF)-F
zA%jIaNDCe4_sH%vj_=E3O<RuM%y9AcB0iLTY-r~=GmwT&-3dQVDu^MeEDe+*rpZbi
z-Q%EtkBbY#S)A<8!sZ!VzE{PY&pwI;8~uB2c-07XFGi!T5`s{G^wWi9VD#p1T)Vq~
z`9+D|P6uZPG7w7+#%@&L)gv4`*n}*P;MbE*BuTN?Z9O&SRdVqD#P~T6eEFvE;PDb#
z^D*}KWU!v}KYSjd(GYY_n;g7)8yahcUj_G;6xpG}qHuGx8JjoQ_%thV?#cpsyEEwP
zZ9;L)GLhDC`ov1~bUD;<1I)6`+-QiTMJTMyDRge+lthNE4hKs$hCBBwCKm^K98^6E
zuiw?NrRX5=rNL;daX}Ap?uW$3nZN+1%K{-;^kX5}g(!@SQ;3s<YOuy=EZf!pawe56
zmULvJFn|hmOjG1QigboF=^6!wgS%O}?;EMy$<Q?$!SY<02aVbYtYDH^E-g>Wq%xwo
zDxsH&Bv~zHsif3PmPB1j>O=+5SnKNf+El}vAMzW1Sp;N{ww3%1f+Q?Lu%yiY#PWci
e)fkQaE5HDNfxtJnvSe!j0000<MNUMnLSTZ>O^Xu%
--- a/browser/themes/pinstripe/browser/jar.mn
+++ b/browser/themes/pinstripe/browser/jar.mn
@@ -42,77 +42,80 @@ classic.jar:
   skin/classic/browser/search-bar-background-right.png
   skin/classic/browser/Secure-Glyph-White.png
   skin/classic/browser/Secure.png
   skin/classic/browser/Security-broken.png
   skin/classic/browser/Secure-statusbar.png
   skin/classic/browser/Secure-statusbar-broken.png
   skin/classic/browser/Secure-background.gif
   skin/classic/browser/Toolbar.png
+  skin/classic/browser/Toolbar-rtl.png
   skin/classic/browser/feeds/subscribe.css                  (feeds/subscribe.css)
   skin/classic/browser/feeds/feedIcon.png                   (feeds/feedIcon.png)
   skin/classic/browser/feeds/feedIcon16.png                 (feeds/feedIcon16.png)
   skin/classic/browser/feeds/videoFeedIcon.png              (feeds/videoFeedIcon.png)
   skin/classic/browser/feeds/videoFeedIcon16.png            (feeds/videoFeedIcon16.png)
   skin/classic/browser/feeds/audioFeedIcon.png              (feeds/audioFeedIcon.png)
   skin/classic/browser/feeds/audioFeedIcon16.png            (feeds/audioFeedIcon16.png)
   skin/classic/browser/radio-selected-bg.png
   skin/classic/browser/setDesktopBackground.css
   skin/classic/browser/monitor.png
   skin/classic/browser/monitor_16-10.png
   skin/classic/browser/wrench.png
+  skin/classic/browser/places/allBookmarks.png              (places/allBookmarks.png)
   skin/classic/browser/places/places.css                    (places/places.css)
 * skin/classic/browser/places/organizer.css                 (places/organizer.css)
   skin/classic/browser/places/query.png                     (places/query.png)
   skin/classic/browser/places/livemarkItem.png              (places/livemarkItem.png)
   skin/classic/browser/places/bookmarksMenu.png             (places/bookmarksMenu.png)
   skin/classic/browser/places/bookmarksToolbar.png          (places/bookmarksToolbar.png)
   skin/classic/browser/places/history.png                   (places/history.png)
   skin/classic/browser/places/menubutton-end-pressed.png    (places/menubutton-end-pressed.png)
+  skin/classic/browser/places/menubutton-end-pressed-rtl.png (places/menubutton-end-pressed-rtl.png)
   skin/classic/browser/places/menubutton-mid-pressed.png    (places/menubutton-mid-pressed.png)
   skin/classic/browser/places/menubutton-start-pressed.png  (places/menubutton-start-pressed.png)
+  skin/classic/browser/places/menubutton-start-pressed-rtl.png (places/menubutton-start-pressed-rtl.png)
   skin/classic/browser/places/star-icons.png                (places/star-icons.png)
   skin/classic/browser/places/toolbar-button-backup.png     (places/toolbar-button-backup.png)
   skin/classic/browser/places/toolbar-button-organize.png   (places/toolbar-button-organize.png)
   skin/classic/browser/places/toolbar-button-view.png       (places/toolbar-button-view.png)
   skin/classic/browser/places/toolbarDropMarker.png         (places/toolbarDropMarker.png)
   skin/classic/browser/places/folderDropArrow.png           (places/folderDropArrow.png)
-  skin/classic/browser/places/infoPaneGrippy.png            (places/infoPaneGrippy.png)
-  skin/classic/browser/places/folderDropHoverArrow.png      (places/folderDropHoverArrow.png)
   skin/classic/browser/places/livemarkFolder.png            (places/livemarkFolder.png)
-  skin/classic/browser/places/livemarkFolderHover.png       (places/livemarkFolderHover.png)
   skin/classic/browser/places/back-forward.png              (places/back-forward.png)
   skin/classic/browser/places/bookmarkProperties.css        (places/bookmarkProperties.css)
-  skin/classic/browser/places/contentSplitter-bg.gif        (places/contentSplitter-bg.gif)
   skin/classic/browser/places/editBookmarkOverlay.css       (places/editBookmarkOverlay.css)
   skin/classic/browser/places/menubutton-start.png          (places/menubutton-start.png)
+  skin/classic/browser/places/menubutton-start-rtl.png      (places/menubutton-start-rtl.png)
   skin/classic/browser/places/menubutton-end.png            (places/menubutton-end.png)
-  skin/classic/browser/places/menubutton-mid.png            (places/menubutton-mid.png)
-  skin/classic/browser/places/minus.png						(places/minus.png)
-  skin/classic/browser/places/minus-active.png				(places/minus-active.png)
-  skin/classic/browser/places/plus.png						(places/plus.png)
-  skin/classic/browser/places/plus-active.png				(places/plus-active.png)
+  skin/classic/browser/places/menubutton-end-rtl.png        (places/menubutton-end-rtl.png)
+  skin/classic/browser/places/minus.png                     (places/minus.png)
+  skin/classic/browser/places/minus-active.png              (places/minus-active.png)
+  skin/classic/browser/places/plus.png                      (places/plus.png)
+  skin/classic/browser/places/plus-active.png               (places/plus-active.png)
   skin/classic/browser/places/starPage.png                  (places/starPage.png)
   skin/classic/browser/places/pageStarred.png               (places/pageStarred.png)
   skin/classic/browser/places/searching_16.png              (places/searching_16.png)
   skin/classic/browser/places/starred48.png                 (places/starred48.png)
   skin/classic/browser/places/unstarred48.png               (places/unstarred48.png)
+  skin/classic/browser/places/unfiledBookmarks.png          (places/unfiledBookmarks.png)
   skin/classic/browser/places/twisty-open.gif               (places/twisty-open.gif)
   skin/classic/browser/places/twisty-closed.gif             (places/twisty-closed.gif)
   skin/classic/browser/places/tag.png                       (places/tag.png)
   skin/classic/browser/places/selected-gradient.png         (places/selected-gradient.png)
   skin/classic/browser/places/selected-focused-gradient.png (places/selected-focused-gradient.png)
-  skin/classic/browser/places/organizer-toolbar.png         (bookmarks/Bookmarks-toolbar.png)
-  skin/classic/browser/places/expander-closed-active.png    (bookmarks/expander-closed-active.png)
-  skin/classic/browser/places/expander-closed.png           (bookmarks/expander-closed.png)
-  skin/classic/browser/places/expander-open-active.png      (bookmarks/expander-open-active.png)
-  skin/classic/browser/places/expander-open.png             (bookmarks/expander-open.png)
+  skin/classic/browser/places/expander-closed-active.png    (places/expander-closed-active.png)
+  skin/classic/browser/places/expander-closed.png           (places/expander-closed.png)
+  skin/classic/browser/places/expander-open-active.png      (places/expander-open-active.png)
+  skin/classic/browser/places/expander-open.png             (places/expander-open.png)
+  skin/classic/browser/preferences/alwaysAsk.png            (preferences/alwaysAsk.png)
   skin/classic/browser/preferences/application.png          (preferences/application.png)
   skin/classic/browser/preferences/Options.png              (preferences/Options.png)
   skin/classic/browser/preferences/plugin.png               (preferences/plugin.png)
+  skin/classic/browser/preferences/saveFile.png             (preferences/saveFile.png)
   skin/classic/browser/preferences/preferences.css          (preferences/preferences.css)
   skin/classic/browser/preferences/applications.css         (preferences/applications.css)
   skin/classic/browser/tabbrowser/alltabs-box-bkgnd.png                  (tabbrowser/alltabs-box-bkgnd.png)
   skin/classic/browser/tabbrowser/alltabs-box-bkgnd-icon.png             (tabbrowser/alltabs-box-bkgnd-icon.png)
   skin/classic/browser/tabbrowser/alltabs-box-overflow-bkgnd.png         (tabbrowser/alltabs-box-overflow-bkgnd.png)
   skin/classic/browser/tabbrowser/alltabs-box-overflow-bkgnd-animate.png (tabbrowser/alltabs-box-overflow-bkgnd-animate.png)
   skin/classic/browser/tabbrowser/tab-arrow-start.png                    (tabbrowser/tab-arrow-start.png)
   skin/classic/browser/tabbrowser/tab-arrow-start-bkgnd.png              (tabbrowser/tab-arrow-start-bkgnd.png)
@@ -131,30 +134,37 @@ classic.jar:
   skin/classic/browser/tabbrowser/tab-middle-hover.png                   (tabbrowser/tab-middle-hover.png)
   skin/classic/browser/tabbrowser/tab-middle-inactive.png                (tabbrowser/tab-middle-inactive.png)
   skin/classic/browser/tabbrowser/tab-right.png                          (tabbrowser/tab-right.png)
   skin/classic/browser/tabbrowser/tab-right-bkgnd.png                    (tabbrowser/tab-right-bkgnd.png)
   skin/classic/browser/tabbrowser/tab-right-hover.png                    (tabbrowser/tab-right-hover.png)
   skin/classic/browser/tabbrowser/tab-right-inactive.png                 (tabbrowser/tab-right-inactive.png)
   skin/classic/browser/tabbrowser/tabs-bottom-bg.png                     (tabbrowser/tabs-bottom-bg.png)
   skin/classic/browser/urlbar/endcap.png                                 (urlbar/endcap.png)
+  skin/classic/browser/urlbar/endcap-rtl.png                             (urlbar/endcap-rtl.png)
   skin/classic/browser/urlbar/endcap-focused.png                         (urlbar/endcap-focused.png)
+  skin/classic/browser/urlbar/endcap-focused-rtl.png                     (urlbar/endcap-focused-rtl.png)
   skin/classic/browser/urlbar/startcap.png                               (urlbar/startcap.png)
+  skin/classic/browser/urlbar/startcap-rtl.png                           (urlbar/startcap-rtl.png)
   skin/classic/browser/urlbar/startcap-focused.png                       (urlbar/startcap-focused.png)
+  skin/classic/browser/urlbar/startcap-focused-rtl.png                   (urlbar/startcap-focused-rtl.png)
   skin/classic/browser/urlbar/startcap-secure-start.png                  (urlbar/startcap-secure-start.png)
   skin/classic/browser/urlbar/startcap-secure-mid.png                    (urlbar/startcap-secure-mid.png)
   skin/classic/browser/urlbar/startcap-secure-end.png                    (urlbar/startcap-secure-end.png)
   skin/classic/browser/urlbar/startcap-secure-start-focused.png          (urlbar/startcap-secure-start-focused.png)
   skin/classic/browser/urlbar/startcap-secure-mid-focused.png            (urlbar/startcap-secure-mid-focused.png)
   skin/classic/browser/urlbar/startcap-secure-end-focused.png            (urlbar/startcap-secure-end-focused.png)
   skin/classic/browser/urlbar/startcap-verified-start.png                (urlbar/startcap-verified-start.png)
   skin/classic/browser/urlbar/startcap-verified-mid.png                  (urlbar/startcap-verified-mid.png)
   skin/classic/browser/urlbar/startcap-verified-end.png                  (urlbar/startcap-verified-end.png)
   skin/classic/browser/urlbar/startcap-verified-start-focused.png        (urlbar/startcap-verified-start-focused.png)
   skin/classic/browser/urlbar/startcap-verified-mid-focused.png          (urlbar/startcap-verified-mid-focused.png)
   skin/classic/browser/urlbar/startcap-verified-end-focused.png          (urlbar/startcap-verified-end-focused.png)
   skin/classic/browser/urlbar/startcap-secure.png                        (urlbar/startcap-secure.png)
   skin/classic/browser/urlbar/startcap-active.png                        (urlbar/startcap-active.png)
+  skin/classic/browser/urlbar/startcap-active-rtl.png                    (urlbar/startcap-active-rtl.png)
+  skin/classic/browser/urlbar/startcap-active-focused.png                (urlbar/startcap-active-focused.png)
+  skin/classic/browser/urlbar/startcap-active-focused-rtl.png            (urlbar/startcap-active-focused-rtl.png)
   skin/classic/browser/urlbar/startcap-secure-active.png                 (urlbar/startcap-secure-active.png)
   skin/classic/browser/urlbar/textfield-mid.png                          (urlbar/textfield-mid.png)
   skin/classic/browser/urlbar/textfield-mid-focused.png                  (urlbar/textfield-mid-focused.png)
   icon.png
   preview.png
index 01814248c71afe3643f97ddf28ceca15388b50e5..e52645846226d13a526ca862c6d2b0248fb35aa4
GIT binary patch
literal 683
zc$@*N0#yBpP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!O-V#SRCwB?Q%y)zQ562(&rCY%7?K5|
z4HHN~QuKp?QB1fBaZ!sRvPFS}i^7Gqa@Wp4A_x~jQJWA-DBBe|1{n=RLW@MkiJ=(^
zZOF-afA_t2Z|B~!nuLmaa2}6$zVAEVIrm&m2!a23O!?{^n7YA3|MbrZ-H6<r96NO8
zuLLAHl}c45(&@Am{Ifvsz>^oAvy4JMTa{o=8Qpz%e%oKHVN=HBVbFQ%#E~`0-8<Xy
zD_eYv)x^E~Q=MiQ3KW(&K3f7|z%X(yj^d(^g+hSL8;(+02Q+O>f!cK%B-acAvg-+W
zt^ji#OlKJ4^*XwCtf$cM@TrCAS&cOGDgljLNUj+$4%d|-lu$NrVSeEwMwe_H?@8il
zcPrXAyBNFcfeZ6TJ6wb0nm!Y798Mu1zx$6RD4jsQXyfwrIn3wE80z1So-T&*M?N_*
zlt4(;C0=KwQmJs*mW&W52VddR)z_$t8MrdM3v*cq<CAZ3_&@_1YdnRKSc^E4O9BFx
z%~iObi4ULZ@OZ{S-}&cw_uj^Zv)gccq5wY-IJn24VoYIIlmI#Kr2|>rmTdqd7uzs8
z+<|2)j%&BF*t(@2iIzrWW=q)H5hDRtVJ+fFt{(V8*>U7gO1h3m17%=-EuOt(s^4T=
z3^^KZb5j&{#Zy=*BDq>}--Kvx*-!Qbt+a)}TT~<?x`8ImXwoG$I3Yr4&|%hWgki=N
zW~DR(wMfO>gVnPkp#SxpwFoU7r;FlOZ;&4SeiBBc33A0+<y!yaZMMG%FaV|uOQtQ?
RDD40M002ovPDHLkV1j9hFkJuu
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..d1abe8192be1066773089d07df18a18cf402ce9f
GIT binary patch
literal 673
zc$@*D0$%-zP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!LrFwIRCwBqQ%h?TQ5632nAFhJNDPfu
z!4#v2_=<w~SSfYuLO~FBiVOdMRjLc2Ygg{XjT_yFi{e7iA{a#!6|13$TH|9vOhRLV
z$;{k)XU22xG%bnG1844?x#xSFdy<gv`^aTSvjEOh4pZX5xmX(i3Lo#To_TvRO5hy5
z-ncY5x#8g0SQ7scrfK3<aeRdLQOawnR4RXAVj^-j{S=>S#lM0R(G2!xPNQ5eDNSI+
zjCE^sBav7N*t2stHrcD-dTwvJE*vHF{^g6;<Q{OPuL+}4NC-iPiVG!_t9~WWB>Y{$
z?nq7Os(>KO4=E+3f}|ozN{WaqOXBjyh+dggb;(KDV?x<SprlI$0zx@x%nRI`ilh8>
zJs#XipxK~v6{JVXis~0z&;)`HSzY4QGY{9VWHB(9MSLiQ!gLz<r%E_->J3IWTN)^Y
z>~$a{+14!xY|F=R?8Is;OJrfhgZ1d~47O}HbbH*pW7~hY16muM3RYykAQUnXjtuBE
zIb6bgyR03uvSnMnEwCl+fD{~IqgrnwzvCnJ?f;HPg(RxA7DiSEV^jpR9jEUOv;%j6
zz`@pCH4MfcqyFPF4jo>DmQ};IrUU-jGtjY}#TKGVQ&4mlQah-KIV%1Dj{x;nna1X6
zbq;pGB7H3cm&hZuiGcqpti}Wk<~<Mqc#Q8$GaVwB?Q22lX|MwZ_zNWc(Qdchsy)52
zaI<W72_6m^%OOKv`1xJapP8LQDEu4bQWT%uu9)4Ip8^a3>A1gJ(rvx(00000NkvXX
Hu0mjf_?#~P
deleted file mode 100644
index f05b87d163469772d70acdbed5748b5339fcb79f..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..7ef5f04f9ea9aec76eb9bee7af5aaa2c74a3fb01
GIT binary patch
literal 1329
zc$@(-1<v}3P)<h;3K|Lk000e1NJLTq000;O000*V1^@s65h0H)00004XF*Lt007q5
z)K6G40000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU$!%0LzRCwBA
zWB>w}q%Qvd{}~Q`d;d)L|NnnX3`l^H0YCVU#AasU_{k+CyLtEQ+;AZG-+!Q?009Kj
z&+L-izfW6N*UrPqih-St1;b!QMu<U-$Oit$wCK&dPYhdj9{lt8;k{Y=7nJ4#E%*lz
zKp@jNzJGjf>FJWq@E2&~g(rU*K7IdB&<DuoGXWKe@Gvo`iSskqSQ@h|yn4nPC|m@@
zKLG*=WC8o1-#=K{SQ!~ELJenx>SBc2zz88woc|vt075|g>hnJakmp4Nxf%Zc`^^KC
zWCK|M5I~^tW&x@C3uJu!4l<YtVmL5d7@2_><UD4GFe8WtV@5C=EDywBF97k2&;J=%
z5HZLMA^-vi9^hbC0!;xM05lw|jtLP=|DihmqX*qTARDCaKO@+YXi>ue5I`(2#Y{jK
zFad)J<QPU6h6W82vVn|{Ac2|<<U=?hF^~foncx8m1^@vBw%|WV5hKLwNIqsbvUW1V
zqid&tmNR3-_P@V>8D!Lr80^Cffr$fX#y^OKjEtyC0Rjl>ga6<#X9oEK5(QvyE9zS@
zTs^W8XC6@0vt(dm0qO>Z%|B37{exJ*z=*H|Ab^-)sRCpmNHH@Iv#>#EMO{+{+t5rz
zkRf3U-*^UP11p9<fBrN428PeKAHWp&^Do2C-~SkX{QC6|W&uC|K_VIGKak5=SRko|
znF$gnpfI)Y3S)S7`#i(FOD7oqfr8=Re+FS0O$G_0Fowr3z5|ma16UlChd@E~o%;{N
z&u>5BaSaea5Far82PZdXRtN_9gq4+n;SbQT_n-bS==$U{FtZDQUCYGE!C)Ct0+eTB
zU;$z_C}v@0W?%)TQD!F8NB{^Rco2caK|TN_nQuS-F+6+oi{a(F-(WU3pAdt6bQ#!J
z=KkpnLK3nJY-|vNS=k_tVg+FqMo4NziUWWEVu2?(purzL{bl(2^)EOt038H0gb^Ix
zpp+%AW5S^C9KxVw;|Vqdl;A-@^6wu=&3|wN|Ai$`MnrA^2q3TpfByVq`10i+!`JWs
zz%F57W<<mVG>?E1flX)z+&!R@k_ni(fJG()Gf@3+P_+L24^QGS01!Z63w{EF0VKx8
z0?GOygIRz+V1X46j1WIFLbLQgpbJ5zIy0z<`O657Xof$KOa{tJ|B-?SAb_An#Xqn?
zps-{C<p-cBE64}1G6<xQ1>r1E&@lXi1`iX=aG)MgNHhKi=PMWh2q1V-0SXpTZYGA0
ze;|glLJbF5!ieT=W>C;DgK{%a{2xUBA0S%{REGX$L@BBO0tjpY3oFMTpf_1mg%}y`
ze+H)IKM;dKK4F5CfuJH6QDOu6e}QWLGC>RmdYnO!6PUC485pkJ{0#Ih>ra>k009Kj
z_lKQZ;>w2Y+YN%e-57L4SRgKk8jS3ECTKwi3xL1>AbfBJ1kx|xeqcCs?BpL-R<7e9
zX^<L#00L>{7L-)clvFd>_T%$&k-xuxFd|A*c-g{$Tv7jnRcZg>6xbp*PX2$KJW|&$
z?p@#q6nY9wX+Hr1h!I-M3jnbc5DPLOLW5KQvIi72Z-DqY5Pt#H$p8Vwh!j+upz4zW
n)v=@kV9YT5fMRf~0wBNu(gkh+k|I`<00000NkvXXu0mjf(9$K;
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..7850c9e9510b196e7b34398d2c028a457c901418
GIT binary patch
literal 837
zc$@)61G@Z)P)<h;3K|Lk000e1NJLTq000;O000*V1^@s65h0H)00004XF*Lt007q5
z)K6G40000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!*GWV{RCwBA
zWB`Jmo*n@{KE5Mw-n`NL_wOGQ1DSx0jqR7HsOYxD#Kd4A_uv2j{}})R2qextXU?3X
z$B!TX|NHmv|CE5wpFjWKzJ2?jsZ*!U0Gi7LvH&1}Sbz+Uw{PE?nwy)0UGe?<cLtzE
zB)guSot=S)hljzyz<~Mk<;&hcAyy#%2@pUa3)p}C`o+q~$Vj%~An^0&PX>?~TwGiX
zK=ZgjAqEl#2q2IJEHFiX{`>(eA{PJ+2I~jLBRJ?m1V8|R4TlOaz#@fQfTSPJ00<x!
zWC==Kk8H``zklI;fB<5_=kn>(r!$;BeVT!pnHfV4WQd`mAwzC%E<T?y00a<<1x!q+
zS-`@=f?>;+EjV2Zl1JAAibrG%00M{!J&2I8iHQkAYHBK0!((D%7|hJfz^M*|zkT}#
z#?Ykx2c`}nfS8aY85;-=4rVYlH3d5Yqz)7`ii(O1&d$yZuU@@kc=zrd7y~mI7=zS&
z`SJyx)&T+t#R6p4gS-y%E>JN;e0)4O6M+l|76%NOnVH~t0jWX9PykOY00D#&fFOfG
zF8%T22iR2~K70VP1q1{bva_?n^0Be83{p~3SPchZ^ppq?KrFBn0RmsYeg)@dxa~+0
z2rL2^e0_bvL4zK#=qU&}k^uq;ZUIOTl-==Z1_c$7c>(SXfB<5Fl_S`aDK!8<0KxMC
zEMh4EApOuFg8Kj<fKW0Ts3ZhMD!G80n;V`NU;rS1SfDol1X{ulQUJ0HR4S4RI5;>M
zI5{~PUcP(@;=)}C5I`Uc{s1jFyL0DGD;F0R23}rXvVHLB(<cUC&G;LbXbytX4oD0j
zfIwlzEh8hNVQg%?5tu}!fDul1kqQjr-$0*SSigRK1d#g_7#cqT0*Db>F$e&$6c7tS
zeMOEXpojz|$2UOy9EiUFE%*lzK#WL1#R;lD(Q`M6;14wXf52K5009O7Gh2ejfzj5Q
P00000NkvXXu0mjfLdQsv
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..673ead568d21bf9fb2d3ff1d729d8326541740e6
GIT binary patch
literal 1329
zc$@(-1<v}3P)<h;3K|Lk000e1NJLTq000;O000*V1^@s65h0H)00004XF*Lt007q5
z)K6G40000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU$!%0LzRCwBA
zWB>w}q%Qvd{}~Q`d;d)L|NnnX3`l^H0YCVU#AasU_{k+CyLtEQ+;AZG-+!Q?009Kj
z&+L-izfW6N*UrPqih-St1;b!QMu<U-$Oit$wCK&dPYhdj9{lt8;k{Y=7nJ4#E%*lz
zKp@jNzJGjf>FJWq@E2&~g(rU*K7IdB&<DuoGXWKe@Gvo`iSskqSQ@h|yn4nPC|m@@
zKLG*=WC8o1-#=K{SQ!~ELJenx>SBc2zz88woc|vt075|g>hnJakmp4Nxf%Zc`^^KC
zWCK|M5I~^tW&x@C3uJu!4l<YtVmL5d7@2_><UD4GFe8WtV@5C=EDywBF97k2&;J=%
z5HZLMA^-vi9^hbC0!;xM05lw|jtLP=|DihmqX*qTARDCaKO@+YXi>ue5I{^Y#Y{jK
zFad*!3F<0F79bmJArk{L5VHdDsjYK>V*kN>7G{VXNIgssGt|e7NcIB+5ZHqMjQ_zx
zOi)EEFbwn`D-eU|XLrvsTspX#;nwNx3@ogmBncD;dWi+-C}tLjKCnfMs0jlgfS^A3
z4-Ru?CPsvdKt5oBuz!4i&#-q%CpZ9(Z<xvO`Q1|nW~jknHB3++FhVR~U_{sf5I{_@
zQ~?S{kYbP~7B;A>Kp1Gy{-r$(-#@<tYySP~JHy_^oj?~ueEjFne}><{Wc2L^Fa`en
z%kcB}KZYN_e*J@401!ZsNdEs1oJv4J0iv0iAaMeU)N^}RF+99_3heKH|3LUZ!^4|b
z8MZE&%b?>F4NQ^{aZn!m3k>P++<zE;e)|cJYk&ZP_y8DjU@x*lFvusYz;M2M<rKr-
zWz)f~`t|ES*tP$lZo9UBDZ|S<rx@5+nZTHZl^GacOyFQfjs$=JVu1w_NF3w?kp6Gq
z|1o_1{)gex@gode0utcV!ibiO{{d}!aqAR=ysjm~A87jg_ZONPk>UU#fLP#(8R(Y}
zpZ+p@{rVT27l008unErvhdVPPYJPy(0tyn4j~IcekQo$AumsA8$PEAi1h(MMpMMNr
zzJOf)4;VC%BnpoUXdYoiE@S_JiU**tftd?fWP+3EZ;;pj{)c61H~<JBumwMV`~zFe
z#sW=lOwcqAD;^jjerAMv;UCb2pi-R~RK)yc1V=Q(9|mwH1EsA0NI?V;K+vM%AJ`yJ
z1hath11N)md;lwhKnht9&ieZw;){R(pg#KpDK1z+A<g(7oUdR2Ab?n4VG9ZtQEn!N
zkAEPBvqB9AS;C0sZDvr=Fhe8tA4ESWqQyXE=x;`pq6#2@z!tEua{K{$lSNgCk>UPl
zU|RkIF&N|%CP*0wDsmB#4CMa>s`<+VF&OA^20=~+21R~g^1b;P=v&sGFbe<z2&C^1
zJGaD@4coUH1bMqL=!mdDTn;rD+4Ug$|9?bE`uh*U2WLPa{qpSxhC|0r{$XY1Iu4Qs
zsR0NekXCL%Nfk{=HIr>WK0g=v`}+qYxWIy?I7r#TfR>0Lw)}@vV2ju|`Tue9NL|0U
zcYz;J=qWIz{R9XgMrbiF0K`&2EXaTe4N?Kf9#GJ{0pjOC`~_4e0|XEwQc!V%s!s+~
n$C3(wF~jf!iovZ4fB*vk{nvi;!|I_m00000NkvXXu0mjfixE5#
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..76553571d9744faf08b3ca6548eb1ee429fa9cc8
GIT binary patch
literal 818
zc$@(;1I_%2P)<h;3K|Lk000e1NJLTq000;O000*V1^@s65h0H)00004XF*Lt007q5
z)K6G40000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!#7RU!RCwBA
zWB`Jmo*n@{KE5Mw-n`NL_wOGQ1DSx0jqR7HsOYxD#Kd4A_uv2j{}})R2qextXU?3X
z$B!TX|NHmv|CE5wpFjWKzJ2?jsZ*!U0Gi7LvH&1}Sbz+Uw{PE?nwy)0UGe?<cLtzE
zB)guSot=S)hljzyz<~Mk<;&hcAyy#%2@pUa3)p}C`o+q~$Vj%~An^0&PX>?~TwGiX
zK=ZgjAqEl#2q2IJEHFiX{`>(eA{PJ+2I~jLBRJ?m1V8|R4TlOaz#@fQfTSPJ00<x^
zWC@V%`0%`W^T3Y5rv?Q6{{0KL6d-_@h;{k-^XD1XuV2rwYu7GPe8K<_KqwY4F)?Aq
zA3uI%=<V$VtD8G_F2nQZ&vB{+sX?{?Ab^MpqW=DVhWGE^!;>+{GMGM4ssrI~-@bt{
zRLvil1pooWgdEA(z}mHI8BU)*4K@s<4ivt?bj~ns+BAk&uU;{{d-o2Eftd`9L2ABy
z`2tVt00D$z0kW$>-aU2d6vK=eGr%qcC1H@^AhjUN)~#Cyju-SGf&zG22M8b*WY@yd
zFeuZ2g5tn|0}Q~j1z95;fYe>MaDl<p)RY0;3}gThKrG0~>g(69V1r>GB_)Ndynr0Z
z009KI03--<IX2glVF}zD00G1TD@S0-l-d9wfLLJOf<-JP04X29eE<+ZEXer)R1*I9
z@q=s&xVgFEc>x9h0*D1_^G~29>>vdo%Rr?fseprngMpKili}sdmmn_Ol>h+*vfvNU
zg0nk!?zD1oabe))<t5t(pFVwJ0M?AZfr;iIDD8m600IaUR@^c&G8)Fl#v6f2R0<g3
zWLF5lApQ;X$pv7c7y;xy1%}2?fB<5IRty3_ECs}ZP+yT_2`C~#$?**kKL_G3Knwl>
w1P~)qP;r8)PgwCmCinvl{~xec1weoS0A>@TalLnur2qf`07*qoM6N<$f)Wy5t^fc4
deleted file mode 100644
index 53ce25c6bfe18b41bdd1f9f05dad3cc4436d80ff..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index b042004b8839bb0c19f785e7a8e7810a643fbcf9..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
deleted file mode 100644
index db3cc03fd5c7e9c63c8291e6edd86ac63defc316..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
new file mode 100755
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..f2252246de7118ba042a5d52245a9ac62f5238ee
GIT binary patch
literal 631
zc$@)u0*L*IP)<h;3K|Lk000e1NJLTq000pH000*V1^@s6?KGt40006$Nkl<ZIE|H*
zJ%}1n5Xax@y6d{?t}g27viRABgA^AILYfrDAXq4YKtKqjO$ccuCs^2|u`{K0kZV&~
zBvnWewYIfNW1-*|Dw>&xYgW(ac@KtJ+?n6b{AZqACX*o?#}PbM59Wu**Wh1**TFvq
zZ$FHs&qp8<_>W+p=kvL;TrU3yTN1735OM+beYILW0RVA2okWr(B8nn$I2^=ox8DoV
zZ8qEQ*=%NDu+QhCrYH(=xm*;4zi(T;3xOj*z_00adW8wWV334DA);v-g_xCKGJJ?x
z$<1Q1_=2VDx=tdI2!(jPUfL4R^ECNb6(&T17yb2mtr&(uVzC$nU<HC8Fu%SB$>nk%
zppAMU5Fm*}f*?p$RSLK-c?T&J3O~l<@pA;AAq?AMO@dX)0KTZDQYl&mPQ(=PYzSzw
zgz|Z;A{-7AkH@nc<=K#IHaiCq#dthU1;r6R7?RKD|3cD5GMS|NfqLLb9|S2Di+@I=
z(G|91Ld?;g3*yS<^4D&+`#u_tQi$8_rV!SOABD8r?dwXV@)LBCP+04hTD3U^<2IX(
z0FZB;PUjUuaM4g)tmbgtnSTZ8bec38jq6gWbPLx%YPMv({s^*e@10wWkXEb3gD!8Y
z)oKkYQ~iGbUNt6&)fR=|0gwzWy{pw~pN7L>47HJEd9NClK0C-3<Q@zL*?PVH1_XZr
z!IIh5sj=@twjdtdWxwBl+H5wT^?JQWlgUJdT{2EhhxJYbOMzjs45qOH{{bDKnTLLB
Rj@bYJ002ovPDHLkV1l7p98&-Q
new file mode 100755
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..a5c90d5a0150fc4abb9129eac4aa8d72419db1da
GIT binary patch
literal 501
zc$@+C0Sf+!P)<h;3K|Lk000e1NJLTq000pH000*V1^@s6?KGt40005JNkl<ZI8U9_
zO-lkn7{Kv4gb@Wnr=X9}sgs{Td{;DCPvRw$2s?NxQ4kRXuN_qU0DDN$@E|CJ7cZ_N
zgdpf)MT8K;LSzX`o}L*<G!WJieka*KGtce}(d+fZU@$O7qmeP0OvG$9pP(Cy#qx}r
zR;%>~fz4)P>~{MKp%DOB!N>td?(u=ocsvfZS`GUBJ}j3@*!J6qVBi!34WG{k-ENmX
zsKzRS+d0F)Fr7}rd_IT8Vxby~APoj2Q4~Q@l%25%uHqpUi@|I*<3c0Hbcl2Y)9I88
z!9XAyjly_5=0==O=Sx1HhtX)njjrTfk|dC2nH!zSH=ReX*W*S%@vl~^1)WZZ8*w-s
zZ<R^~+U+(s;_-N-Y&HvxMuQs(g+h<PU=Zr{Iycg6Hnn)vm142TPAm_4_%z{g_$d$w
zK($)sLUcME84LzmK@bM?{wSBrJ7W=C%^tqyE4-yXa7IA4Rw|WL`-@PAIG;PW+b!d&
zAd|^Jp-@m|JwhE#CKDkNi4^f8RQ!HFB$G)<rBaZ~<+fsxb#!a!0_Sv_NF+qB*Zb;n
rxrX>3Y_oAm|Fe(IkpW$z>ur7kF;B3e2Pvhj00000NkvXXu0mjfXj0Zt
deleted file mode 100644
index 62c2b3f7ec4fec50765be97b501d9e890de31737..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
new file mode 100755
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..a2af3b4e6a2bdc134e604e623a76e1484df820e4
GIT binary patch
literal 729
zc$@**0w(>5P)<h;3K|Lk000e1NJLTq0077U000*V1^@s6PA~vu0007@Nkl<Zc-rlo
zJBt%h7>3UzXE)c~Ns%_BO%sbm7sO(_lm^qKu?m)HB;*eWYaxh@zd#f_8%3-|L=XkB
zvruAKH=Fxya*y9T%*Y`A0?+%v$C=HZ>cGQ$zBy;Ca=E-$g#731_xs?umGQHTZ5dz7
z_*};RUvu2iIz2t5AjC*nz`?<RibkU&`R%^cBl*b*3Zk>wELV&e#df<@>-AbKmrLb1
zj+#s+wn%cOwXTR1H)YB%f3D8w^IS1vOmd(g2;`X0=V~+>slj02mdJ7~7K?q5IoGlM
zas|m`GF&-g47=UVmBddF2-55I)WyYx>U27gCKHdxUx-9EWco@U9UXDih;b<bQ8t^6
zN+y#E4oGsS!^1<>Znu#nSLOMx%sbPF8$wLOvMd!2hn1v-lHS98M!|<xtA!~|smBzA
z7!L$NiogXl?X%fTU0z<=BF}A&m?4CTV&QeKN~Kb6_4|Fi0=`8-2=RK8P$=Z~A&Er7
z?MbAOzd}I>@dQER?n{C+84iaw1tG)}1U-m*y+pQK5Jj5yEd?RO69g`x{FC-bBr>2N
zgmQRiBdgWQJv>C=*|zPUe9cQJhqt|g6nM>x!n52mdCvqP#)=W_J>bD&u~5_L)V+Qp
zeTY-3RGw(;wFogWHG)@8kQn~uMO3j^d@1!wW4}d+NvQ!K1}b><9qG~Sc5$lyqgJau
zD3wYpjbn8}Oq0ZyBbXjIJ(sQ3u-R<hlkcQHVxE?dMYw9jxV|Hp9ter?c#JD1-y4m_
z!$P6(Owz+`&Nco)h-v)?Qp4X`$=}Y&$;q2~z5X<vPQMa4{%ouC`T03ljTncVakP$)
zkB7Nj?rXJLeJfk4ck=TWKRJ9XvF8q#ix@~x3Q2*FKfX!*^KI2{yy4)(2wmn<00000
LNkvXXu0mjfH;`OB
new file mode 100755
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..243bfd49a2d2751ba8c97b58e6c03e9f5238357c
GIT binary patch
literal 576
zc$@)10>Ax<P)<h;3K|Lk000e1NJLTq0077U000*V1^@s6PA~vu00069Nkl<Zc-rmU
zzpGMl7{~GN5I3SAXbSohnwsukApTY~(MepcNrVkfB?=;f;M$<#AK;Lp;UFl4i;G7Q
zLJ)K?E<%W5AtGVP)AO8*>G>BrpD(;zj_aH6d5-6+@_M}l@W1nTJUX}AE&jM%t|9y6
zbUI(NCk}^0+3j|n&1TbCtyZN73(I8dcs$a4KBr!<N4Z>1g89jTyyG|?@MU$P2O?hv
zFth1&O3`SPIFbQJ^3)K>;cy@Tv)k=<R4SDul3TvLdiF1n{eDjXaHm?WN+cS`ais^c
z-EIj0&a&Ao@h<XS4`j315CELXOd^9j2l800Rx1Jkqf90vk;K(<xg-EEs@Ln}_xnGq
z#bQAKV5Di9>>%IOY&IhRFp@chXOQ1&GMNwn7>!0FdEEO;jmKjG0HaQ)Lq4DHn;HxT
z1OP^rN`=DVu%`O`J^_GHB9WkEGWkKt8;t;P)@(M3UxnWfhr?^t?RE(O&f@VnrBbPn
z{KDduYPZ`20C(hkNH7@u%In%<u_)DQwFtoM<hF`u4mo}JgCFtU@a}O>52Vp(5P+GL
z%VpU$C=?1Uc<y-1aXggsAbKFRT8#kArdTXep-`Y$EG9n)?$haXbG=>%IgCfA6NP#p
z{6PR_69@!uBaz6Ld_G_0dE*TS@#1t_bxBHj1z<uinT<VX_b>mf;nH8&PWzoWXdedv
O0000<MNUMnLSTa8`~<H6
--- a/browser/themes/pinstripe/browser/places/organizer.css
+++ b/browser/themes/pinstripe/browser/places/organizer.css
@@ -12,16 +12,30 @@
   margin: 0;
 }
 
 #placesList treechildren::-moz-tree-row {
   background-color: transparent;
   border-color: transparent;
 }
 
+#placesList treechildren::-moz-tree-row(selected) {  
+  background-color: #6f81a9;
+  background-image: url("chrome://browser/skin/places/selected-gradient.png");
+  background-repeat: repeat-x;
+  background-position: bottom left;
+  border-top: 1px solid #979797;
+}
+
+#placesList treechildren::-moz-tree-row(selected,focus) {  
+  background-image: url("chrome://browser/skin/places/selected-focused-gradient.png");
+  background-color: #8a8a8a !important;
+  border-top: 1px solid #91a0c0;
+}
+
 #placesList treechildren::-moz-tree-row(History),
 #placesList treechildren::-moz-tree-row(history)  {
   background-color: blue;
 }
 
 #placesList treechildren::-moz-tree-cell(leaf) ,
 #placesList treechildren::-moz-tree-image(leaf) {
   cursor: pointer;
@@ -31,107 +45,163 @@
   cursor: pointer;
   text-decoration: underline;
 }
 
 #placesList treechildren::-moz-tree-cell(separator) {
   cursor: default;
 }
 
+#placesList treechildren::-moz-tree-separator {
+  border-top: 1px solid #505d6d;
+  margin: 0 10px;
+}
+
+#placesList treechildren::-moz-tree-cell-text(selected) {  
+  font-weight: bold !important;
+  color: #ffffff !important;
+}
+
 #placesToolbar {
   background-color: #999;
   border-bottom: 1px solid #404040;
   background-image: url("chrome://global/skin/toolbar/toolbar-background.gif");
   background-repeat: repeat-x;
   background-position: 3px 0px;
   margin-top: -3px;
   padding: 0 4px;
 }
 
 #placesView {
   border-top: none !important;
 }
 
 #placesView > splitter {
-  border-left: none !important;
-  border-right: 1px solid #404040;
+  -moz-border-start: none !important;
+  -moz-border-end: 1px solid #404040;
   min-width: 1px;
   width: 1px;
   background-image: none !important;       
-} 
+}
+
+.toolbarbutton-1 {
+  list-style-image: url("chrome://browser/skin/places/back-forward.png");
+}
 
 /* back button */
 
 #back-button {
-  list-style-image: url("chrome://browser/skin/places/back-forward.png");
   -moz-image-region: rect(0px, 34px, 23px, 0px);
   -moz-margin-end: 0;
   -moz-padding-end: 0;
   border-left: none;
   border-right: none;
 }
 
+#back-button[chromedir="rtl"] {
+  -moz-image-region: rect(0px, 67px, 23px, 34px);
+}
+
 #back-button[disabled="true"] {
  -moz-image-region: rect(23px, 34px, 46px, 0px) !important;
 }
 
+#back-button[disabled="true"][chromedir="rtl"] {
+ -moz-image-region: rect(23px, 67px, 46px, 34px) !important;
+}
+
 #back-button:hover:active,
 #back-button[buttondown="true"],
 #back-button[open="true"] {
   -moz-image-region: rect(46px, 34px, 69px, 0px);
 }
 
+#back-button:hover:active[chromedir="rtl"],
+#back-button[buttondown="true"][chromedir="rtl"],
+#back-button[open="true"][chromedir="rtl"] {
+  -moz-image-region: rect(46px, 67px, 69px, 34px);
+}
+
 #back-button > .toolbarbutton-text,
 #forward-button > .toolbarbutton-text {
   display: none;
 }
 
 /* forward button */
 
 #forward-button {
-  list-style-image: url("chrome://browser/skin/places/back-forward.png");
   -moz-image-region: rect(0px, 67px, 23px, 34px);
   -moz-margin-start: 0;
   -moz-margin-end: 8px;
   -moz-padding-start: 0;
   border-left: none;
   border-right: none;
 }
 
+#forward-button[chromedir="rtl"] {
+  -moz-image-region: rect(0px, 34px, 23px, 0px);
+}
+
 #forward-button[disabled="true"] {
- -moz-image-region: rect(23px, 67px, 46px, 34px) !important;
+  -moz-image-region: rect(23px, 67px, 46px, 34px) !important;
+}
+
+#forward-button[disabled="true"][chromedir="rtl"] {
+  -moz-image-region: rect(23px, 34px, 46px, 0px) !important;
 }
 
 #forward-button:hover:active,
 #forward-button[buttondown="true"],
 #forward-button[open="true"] {
   -moz-image-region: rect(46px, 67px, 69px, 34px);
 }
 
+#forward-button:hover:active[chromedir="rtl"],
+#forward-button[buttondown="true"][chromedir="rtl"],
+#forward-button[open="true"][chromedir="rtl"] {
+  -moz-image-region: rect(46px, 34px, 69px, 0px);
+}
+
 #placesToolbar > toolbarbutton[type="menu"] {
   -moz-margin-start: 5px;
   -moz-padding-end: 10px;
-  background: url("chrome://browser/skin/places/menubutton-end.png") center right no-repeat;
+  background: url("chrome://browser/skin/places/menubutton-end.png") right center no-repeat;
 }
 #placesToolbar > toolbarbutton[type="menu"][open="true"] {
-  background: url("chrome://browser/skin/places/menubutton-end-pressed.png") center right no-repeat;
+  background: url("chrome://browser/skin/places/menubutton-end-pressed.png") right center no-repeat;
+}
+
+#placesToolbar[chromedir="rtl"] > toolbarbutton[type="menu"] {
+  background: url("chrome://browser/skin/places/menubutton-end-rtl.png") left center no-repeat;
+}
+#placesToolbar[chromedir="rtl"] > toolbarbutton[type="menu"][open="true"] {
+  background: url("chrome://browser/skin/places/menubutton-end-pressed-rtl.png") left center no-repeat;
 }
 
 #placesToolbar > toolbarbutton[type="menu"] > menupopup {
   -moz-margin-start: 2px;
   margin-top: -4px;
 }
 
 #placesToolbar > toolbarbutton[type="menu"] > .toolbarbutton-icon {
-  background: url("chrome://browser/skin/places/menubutton-start.png") center left no-repeat;
-  padding: 3px 4px 4px 10px;
+  background: url("chrome://browser/skin/places/menubutton-start.png") left center no-repeat;
+  padding: 3px 0px 4px 0px;
+  -moz-padding-start: 10px;
+  -moz-padding-end: 4px;
   height: 23px;
 }
 #placesToolbar > toolbarbutton[type="menu"][open="true"] > .toolbarbutton-icon {
-  background: url("chrome://browser/skin/places/menubutton-start-pressed.png") center left no-repeat;
+  background: url("chrome://browser/skin/places/menubutton-start-pressed.png") left center no-repeat;
+}
+
+#placesToolbar[chromedir="rtl"] > toolbarbutton[type="menu"] > .toolbarbutton-icon {
+  background: url("chrome://browser/skin/places/menubutton-start-rtl.png") right center no-repeat;
+}
+#placesToolbar[chromedir="rtl"] > toolbarbutton[type="menu"][open="true"] > .toolbarbutton-icon {
+  background: url("chrome://browser/skin/places/menubutton-start-pressed-rtl.png") right center no-repeat;
 }
 
 #placesToolbar > toolbarbutton[type="menu"] > .toolbarbutton-text {
   display:  none;
 }
 
 #placesToolbar > toolbarbutton[type="menu"] > .toolbarbutton-menu-dropmarker {
   list-style-image: url("chrome://browser/skin/places/folderDropArrow.png");
@@ -215,17 +285,19 @@
 }
 
 #placeContent treechildren::-moz-tree-cell(separator) {
   border-color: transparent;
 }
 
 /* Search Bar */
 #searchbar {
-  margin: 6px -4px 0px 2px;
+  margin-top: 6px;
+  -moz-margin-start: 2px;
+  -moz-margin-end: -4px;
 }
 
 .textbox-input-closebutton {
   -moz-appearance: none;
   margin: -2px 0;
   -moz-margin-end: -2px;
   min-width: 0;
   background-color: transparent;
--- a/browser/themes/pinstripe/browser/places/places.css
+++ b/browser/themes/pinstripe/browser/places/places.css
@@ -11,101 +11,93 @@
   border: none !important;
 }
 
 #bookmarksPanel, 
 #history-panel,
 #bookmarksPanel > hbox,
 #history-panel > hbox {
   -moz-appearance: none !important;
-  background-color: #d6dde5 !important;
+  background-color: #d4dde5 !important;
   border-top: none !important;
 }
 
-#bookmarks-view,
-#historyTree,
-#historyTree treechildren::-moz-tree-row, 
-#bookmarks-view treechildren::-moz-tree-row {
+tree.sidebar-placesTree,
+tree.sidebar-placesTree treechildren::-moz-tree-row {
   background-color: transparent;
   border-color: transparent;
-  -moz-margin-end: 0;
+  padding-bottom: 1px;
   -moz-appearance: none;
   margin: 0;
   border: none;
 }
 
-#historyTree treechildren::-moz-tree-row, 
-#bookmarks-view treechildren::-moz-tree-row {
-  padding-bottom: 1px;
+#bookmarks-view treechildren::-moz-tree-row(selected), 
+#historyTree treechildren::-moz-tree-row(selected) {  
+  background-color: #6f81a9;
+  background-image: url("chrome://browser/skin/places/selected-gradient.png");
+  background-repeat: repeat-x;
+  background-position: bottom left;
+  border-top: 1px solid #979797;
 }
 
-#historyTree treechildren::-moz-tree-row(selected), 
-#bookmarks-view treechildren::-moz-tree-row(selected) {  
-  background-color: -moz-mac-secondaryhighlight !important;
-  background-image: url("chrome://browser/skin/places/selected-gradient.png");
-  background-repeat: repeat-x;
-  background-position: center left;
-}
-
-#historyTree treechildren::-moz-tree-separator,
-#bookmarks-view treechildren::-moz-tree-separator {
+tree.sidebar-placesTree treechildren::-moz-tree-separator {
   border-top: 1px solid #505d6d;
   margin: 0 10px;
 }
 
-
-#historyTree treechildren::-moz-tree-row(selected,focus),
 #bookmarks-view treechildren::-moz-tree-row(selected,focus),
-#placesList treechildren::-moz-tree-row(selected,focus) {  
+#historyTree treechildren::-moz-tree-row(selected,focus) {  
   background-image: url("chrome://browser/skin/places/selected-focused-gradient.png");
-  background-color: Highlight !important;
-  color: HighlightText !important;
-  border-top: 1px solid Highlight;
+  background-color: #8a8a8a !important;
+  border-top: 1px solid #91a0c0;
 }
 
-#historyTree treechildren::-moz-tree-cell-text(selected,focus), 
-#bookmarks-view treechildren::-moz-tree-cell-text(selected,focus),
-#placesList treechildren::-moz-tree-cell-text(selected,focus) {  
+tree.sidebar-placesTree treechildren::-moz-tree-cell-text(selected) {  
   font-weight: bold !important;
-  color: HighlightText !important;
+  color: #ffffff !important;
 }
 
 #bookmarksPanel > hbox > label,
 #history-panel > hbox > label {
   display: none;
 }
 
 #viewButton {
   -moz-appearance: none;
-  margin: 0 2px !important;
-  padding: 2px 0 2px 7px !important;
-  background: url("chrome://global/skin/icons/round-button-leftcap.png") no-repeat center left !important;
-  border: none;
-}
-
-#viewButton .button-text {
-  margin: 0 !important;
-  padding: 2px 18px 0 1px !important;
-  background: url("chrome://global/skin/icons/round-button-dropmarker.png") no-repeat center right !important;
-  height: 19px;
+  border: 1px solid #7F7F7F;
+  -moz-border-radius: 10px;
+  background: url("chrome://global/skin/icons/white-gray-gradient.gif") #A09E9D repeat-x top center;
+  min-width: 0px;
+  min-height: 0px;
+  -moz-padding-start: 5px;
+  -moz-padding-end: 0px;
+  padding-top: 1px;
+  padding-bottom: 1px;
 }
 
 #viewButton .button-menu-dropmarker {
-  display: none;
+  list-style-image: url("chrome://global/skin/icons/menulist-dropmarker.png");
+}
+
+#viewButton:focus {
+  outline: 2px solid #4A8BC7;
+  outline-offset: -2px;
+  -moz-outline-radius: 10px;
 }
 
 page > hbox {
- margin: 0 4px 6px 4px;
+  margin: 0 4px 6px 4px;
 }
 
 /* Trees */
 
 treechildren::-moz-tree-image(title) {
   list-style-image: url("chrome://mozapps/skin/places/defaultFavicon.png");
-  padding-right: 2px;
+  -moz-padding-end: 2px;
   margin: 0px 2px;
   width: 16px;
   height: 16px;
 }
 
 treechildren::-moz-tree-image(title, livemarkItem) {
   list-style-image: url("chrome://browser/skin/places/livemarkItem.png");
 }
@@ -122,28 +114,36 @@ treechildren::-moz-tree-image(title, sep
   height: 0 !important;
   margin: 0;
 }
 
 treechildren::-moz-tree-row(session-start) {
   border-top:1px dotted ThreeDShadow;
 }
 
+treechildren::-moz-tree-image(container, OrganizerQuery_AllBookmarks) {
+  list-style-image: url("chrome://browser/skin/places/allBookmarks.png");
+}
+
 treechildren::-moz-tree-image(container, livemark) {
   list-style-image: url("chrome://browser/skin/page-livemarks.png");
 }
 
 treechildren::-moz-tree-image(container, OrganizerQuery_BookmarksToolbar) {
   list-style-image: url("chrome://browser/skin/places/bookmarksToolbar.png");
 }
 
 treechildren::-moz-tree-image(container, OrganizerQuery_BookmarksMenu) {
   list-style-image: url("chrome://browser/skin/places/bookmarksMenu.png");
 }
 
+treechildren::-moz-tree-image(container, OrganizerQuery_UnfiledBookmarks) {
+  list-style-image: url("chrome://browser/skin/places/unfiledBookmarks.png");
+}
+
 /* query-nodes should be styled even if they're not expandable */
 treechildren::-moz-tree-image(query) {
   list-style-image: url("chrome://browser/skin/places/query.png");
 }
 
 treechildren::-moz-tree-image(title, query, tagContainer) {
   list-style-image: url("chrome://mozapps/skin/places/tagContainerIcon.png");
 }
deleted file mode 100755
index 05f64eae6c452bbdda1aa4efb4d178314fbe7532..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
GIT binary patch
literal 0
Hc$@<O00001
index c88e818b15157b2409241a8473046512ed2a6290..aae9962b370c46c7fa0af4b9ff0e0f0c93f8e5f3
GIT binary patch
literal 369
zc%17D@N?(olHy`uVBq!ia0vp^0zfRx!2~45SfyqFDb50q$YKTtZeb8+WSBKa0w~Cm
z?&#~tz_78e=6B#^AYUQbBgmJ5p-Pp3p`n?9;pcxK{gQ#9)PRBERRRNp70@8@{7Lag
z-GFMJd%8G=RNU&Bd^-1t0S{|C!*6{h*(H-qR0@kGa73Sbr(`2xcJRK<rJrB_9^S^F
z*ia|f!C|VzVESA~PO+cGiN|W;s;~f;kZ>o?fCCJsWlLr5KCDkW7r86Vwe!aj=9Ey~
z{j81R7ysVm6tsNyW|p}{%>1|OzlDe8$~hk?Fg`wOii2Xo*Qiau*xw~tWSAV6xVU7x
zSRSuj(u$QkJl}6E`@+>UuYZTtoz?Sp9$yfdr;xL5_lD)GS}mimCELIMCYCb)QlROt
zS#ovVGR6C%uFXDd@%_WBFB9iv8DHPkbpH9Q<es<-U(;(h+-GDca5%cX(ZTg6(8~;-
Lu6{1-oD!M<{V|S3
index 9d86128c98a360648488cc08aab8b1cf61553856..77ca950268e2b220b83787a2e1235449fd14fd8b
GIT binary patch
literal 258
zc%17D@N?(olHy`uVBq!ia0vp^{6H+s!2~1^EI9BNNO2Z;L>4nJa0`PlBg3pY5<o$g
zbVpxD28NA&HNOKV1NjQc9znhg3{|QO3=Pc;3_t$^>6Z))r3MTPuM!v-tY$DUi04m=
zKk5clTjA;A7*cU-OOPYq0R@h1;s5`o>y~e7J~rc6V|%Z#;@S&Qvm_bH)nC42aB~iN
z#^AM9^m?e+d#<}tzj^Og^G`Whv*^CpjNqjfsx4P#WP1L{O=roM4|yl8{AEYVeK`%i
z-5ob3|0z#NpEUXDdw0u|fA={~_9;@5n#ah%w0zmw4U6ur2D*X4)78&qol`;+08;W<
AiU0rr
index 548331feda4beb216a4fe194676ba915040ceb17..802830167e39c4f86eeda231f46c3b19d6ad65cb
GIT binary patch
literal 3071
zc$@+M3jp+qP)<h;3K|Lk000e1NJLTq000L7000pP1^@s65#6>`00009a7bBm000XU
z000XU0RWnu7ytkYO=&|zP*7-ZbZ>KLZ*U+<Lqi~Na&Km7Y-Iodc-oy)cUY767Czti
zWe-+D*zmEJY=HnGBdiF>5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1<Rh~l6qxMx9%
zh+2zPTsZC@+^4mDdhhM+``7!t=bY#K&Uw!dfDsZVk>;Xm069{HJUZAPk55R%$-RIA
z6-eL&AQ0xu!e<4=008g<d3b(wus{3(uWtYX0C3eVBofEr|AV?vCRYF;kpSQ#66Xs6
zkWv81E>y@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e
zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5
z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7}
z<RYAxn<EoQ=L1a63;+Nc`O(4tI6si*=H%h#X6J10^u?n7Yw&L(J|Xen{=AF=1OO0D
z&+pn_<>l4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf
zVxhe-<BLB3GvROGi+=X}Kpy_vdhh^onn0PYz@vlxaba$Du2PQY%LGC(ZujRS{>O!X
z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4
ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR
z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#<bWIsp%|7y8C1YJ*aWq(0~(+a
zn&A+%!7(@u=im}tf$MM=24EPT!Wg`U2?RmN2oqr;I*1Wsj@Tm32p5@-1R`NbG?IX%
zAnAw{Q6k02a-;&OLTZs+NF(wsauhj@TtNDe+sGg?iu{VaM=_LvvQY!n0(C&Ss2>`N
z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd
zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS=
zB9o|3v?Y2H`NVi)I<b&gMyw|8As!)~C0-{E6JL`^Bo4`v<W349C6F>n3rTB8+ej^>
zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv
zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&G<BLK&6^fO%cL!%)zF%0XKD9nFX?o;
z3EhJpMVHW*(rf4k>F4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^
zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN
zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS
zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^#<Ae=IoX^_&LPeX&U-BbEk7->
z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ib<gTP(_`y-
z=?V49^$zLX(MR=d^rQ6`>hIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyE<W%V@fh
z#Au_@NuwvYChmu4<285}K4z?M9Ad0A-euftJYiyKGTWrYq{ZaEDb18?nr6Duw9|CV
z%*ZU<tk|r{?2b9roNJz8zS+Fn{EdaBMV!S-i#ChLmfDtl%LSHAmiMffRz6mFR`pib
ztVz~f>n!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>><a9f>;~;Q
z_F?uV_HFjh9n2gO9o9Q^JA86<b<B2baJ=iJ;WWdk#HqvSS7#e%p>v({H5aB!kjoO6
zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a
zam?eLr<<q3^N{B+UUpttUi-ZsPqUmRp4KpJ$lJtQ;JwRxU^+fMW%|zP13tz+0-t)H
zhrXu1BHul}BYxI?nSKZSp8Grc%l(h|zu|fE7V%C6U;)7a<pI5c8iBI|YXctynFOT=
zH3f|Yy9O@|J{3X?2@P2va+7bs7xEkVV>8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT
zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^H<bj`5GFjJZ48
zYPNEAXRK;$Qfy=Fo4A0us<?r8hxkSDmlAXnBnj<_<iyy-J&EIU0_SX+Go0j_RF-sO
zuI1dKxfkZ?&dZ*6JXtkakbF3Wm=c$=KjniULQpRlPvxg>O&t^Rgqwv=MZThqqEWH8
zxJo>d=ABlR_Bh=;eM9<ahEGOy#xn^|QY(3p8Irjp^G#Mn*50ho*>Tw|Ih34~oTE|=
zX_mAr*D$vzw@+p(E0Yc6dFE}(8<U61_v9n_bMxC3Y=unGqqI`4P!1MMFQ_YcTNqn-
zxJbQ7TGTV&X8!8=BMX8Se7%scP`I$O*tmFE@!%rAMY|Rwi&GbOE-_tFx@351@X~$D
zXv?ye{ZQgqQdRP5dED}jQiIZ^r9&%%S2UHWl*!9(uJl^DV-;bQWL58Km(^QVe<~N1
zU#xJfsIK_1M!4qUS59BmeD!&4+S=Yqx61A7Nb98QZmjoNzpqNYYC+Y|hVTuo8}W_h
z8((co-gKdQYW0rIw9U%R12tha?OV*YtlRRTHly}>oqt`+R{gE3x4zjX+Sb3_cYE^=
zgB=w+-tUy`ytONMS8KgRef4hA?t<Nq8e$u|zvh13xJP$S#h#CQrF#eVMeplsbZ>0j
zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3?
zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j<Jb;mW2SDv7qC_VA{<bspqr(~y|
zolZYJ)S29Q_e}hmYh6)Yy=Ozuo<A3K?o78|_sR3#=Z{_Rym0g)_hQ>6w@a-(u02P7
zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W
z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU
zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R
za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)}
z^ZO;zpECde00d`2O+f$vv5tKEQIh}w03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(`
z>R<o>I+y?e7jKeZ#YO-C0USw0K~#9!T+uyl6JZpE;ph8|BFqGA3M-<EZJCNauz)nl
z0#Fp{WD!%jgB{FZi9QXjm%s`vdo}=yoxf4gWF|$1$jRx>JvzF&@9iMs6TaaD2Uy@w
z2XF9wI-S0r&1QRp!QgH_pMS=$fDibwTCI{^uXn%MY&xUS=oZHjJE*fPYmy`>vn*?H
zkDdR`BYZ`I8)P_-xWsQ<7DaKp?ITM3MKv4_uTizWj7`(j?Z9HO=y_DtG)*0CX)>8?
zw*9kktN9p)5F++pH1|UYF`|ppG)=3bD0b5{t#F3!6QSjDx!dpetMz*QYCIm_JR_9n
zd7UIlndf=^lF%W(;5{zz6X&5tHo`}|#Z~*VWoXao;$6GqUyHDO7yz;{X3fKES=Rsn
N002ovPDHLkV1hEV+gJbq
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..cf97942445c8413dfe678f9fca452a187e65f047
GIT binary patch
literal 719
zc$@*x0x<oFP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!aY;l$RCwB)QcY+RK^T3z*=9H0C5@#>
zZ2jqv+6t+tpfm}J6oRx>krEUFB6v}$g2jv8JbLsZ=+UDh?XgOsic-<~L)AmINMlRW
z*u>~&w_DQg%&s$A43?xG{NOR)%)IyZ+iyO>bzM}8b5}pcA^2{28<$?ce|ztEHJ*qK
z!f~C;(Vp#*BYis}Jl}{{)gX1{{jr87t%J%+$P(nxW|s4_YFy#ZFPt8jhzk&sEDdu+
z``Y(eP(qZrP@R%KF*-fT&cAcGa34Lqb7;J5(0}ozDgYyildWCBO`1>eE8<+v!P2q|
zN&wjhY-<ofS4vJHw?yBJr(dzp_6*&PS>+1)FN{v@iXYhRtJOruVLc#gVqO8Y0kZ1C
z=CCZs%zT(0x|i5f?!myd8){JgTr|^PkxA=VDmt)Cmw~Ou+G-jO@(Vf?k_P8;P1%4_
znmpXqSl8Pf7JtsXg`T6xX9#k01lbuIi?alUc>>3r#EC>$<Xo=t49*V>sx~3Xcs$k|
ztR*Pw2J*A3So~(AkR>p6$||C8sEc2QfuKskxm?4wA|*5#i$-_Whw7A}k>?O31*TUr
z!H>M*!8B~>%t-Pp7=HW$oXa&_D-q_D=sw!)mwdQ6nDQDLJvD_@yNH1L$=e&nPSn)Y
z<H>Mu`Te<OZ0u=LvWcykHWag9lrP)bUt>ONKo+tP*!xOK36ahgWD4QGXGq~%UI7Ar
zY29>PO2zPC>>ZX@LI~8V2sbw2_`$Xc9@lyXioa&v#r}>KXqtvEISYYcJ=z;&Yz@g3
zW4vZya|5a3va@vy1O6FY%X&a?CUy21{xg0HFaRNoH{9>^D9iu=002ovPDHLkV1g`=
BQ04#t
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..ed43bc0fd127b55d24582a2c627f6ecece93bf64
GIT binary patch
literal 637
zc$@)!0)qXCP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00009a7bBm000XU
z000XU0RWnu7ytkO1ZP1_K>z^5vDcJm+5i9mAY({UO#lFGm;eBCjsO7q%m4s|>;M34
zR{#Lx)c^o7H2?q?+R=OJwEzGC^GQTORCwByk~@eKQ51&1$<D*qYzRz|Srx=e?Cr#2
z#V$z7AP6>g8o?|CgdnV73ai+vfptX?#43<d$W|hjHe#`cgzSc0h`|XHCv%U5JJ(58
zMGssKoX7wF=bUSZ2(4D@=3p>*I2w&SQf3$iBEn)Uo6YX|zJIS!C_F(#XfzsOzu%WQ
zj{oWPdOc}08li|_0)%1c<nwu=DAG)C+S|N+w-3P8)jU@&odiHc@O_^!3?1MnfKmz(
zK`EsHGD}Ceed9de0>#r;U$}hH*SU0UCOu!0P)bo)^*DRV;^XHK`>3nqX%ekKMCO_k
zRgX8e>3qoW;Eu;+GWpeHnz~Mppp+sAf;om~ufKBZ`U+=O3}&+#i)s%6Bt;^EVHmu4
zbea>#mWbn6pEU7vJ4i-|<CxiOrv0_MpV)f8hf<0-j&(e#*9siRnU2R}$MZaPcXu_*
z*2{C4ritsiSeB*bkH=#i$C+w?TrRiXY&P#tr&GIFEaJK@wr%6OE;~CrwA*cZy`Bbk
z9Ot{|dFuei!CV$_9LUsawf$<fO1Imk)9DZd!O*g-dbwPFp4y=T0uhPKgFpm~l6`D$
zZW08+(6;S*rBZ1E6JY)f>3@*6<>lpJ6h-y5wY9%C9=c~@rBdm_?|}c*Yb*l%ul*PR
XP61Ytb*=@P00000NkvXXu0mjf5r-Oc
index 51cb504e09b4a6d2a54b0c3834ed5ed5431ece70..b4c1ca7d02bda83358e519639632ab55fafd6077
GIT binary patch
literal 795
zc$@(n1LXXPP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!y-7qtRCwBqlV40y0Tjj$a76;FYoNj=
z!2%I=12OW?bZfPy*@L3iw6~UQy}0EA8Y|W+HFetRCAF<t*4nJ*YRy%Xq;wkALUJh@
z2r8L~h+fd)6%a~$=>g1d`?mA&?e}obcOVoBK{z+J+%9`sQEqN*ZYhYA*)|a(C>RXV
za|lEp`u^pE`ddwsNV%|pwtF3ovZS<Tr&tQY1!rRX+*rr;oAtCk0qPnWCCBN4^Cy<j
z1RR*ik<)Tu4r^tU4YztvfFz-)DWNcjrC*u_k7?285Q{f?F<c~dQmas1QRnUoxT?NZ
zmJ#zh8*`7r1a}MOGZ|Wg&;LPmwgSLtV~Q|StFq=YEi9m>Rz=Iph*t4<F{po_5)iv)
z+3s-EkD90Ny3*3H)Z{GS7<ID!{<Z3V0mz?o-PxH!o6@WdzJ#>#3)rz+Fl{EgsZ8n_
zDwPT^^ai}DyaHzGz9A{BF{QFr#fyuJTi*fXX7c3@yN#DFIs_=$3+q-Z^qJTok&5|j
zR(v&%<M37g9UL4P@CB*x#xR8vQJW$=j{!j<eHOvyrvPvd<QL_GZ{`))tn)xkECZRC
z1O7k|=(GdCWkiFnzZZ_l3xLC{0(5N!oOUBn=s`gGKTQTIE9Ie($3n3GFu*(G!3}nD
zlw<IV2?&J0E81?{oR2^n<x1G;Vkx5SdkfB0N?_G8>qS@`!Bk3$K;Ri~he?YEGkbFs
z%8Tlra5ukE*U&B$iWCc)XUNLLFhm_K93&p*u|;m@PguYLpto~I?sv5HM5?XTVrlKH
zKDUU@>7Z1EBFRDfDdNCKE%Lm(GoUe0Mocb773`v}N1c}CsMy{tF*`txCIRl<1fpjR
z$26aVtvZA2<m0Y~7Wj`a5?$Ht;tY}Ykpts?bO?%zOLBL6*Kn50OA9VtD0xy;B&Yor
ZU;u{MV3Zvrsb2s9002ovPDHLkV1nrhZFv9y
--- a/browser/themes/pinstripe/browser/preferences/applications.css
+++ b/browser/themes/pinstripe/browser/preferences/applications.css
@@ -58,22 +58,22 @@ richlistitem label {
 }
 
 richlistitem {
   min-height: 22px;
 }
 
 richlistitem[appHandlerIcon="ask"],
 menuitem[appHandlerIcon="ask"] {
-  list-style-image: url("chrome://browser/skin/preferences/application.png");
+  list-style-image: url("chrome://browser/skin/preferences/alwaysAsk.png");
 }
 
 richlistitem[appHandlerIcon="save"],
 menuitem[appHandlerIcon="save"] {
-  list-style-image: url("chrome://browser/skin/preferences/application.png");
+  list-style-image: url("chrome://browser/skin/preferences/saveFile.png");
 }
 
 richlistitem[appHandlerIcon="feed"],
 menuitem[appHandlerIcon="feed"] {
   list-style-image: url("chrome://browser/skin/page-livemarks.png");
 }
 
 richlistitem[appHandlerIcon="plugin"],
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..7177f8df3001e84c14d6e86e5bf327bb510f3cd1
GIT binary patch
literal 570
zc$@(`0>%A_P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUz+(|@1RCwB)lfQ4;P!Pwz2LAv|OGP50
zcwmZJRe~W4OWQx8OCn`R{*A1eqC|?6`~my}RrXFD+Nl#umv%^1Awg)VGGM?MFgAAX
zp8aSj3{6k^TKCR(pLg&4tN?gPdXE3I?<zeijYi|LSS*$wQ`zhF+O=Bkm;u@Od|vK$
zyN}vhRaM?F%Ye*uIz^|`K^TVrS`5pw*v&A&2!a6pejmY$y_MwlosWwHYbjQ**HJ2!
z*fm543>XXs`1CEk0vOsMTCLVnjB~kW(Sh&#@H`KdyK~HDvlYnI)gNEibrcE(aE<Ih
z0IJoh2+}}BqGI~+<6RJ?LTD3H_~~>Snx-uQ^rRgz9M*U|Ms72NH<`o$mB6D6a=Bc*
zjv{#kT>ui=!fe}y@kGHGwph>gDIz=G`7hI#I*{f#4z>$AykIESLDt30F+rDYEkKh1
z9^}S;4_odC11`+OM+oT%siPa*;s(VJuV5I41ZXLqSF_pt$q?6d@$saMXXewj7pQ$<
ziX6`68m?97aX@-2FBysZw61@jR{HJ`ZZxD>I5^pP_m$$m_&4C@lKl5#qEd<FNpDDJ
z1c^?69P*2^B$k(7K}va0Nc|`eA-km4$@(+t3uz<)((VNq0K^{Rm*!FE?*IS*07*qo
IM6N<$g1FxUSO5S3
index 20707c04e785924018e91e82ac8be1cf2f443bc6..69e59c589cbfa1114c41e366aa11cc05274923bb
GIT binary patch
literal 7071
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
--- a/browser/themes/pinstripe/browser/searchbar.css
+++ b/browser/themes/pinstripe/browser/searchbar.css
@@ -41,25 +41,48 @@
   min-width: 44px;
   border: 0;
   -moz-box-align: center;
   margin: 0;
   -moz-margin-start: -44px;
   padding: 0;
 }
 
+.searchbar-engine-button[chromedir="rtl"] {
+  background-image: url("chrome://browser/skin/urlbar/startcap-rtl.png");
+}
+
 .searchbar-textbox[focused="true"] > .searchbar-engine-button {
   background-image: url("chrome://browser/skin/urlbar/startcap-focused.png");
 }
 
-.searchbar-engine-button:active,
+.searchbar-textbox[focused="true"] > .searchbar-engine-button[chromedir="rtl"] {
+  background-image: url("chrome://browser/skin/urlbar/startcap-focused-rtl.png");
+}
+
+.searchbar-engine-button:hover:active,
 .searchbar-engine-button[open="true"] {
   background-image: url("chrome://browser/skin/urlbar/startcap-active.png") !important;
 }
 
+.searchbar-engine-button:hover:active[chromedir="rtl"],
+.searchbar-engine-button[open="true"][chromedir="rtl"] {
+  background-image: url("chrome://browser/skin/urlbar/startcap-active-rtl.png") !important;
+}
+
+.searchbar-textbox[focused="true"] > .searchbar-engine-button:active,
+.searchbar-textbox[focused="true"] > .searchbar-engine-button[open="true"] {
+  background-image: url("chrome://browser/skin/urlbar/startcap-active-focused.png") !important;
+}
+
+.searchbar-textbox[focused="true"] > .searchbar-engine-button[chromedir="rtl"]:active,
+.searchbar-textbox[focused="true"] > .searchbar-engine-button[open="true"][chromedir="rtl"] {
+  background-image: url("chrome://browser/skin/urlbar/startcap-active-focused-rtl.png") !important;
+}
+
 .searchbar-engine-button > .button-box {
   -moz-appearance: none;
   margin-bottom: 1px;
   padding: 0;
   -moz-padding-end: 3px;
   border: 0;
 }
 
@@ -70,23 +93,30 @@
 .searchbar-dropmarker-image {
   list-style-image: url("chrome://global/skin/arrow/arrow-dn.png");
   -moz-margin-start: 2px;
 }
 
 .search-go-container {
   -moz-box-align: center;
   background: url("chrome://browser/skin/urlbar/endcap.png") no-repeat right top;
-  padding-right: 4px;
+  -moz-padding-end: 4px;
+}
+
+.search-go-container[chromedir="rtl"] {
+  background-image: url("chrome://browser/skin/urlbar/endcap-rtl.png");
 }
 
 .searchbar-textbox[focused="true"] > .search-go-container {
   background-image: url("chrome://browser/skin/urlbar/endcap-focused.png");
 }
 
+.searchbar-textbox[focused="true"] > .search-go-container[chromedir="rtl"] {
+  background: url("chrome://browser/skin/urlbar/endcap-focused-rtl.png") no-repeat left top;
+}
 
 #searchbar[empty="true"] .search-go-button {
   visibility: hidden;
 }
 
 .search-go-button {
   padding: 1px;
   list-style-image: url("chrome://browser/skin/Search.png");
index f9092b6b8da624bc10e074eb8a676a4ef1ea0b8b..99a8637788949083a9fb0bccb1e97a8b96d59ea6
GIT binary patch
literal 132
zc%17D@N?(olHy`uVBq!ia0vp^k|4~%1SGw?g-k%464!{5;QX|b^2DN42FH~Aq*MjZ
z+{E<Mpwz^a%EFVWHb6yco-U3d6}OUnW`CaF=+)5KSe0;PP2gs?vr?wnAVynvBm*NG
Z!<<!2#<m$cSAaSgJYD@<);T3K0RYKIC&>T+
new file mode 100755
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..fa42ddc05cc7037a207518aaaa20a9264885d489
GIT binary patch
literal 712
zc$@*q0yq7MP)<h;3K|Lk000e1NJLTq000^Q000^Y1^@s6sY*=F0007yNkl<ZNXNC7
zOK;Oa5P)aBYv<wEuA7J55L6XtnzW<@1XKbET5;kf@lUw%KR9xR0~gNx0S<t8ohm>T
zDzxGewN+`Gw6VQjW`iSDh^XK=BYm2S<xexS_AC)Xz~AD|{nsic7pWjcB#-Eb1u=pR
zkQkWGA#;(;jYL_*99o0|C8|IQ&LC$+;GF=kGs#70g`Cq+2-<siKqm$T>9-CgQhE|u
zKpG<OPmAvELLh{FD$k%+pinX>xH<tvAwyLpC0BbAZ~qeS?lo*9qu!pOP%E2|%jF=I
zN`a<nC{p5yu$mI4W+Yh(4|Z$kCv)`1tPXCe0G4I-B#bejlma0!Dnf}C&7>hXZ*s3)
zU91}P=6oKC#Uhxd3972bdikFfxsj-fGilTuY*(`guIu*NB`ZiG`lrkV?oWk+Telix
z;5ZH#hLM=0FDf7<;diEH-858>7eLqbSOY&wBtOKw;GsER$@SVLhn{puk&TSu2gzp2
zM(=bDJNQAO6rzP;NL*VVNi}_u_>BOfu*7F`Sag7N6@`kewhyBUDf)@*FiQESRtK<!
zBNJ^(RF!q!e%^*42u3E_Kw3=8ti4&?hV_j-5dXOX{#CS&eD?(Vm{QgKN6)^Dq$(-;
zfh^-fTUOJ#5ARkt`IF~siO-6@fBJwwe(|j>*K`O9&1kgzYNcf!_yXoCCNP@JaX-9a
z>zI}pCD+o#ztG;>EthPQ-o0Lhdc{g)P4r_${#*ktz+>9iaXWu`YiDQX-ouyKi_;EV
znRQ^o&O&v<h$SV5Pgr!tl53+*71A`)Y!O0#dcV^ybiE+MgFxZ<s~YNZGU&R6tvrUp
uI#Y-n3P_{D9BM{KTp(p0M>26QkiP)vQs)Fa=c=m!0000<MNUMnLSTYK-a)Vc
new file mode 100755
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..e3cfd6ec35fbe10f7b5eece3faab10a55ea4f62f
GIT binary patch
literal 546
zc$@(u0^R+IP)<h;3K|Lk000e1NJLTq000^Q000^Y1^@s6sY*=F0005$Nkl<ZNXNaF
zze@s99Kao-h}?q4pt-5B{(^9E$UzVl6vQQxYfw<I#X%fI6ipEa1qVYE%y3RbaIi#D
z5gZIp@dxQm=lSc~d(q&fg4&%AKHQt`!+YOfPXGXdU9c0$S|W)=a-vi!?-UBfi(D>$
zN8bqo(0(IU3dCZu5DCmGm5MT(%@7C#ARdoHI-Q10CbKcCPI0PMtMddwKr9x6LZJY)
zS`8YF26Q?d==FLVvmlX5rDqzAreU|+A(zWRy<UgGU;s2t!+1P~*=z>eES5wh5*=!_
z+BdJ)3#C#Cy4@}?472smSBjA2!D_WarBeAh#bh%1w_rgelgW;CIvs@r*YEdXI-PPR
zVTtb1!f_!<5=NsDrxKRPXf(bi5(%Ivij$bE6d4SLFPz51;gE9)OQhH9$GA?oOn{{#
zlgY&3`0#OUERn@xX;-UN{zVRlBac&?_p1wqLXY8anEzxb7K>Lln~mlxPV+5jKN5+=
zqR}Y71&cxHed+OdKC{^@e=X>jJ=C?eNH)L&j?0rR8+=FQa+&b^{dJri&1RGPF)@b_
zO+_gh-Op~fn@%Q^fNQMXZgVsE{$3;EqSb2Mrc$Y=U@-XM^Z7`Z%LN#x)437rJe3X*
k=ZI^>4MMXGJA2oC1M$5);A0-ao&W#<07*qoM6N<$f+XGX>;M1&
new file mode 100755
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..764ac7165aeabfcfded429176675d4845631b6f0
GIT binary patch
literal 1424
zc$@){1#kL^P)<h;3K|Lk000e1NJLTq001li000^Y1^@s6%%{Gw000G7Nkl<ZSi{X&
zOHX7)6#nXV^Jrc(qoRumGYkezjAO=N+-SzQGcob8(4|`!v(UXi!ubUzn#{(9VN{G7
zN5Oyy10x6u%?QkNH?MB`P2cXm-S?K~)P3}AXd0XZu*ji`s=8HQo%+tB5O3d{`2=TM
zvLpqPBuRoKMzVeT<CiLpCJO>QamIjiB)S85+mXLW?hSu5ls^dg(`o7bCFSYEl_p?T
z0n4Z&*tUXTXpwsVAenc7$4J|j2Y6&;MCNiiB;pCg6A7%ZuOSkNz_P4U!P|Fv0KFIc
zVVxg9EYQbYCW0Mf2)5p%_5#Ti$tr2PssP7gF<CB`vA4H}Xf%eUrN5C#>>?aqMx|1L
zpdTq{A}QalsUfJLE<?h-6EzRMA^7InQ|)o}jez^LWtpU4llH1&VDMR#pBh4;XAsZ=
zD`@HX(E&Y1S`Mo<36!i>t6<RCY!>l&9E*#K*oegtiAGVOF>&A;J(OrPB${@(>?5!&
zrl}NDDwR+q;rjVk-$XQY6{5BCAzDJ;(DZSVUr5VwQi4rfuJ}Vm52D7x!UEA_9m!-8
z@&vfeYbwx0Jy&76uB)5o`h{2Cz&{;BK(PIHXu&%Sm}J5O>=u(w%pYxUZ)0kD3Y(i-
zDC+vj*&J=pdopO&ZlO>>KA%@Ic>R4u0#_{A+BNI|{`vr5E_`a%^y=y=?#|3$muR9i
z;@qteZd)quy57ZG$R4sQ#e22`scJYJ7JdtmcH1P-ObZ5^$z<_F?~~ZN^bX8m`y#Z~
z+cfjLhJd;7iJ8xnlau5%9zrjc>If+gW3Ovm;vjk5V|fPZfp#s`B5hmH3p&!76n1x$
z=zIAsL<9YX+0yknP5Aauz}(FzotvA(N;r&EI^`P_KL5brgi^ACAsjGLde9_%?n8Jd
zQcWLZ^~<s(48u?kfNiPw(lc1Q@H%9${i~*cxv(KHEoNtDm9~Ai{pdybE=nF;jnSAC
zNZ5{c39!@x*dF|V++6S{8Xjp1n2lj$V*}&k<8(c{|IwNbb9?oaXf&B^h>edu6ifEn
z4fe~w9toH~WN$G#I*Lp><E`lifZ8VPqJ+&`Dcq=GL#v-=8)2=nZ@^iZAhBy>upE6;
zS3jigV*=(dJuxvsS5#0N952$@8y^+v?8?!&3&U|bx=tFVh^v<jJm`CmsBuh6Z~)=R
z$9#TNzPb*uA^Yp*)D*=WW}`D(dvO2Uby!;4@r-V4Yz#X)I|{s=SJ<i&-VRP5>Nl?Q
z91b$it%?0qa$UJp4R&oAP7`R~^5f58tL<sCEJB|h>DHLP448egUk5greLCB3_0Hdl
z0%Cvu;UE+Z43+we<q}fK6bi*Mmbza<d#Lk4z9Mcl4IG?TFj&5p(<%&wmBap@_sxW^
zkah>983+wmE$io|p?Q9O9^vIMc@t50op8cxGe73HwWIu<RJ5@7G^-Udwj$E$G;*>F
z;r46j>FT<l*3B<z>Yawk4{MgA+uGV1G)<$8HQPJ*As-UyYUFlMABc1{k}F@q>qyGh
z$UY3RmqJlj?lUXSVYTf=ba%GpvIcI^S;jc|p`5rry=3E>o}N|~deScrH@##Eu#!}2
zSu_yAMWjRhINuq{?U~wW$*_KaoeM9ib5qEb9JiyCth13Ze>lp>6Mo;hxp0N_Qb8-y
z;xTLnFC!2L$leP*k)&>YUnp1qg#E7j&3#3ScW>UUK|6y-sGtl@BYL!HmhA58$OM8d
z;Y8jTF{;)q4KI_#NW0#XU)=a&F^)4Vnh<*dO%$u9wVBv6W{Cn3G=1j(fBun@CfR}W
ej}*UF{pDW`GwyZm^MX780000<MNUMnLSTX=ld`A)
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..3ecc366b0271558b0c25a997d5198fca1c131bd9
GIT binary patch
literal 1459
zc$@*V1x)&hP)<h;3K|Lk000e1NJLTq001li000^Y1^@s6%%{Gw00009a7bBm000XU
z000XU0RWnu7ytkO1ZP1_K>z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA
zFaQARU;qF*m;eA5Z<1fdMgRZ>DM>^@RCwCVm|JfXM;L~mZ)W!3^{x-{Ar6fLDS{A^
zG%ZwA>J9BpTdAtbujub7xBVZLs;alWKx%~4CY2BphlUgi!K4W!V7xoM*j;Ds#86QI
z9m(Fq%<jDNeee6u%nB3A*Wdo)03BckXaNnN3{-iG#aL?(-Mn;pH3H57iy7!n1~>pJ
zZxyhJ6r-xLh%N#vzy}QWml!-djdBgzfao`mvVc+Y2w%FqYJii#N5C?J{y7GF7XdvJ
zZ=kks@L=;68@F$~5sXSHW@l%an|qgbt3|8bqEe|Kh3L)$7lCD-?|nuRpDyoQ$NOuQ
z8`rPlI0kJrN@*l}Ot9GeDu0u;Sjp?b+U$tspqUIStq5Yl3h5Dx<2cOEpP|)ivaoQL
zZg++-4DmcK<?yA;t8L)@6zu+2w!e40yZ;+&KYx$!`_$_-eBZ}$9F*255sFkA7Fz&*
z_;R#@!<80rjA6Fh<(-)smX?-ix7$>!)fB8Tm`j&eeP9__CK-H)jgOytzRs^#exz2d
z5{4l`5DXtsN+FW~|7WTSjYfmHxjB}Xmua<98aR$K?9TvgU;$W=!P5(~@lAfe@)PxX
zohXVZm&^FRk1+<V^=ko|mr@WgeQcVQl@&Uj4q+Ig^{B{A<_aB>{%J*`;?1j6DphK=
zDp3?s@_n>1DN`lSq-5#N{>36TKV})1gVakw?KXQxuvmMb1recEtFd@?k*TREq9{Ts
zb=cN`CeYS#|8zI`gN;A$&}=rSRci$00Ie0EvR-WgEQQVwlhoRx7!R}Ajxjwb`Lvo%
zrl+R~!|+J3Ip7A+NW{2$cY|`dOc+K4<p9@pQA)rTyA<q*{0|f_g&|qV0Ncz-1d5YX
znz4iHD2!;eT1V1g9B>t=SY>$9yGuC;h9cA2aG0_~{~1a9D~YV|xaa#cn@v2=d!bGY
z;HE!e|H)$-jRwB&<9Xg#S`K1dq{LB#nCxehi`JSj3^B&Mcxo;VR~v)ty11@eu#$qS
z=O`>78QdbcylH+y*3Jqt)^KE~S(uG6FLfaU^nt!uOSM`@D}^>Xb%vtS3kp9_|BGh2
zjLrXIro*QE?)UpIU;F@n13N;DTWMnZI|zbSYDkG8?uneugvP7$+FHx@_BP#a_oaXz
z0uLQY;%B94?d?4xNi0efTB&TMl&hSP)TXMJ0<#%$gpq*)VzWEhyHfq8L$%g&|Neaj
zgTYH(VhgzMy8gyyeB#7HaGSy4ISC1#aZ|u@l&ErkkDEuqMaEsFkN^=W*j#$I*Xz;i
z_2_gu6S-`FJHWmDSYOrJIlfamE^7ZK{bzkV*TcN#>3EzL>+9<@n@t?YnF#nEus%qV
zPE-z-Htfk$L9)y4?k>g{f}n&pPPXV7pVub)S4y83x3h)1oK{;8wpd$RV`XLK$k|R`
z`{BFz%opG60YN{uN!54e?<Q@pH0Y7+Jwj=P7KPS26{09mphO}0$}Kyl%g*dv7wSci
ztn$*f3Q@VZ^LM28wzjr-`t&L7cKZ;Yi#v`5;8WjKpNBg6Wc$f}rM`cQSvCnvE<q6B
zIL^>3UpGyZQiNg1g$oy$nwlE+Cu6(hkAcOqXWnZB>Wc@Dc4p%^mScn4)NK!kK8|7-
zt=GGa6UyZ>Q54bXbm(@wRIAm42xn1tvgPI(*QoQY$o(=NJfGivyjOdcC`k}3>aA@;
zrAUcM+kD?uv#roQZ?rlVC$^MW8@|nL{*izS(at}lOab-(!-tfA1^~Amz;Yi>c(VWi
N002ovPDHLkV1g&Bw37e;
new file mode 100755
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..dc433797a2047246752fad3b2669b21b638dbf8c
GIT binary patch
literal 1238
zc$@*&1S$K8P)<h;3K|Lk000e1NJLTq001li000^Y1^@s6%%{Gw000D?Nkl<ZSi{v=
z&r2jn6n-^5<EWz;MKK~M=>MRQgEt{pA%X<YiTM|joD=dF<mg4vh=*LfNDetIi`fN<
zn%xai(V2kGs5|QXp6RZ9?^X9q_xw(RF4j_8wcXWKU%mIe@4Z>2wWjCPLeB~<np#_1
z)45!Z3WWkClgTFs5RFE2p-||)r>E!Fa5((!&d$zBTfn=!yZZkAo>IvaB~vLnJ3FO|
ziwklb=ShKEA&VkC5j`+4um|v;Z*OnkHU*qWBy_P@q)aA5@pyvXy!nGtscU-o?k$ze
zWm5Q~6&8Z(X2e8cBGlL9MS!d$-z)O1HA~HV`9_iVwd2@iS8SYBkvXhPeSLk|!NI{#
zwzjr@ZvYHXx>BhSgTA}F6IvV{9ns&31YN}ARK`11|5XhoHG8GnK5!r7G7fj!7Q-+l
z^XNSCa)7pnhKA-hH#c7g0Bct!c;F9(9-zkI;UVa8MmIM%^cYIQdkSb!&odau5__6Q
z8yA6<v!KYw8yg!L@4IjnIa~+s(D3juMIsSGAW)%L5Ci40!DBTB&EOa`tV+GTz4Y+#
zAU&VY$M9?i%RX(eu)p!G+0rK`C-mE^S9A@Uh(%oAD&@_!aF^UIsvDVCW)R+U9B3KI
z<*@QcfHrd*pqUm7Hl4l$Mbm6VJu)&fy}rI44_G)L&af_AK@$@bG&VX43uh^pF9Zmw
zTCvv)F4ah0?^@LWt%5e+g~Jww;aye?tsPLb#GF>Z^EDQI)e^ACjAaSvv9U3Fe|szZ
zuAQuW`e5iJf<Q(Uw5t#vG)+GFP}LjB)CU=VSvc41TdtHriGrL9x_s6VFoS@o(<m%_
zetwRP!hUc6k5uJzly2M&&Xu$K`}-+|&Or#kA2kGBv&NdpR%UB+ApW~(Y9)I?N;F&S
zIF<=Q0A`~heypwl^GzAFEMyBS|MvbvSfZ5StyW$*8)(60CJ1Yjx)<)wpc5+=ckleJ
z0COvqO0t0!Hh{a!bmrhrna&KZ#XYfdMaMz_THuH4UArs5yh%EpmXRa)zw*@+z^3dE
ztf|SWX8>-oSS-^OVCGTM)nLA<sVj`BRP_Y+83hjxD2I!zDr>5qN}iN!GtmrMOO3(r
zCMPFfbOg*GZy{&g4VNQT8yGNkHmi?%_uoPRRbPL&2vw6n<r2Xzz*uET*U@ONo}Zup
zp(9|n?(y+))w)m7_$)rRR4j2?meOE$cJ_E-Vc}(4z|0}8*sf7#T2?6FPIA*~J00`K
zS|`2JLJM=IZC3;+r)Ksnil5Tz>gtyq`z--;W;r-GpwrV+iBzRRMjiZ+TV%Q#xn0x^
znXX21(F)!NDY$|<xD5Aa^EpbtPfOgutIqQB@;4|CUN)6AcE{D#747fuOLlqeUmRX}
z$rNBCaY@OgEEio+h2qlE()V+7b3d}f1EPZ4XfE92DAq48FU1|%Y?dDT*R)p)3s=3u
z9hqlpYU=IE%F1`+<KsVLS*9WT?(OXfNWLL{F40pr)C^_Rz=i4Q=|2}27k`?WnfV2e
z4>|6eN;_`)1%23dgPuj_diO8%V%uEw-2NlwAC$xF6Gg3p*#H0l07*qoM6N<$f=c#J
Aw*UYD
new file mode 100755
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..782f049c65b911802b576b06e31a7d98764b7ced
GIT binary patch
literal 1383
zc$@)e1(^DYP)<h;3K|Lk000e1NJLTq001li000^Y1^@s6%%{Gw000FpNkl<ZSi{Yj
z%WqRh6vltYkHmSfpcPdSOQ0)61Vkzle*%>dEQ(Zi{RfEDWxJ}nZx-#Qs?-gwRCNJK
z38=Ib93_wkkE9NSBsi2jzz-m?li0EE<8*Q7+SiF4LZy<9WXX4C?#y@2`Of)fuAJ(=
z^Eo@)a=;q!637AzK&q#!)2cUFPIccI++o0ZpkM%}%<lnkucxbXWi#NfN3`;!`u5?f
zqqvTu&Ki;C$AqFYz<prc0AJ|o>U1lB`}+DcpU;!cWGNI2oH%iU504)w8j1YpSY1_~
zWQ!~=t#fN;iIL<IZfUhhw6&j5H~}PpVIbMl)oBCB!oq@<N+niTSDBw*U~=*yyLZ3C
z*|Q(h-roLJojsFUqx;(5ET&&5;id%PrhWrD-qY1N1t6AXscqYoN+oi+9GOgpiHQk{
zg#w?PJ4bu_E)Wnrx+owjC{_B1h+&h0NPu2KWu}PNC;lSdI+$?*RG@6R{51TW-r*-m
zxOs|j^mkwYxY5(qnGsd9l`58Hk<aJJX0s#`2`tOv%$d`K!;v6dq&^wVwg#6pByD9L
zHE?~Wc>jCHvRsHKm1xT?By<zF0Ss0E`^|A2R##U^rBV!!40G_{2Xq`hT-hkNUCq`N
zHz_K{sErfU7$hL-ft4D|%pCDv{pR{2LsO}BjkaDffO|Iq25?=Md_GSynIthW!AB=g
z5{)()1U?0{5?$jS14wJ01+D4!3<%I;gY$#SEEgO;`{fC?>)b=aSAi>a0Rz~!O(v7!
z_U+poIB<Y{`}TQ^^jzbGTumTFYc~w=S^`LYT2;NOs7i(2pqt3?-C&l{$1n13q~&Me
zazntX%F4<LV`F0!3I#ekI^I0(C1^xVJQ~c|+(ze${4nrbH4?kHC18M3sYEiFWO{m<
zBS(&!%r@@TYRXWl2mX*r&S3UwH4A({`a~Bziq%jCMHDh?E?@nYfl%ZRpl?gSj^nVn
zxX94Z5JwGQ8l;~W+G=7U9x&OErRtYRlU%g}wG{+l-FErn>N14F{jUY=x-O|yih+Rv
z4jnr5hLQ{Q>Yw@^-B8?UP%PJN<;y?UK(+~ZZf=gdcki-)|NbE5{(X~R39PqTwNHR-
z0lpnBq1&ZIB9UNjZjQZs-w(K{zS4;)AD$XkeOXmH`~nPO=n|9;sfvyoV;;N^ex0(^
z4K;5s>EiJ?ptQEN*Mv?QaiD@{bC@e-EkFqkyjOY0Hw@wOY?S0nyHJ+qA75M6QmGXE
z{r$YRXOHJaAFODlObL}Dx<N#$Q5W@Ub@l8Z0kB5weU%JQW4SC`m}(;$;^Dd@7q=7+
z%d&{a<E$0dXo<Dda?7WHXf=dXOPx6_RYShPfS}UVh@fwf>A$wHi>Em(JJj6ks@~jE
zn#ae-nVFe+>qksKRDUhEGMb5MbF6i|P<H!(>va!5mSr(EHpcAiEU{S3OOASUrBT`1
z(A~IVZ5mR*Rbgy-7m1~ITAJip!RC@G{nR^NrqgLgMn)(Wi$o$3M8upQOmc5q>HHAC
ziPFJ~aub8E-es-iXlpF?tl-G7?dWv_b`n4`nT+OgIp*i*NvG3@gb0U2TRQT!N+;AL
z7c^G7S5`ACc7&(JHWrGlG*PzN+uA1bC3moFyOVhLx?BD&T26P5RynZ)mr%haglaUT
z<yb71QVCD5tlKvoSMLLl@Gha1E5CgD{rF>cv`IcB6l_=1E9>?n+tEei)q9uDAFFfC
p|NneQSpw3S4=I<<AFKNz<sVW}P=tY;V#fdg002ovPDHLkV1l=Lnd|@n
new file mode 100755
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..834bb6efaab095bad7a2d638df9ea924230f5dec
GIT binary patch
literal 1271
zc$@+E1PJ?yP)<h;3K|Lk000e1NJLTq001li000^Y1^@s6%%{Gw000EONkl<ZSi{v=
z-AiLf6hD(hP1R^EepE$@zHZrl=;AIFd@gLe;8MDx@2!2+x3<qM!u}89gP>TY2);-k
z>PyKA1)GnWN|F^+M6)$9YGQ7(nVvJ5xpyWXnq8>H!6b8M=HB_8-<<P1=gK(eaF?3v
zPNBudrlzKNCX<1yt1CD;Ik|NJO-)T1m&=uIY;63^<MI5kva%AZwoZ8hTVG%2>2w+r
zCke=8GcYnT0*@X)h6a!4KL=YZ79kpq!v6j~Y;JCX-|y$m&CMGKeqwof`LrtFgM$N}
z%jMwW;sS3xfSsMcprhjhc>eq=Xl-r1RkkCM2+YpT(n(+Xe7;YYmX-n)fb;o0FBA$u
zpwG_Egj<9{A;_YeOiWH9XdkYkztRo#%{W~-!O9q3b2*EBxdY9By^_XhjH!o|o&$1T
z^zh5dSuj684{K{{Z`#}2A1y8}{$T*-vPVA%9)x=&5)cdq#r3miW8ijsbhyB(@}stu
zxL7S7opoTqRiu>qtE;PkU@!5MKU`Q?xKMySI!ov~=nfsw(9i%F2=H?2C2ap0fCu;Q
z+Z*ZI8C%;lAp|CkDqp~*L4w^9SY}uz*Wlk5PoF|88fyuKLqFrhXEsh=MTjXFi0N1?
z20?U>&!0R&BN`<F<pSJ3T}h7w#Eom=68b_Wzm$8Fk*_}{nM}gW%nWa9Yx`(!Zf@UT
z*brxAmjbT0w-@&I_TcdF5c>Q3OCDLGrgY?79wg)DhMHe94XJV~hgCF&jFR}poVM17
z@$>NECoCF`eTSFd)&xw=?RE>$U0q#pbaVvW-QDk?^12bmdDK`_+3wx@7}ewNFK+})
zETE`EXJ;qu?(TwR<z-|`dbtxaVC#XJlEJA*A9tca@u(bK+{?M?GBl1ueSLj^D)zp@
zb!~RQ%p+K~EDQ4Z0j9^78Gfasbpnfa6Hv;clq-pp!DUXE3PR26Z6agbbpa-pJu>52
zdF$=mp>l6q##ouTH5X$eX(jip3$Or+%+d|?tGV2}H>OKqwWm2_)JrB)$g=lMU4Y52
zQmK^C<-E>tjZDX+e3Y`G!=;nyKnbw8X1pwQFemA7X$%E?OH0c|U4SWNQ>rFE%2Ci6
zS*eB(*mx?B*_JiUCAfB<eUCB>`y{I<slVR{nAkl%Jr&~JjnY;?m#|fmaa*Ps*dkh%
zM4VF>wFl!`?Z7m!GTEyvskz4ad75$nA0Ho|y%8|68xDuT`<@r_*f)Gjxc~vTRnCz*
zSuHt7US@!v>5L?(43gu4KmY~@2g9SIqyB3FQ);G)jTk0bD+s{1*wBLbt2kAU*7WrB
zH%O3GQT*sKvc0_x@pzn~Q?SdbxhvF?t+L_Tid8YiC0Va<Z>-ac=nCIsdEhrRL@zIo
zkB?z%YYVd3tk7R3sxIbKS9NDP`{8eq=|B`*k;o41n;RP&`)PQ1_yzVa6+Xc*)xK1?
z(`yO=X3QmYmlhN`uS(>NnT~-GTmZE*9lhz$`{e7yYe=1?_`twG1eyJ@r>Ex^1=h&E
z8yg!KjpslwqIe8&+YR60@>qvoA;8^<$%&<*p`l-KIEY}Y1`fHz*YN+gfAB+0QoS3+
hPwv`8dDs4t@-HyBui{X%J2n6S002ovPDHLkV1hW$YYG4W
index 29c62941b4932f0ccdf1c782b57a9e97268d67fc..1f76506488a6613146fc335961b739efc66eca10
GIT binary patch
literal 922
zc%17D@N?(olHy`uVBq!ia0vp^0zhoQ!3-qz8@W<}6lZ})WHFHT0Ash4*>)hovI56+
zm}-WTPMwJi42<OgJ|V9E!62?-RsD<|)7PE=vc-xv`S$J4SaSA1ap3%|XV)LRdhq=H
z`5RBK-+TGs**i=%PhWq0`R?<(Pv1c7mmgog{rv9Zw+C;&JbnM|_2(b=Uw?W0?%S(R
zKOVjL^6dS$H=ln%blGLhbm=>o(Y88g@#&_yd)u~MUwH7=#?ucDU4LG?@bI*aXI3A&
z!5=U|IC+U@=@RdzEh&B5(`FrE5KLeYPh*hJVNfk$(5qGTYEboSQ48)=5AWBAoo16d
z!zOc%ZQcUAqNVl~s~JpN8LYb*oF+54&s0yEqmi~iBYT-f-fFv=4fYLN>|1x*ckE^G
znWIs()}ebpFz^^Sq8a#;8N{<06iOI0Y8eb#87z7k>?TXQ)XI1^$@q21hV;utPLq$D
zBcHNRK4Y1F{8WRKS%#VOjq;Zom#j9a++bR_)wF4+)LoCMK+{r6g8YIR7@2^82MBn@
zBqXJE_4F;R9G#q<on2g9+~X7S3koZMpt7>ErlzL0wzi?6p}F-O3|zf>^$i&OL<PT)
z!0+F`_wne0;+`?d+ubGQ(5)SuKsKkRi(`mJaB>0zvzwb6o5+C^jcNx}HO_P^9m$`$
z=6Jh~(v*P73(hvH97vXkmtB8?_vwifr%p-U+!1zE)4?T0D^Vd#L@9ugSy8D#chj+N
zdQT62x?^B0SsBuNs!8NQ4O>{}flCgeD%p`Nx=bbkb53b0^u8+bdB2GH%!dSZ3AtyU
zyH-3D3>I44DkR5t@#w`B4-?<Uh_G_^J4tl3w7E0#{7`OhpBubS-mBurv!6=s?K}L}
z^&3svdZsDu-m8p<imsIv8w7dyFT2QI`OtBq^MVT}|KAU93a)(EP;`c?xz$~br^V^8
zGBewr35O3~Q@kszYGZTBX2N0TGqzV_IZsBZISQMbZuu}l#ma_Zo{xQTsPB6}U<fHy
zg+!DD=ckpFCl&#-Q^l=fpOgMxp&!op`uOvD`TDG6VbGt$dSxBYN?%ZN@O1TaS?83{
F1OUUW!m0oO
index 44f0b702d9ac415275966a05d417ae3a51615218..22ccc7b86ddd5d4185e110b78d12423ecbdc7544
GIT binary patch
literal 924
zc%17D@N?(olHy`uVBq!ia0vp^0zhoQ!3-qz8@W<}6lZ})WHFHT0Ash4*>)hovI56+
zm}-WTPMwJi42<OgJ|V9E!62?-RsD<|)7PE=vc-xv`S$J4SaSA1ap3%|XV)LRdhq=H
z`5RBK-+TGs**i=%PhWq0`R?<(Pv1c7mmgog{rv9Zw+C;&JbnM|_2(b=Uw?W0?%S(R
zKOVjL^6dS$H=ln%blGLhbm=>o(Y88g@#&_yd)u~MUwH7=#?ucDU4LG?@bI*aXI3A&
z!5=U|IC+U@=@RdzEh&B5(`FrE5KLeYPh*hJVNfk$(5qGTYEboSQ48)=5AWBAoo16d
z!zOc%ZQcUAqNVl~s~JpN8LYb*oF+54&s0yEqmi~iBYT-f-fFv=4fYLN>|1x*ckE^G
znWIs()}ebpFz^^Sq8a#;8N{<06iOI0Y8eb#87z7k>?TXQ)XI1^$@q21hV;utPLq$D
zBcHNRK4Y1F{8WRKS%#VOjq;Zom#j9a++bR_)wF4+)LoCMK+{r6g8YIR7@2^82MBn@
zBqXJE_4F;R9G#q<on2g9+~X7S3koZMpt7>ErlzL0wzi?6p}F-O3|zf>^$i&OL<PT)
z!0+F`_wne0;+`?d+ubGQ(5)SuKsL9hi(`n!#N>nq1~)f1Hjx7-8kG*5(AGK8dgl3M
z?`==qg&th=Tj43-^kJvy<JFIOD+Ov=cW8x6D_cfJN_H&B$Wi4v(ZK5Bq?N#+bU;@=
z=3P?04)=8?6O|P@9#h#*rrKyVE^QQAbAs<G#|D8E$HHA(7}QtYzhK+VX>hoCu0zEO
zwV8`s+QWQ2dAurI#NDM8+TBAYZZ<8da1lGiU}E!!JApw=uI{H_*@}k`XFu<jk~?L$
z)9#VR!-em1)lT$0D$&epVV7?FaKY2Wm6QK$#~h9+A2`nQU3cf}-=O2J{p173*%ro(
zii*?&3_3P8mt}JT4<A-O%WP^h<xcS3qXCDU&z^Oez<KoLq$BO@3|BAN7oU@nmj{NC
zQdLMqNpOBzNqJ%sFhf<`D)u?)?-lytjIWPBua~dSN)`tFIjmRK@vQU(B?wPfKbLh*
G2~7agfxkuo
index 8218df8ed7b13d7fdc07146dbcba2a401b3a74a4..40b7cf3742c956e766e80dd3256125a57e92aa0d
GIT binary patch
literal 652
zc%17D@N?(olHy`uVBq!ia0vp^0zhoQ!3HEH;(vt$DYhhUcNYdQ`02d69!PN(ctjQh
zX%8@VJDF_<5-cllOo!=bIO)`x$iTq(($mE;#N+teD;u+e14WL1e81C^&D+|f$<^`l
zA4aZgZYGl-FBamwwf~^0=*CDHqa8~;GS6Jw>%4G*0FUHcCa%s4{}{J%ZZSRL_b~Up
z-1Gnq-^t~*9s)H5%d5{<?yr7O=MviaX{IN8*y+{RkG=K2!t&9uejamQ!`Z!$?pZI_
zw$a}|W9y5BuFrLUow95ct!7baG*)<Oa^%jj&2<hFcsQ~c9sgbab=>iV;<_B0x6Ieo
zdDrdx7wHza(E0`2<gVjt3_GHCeHY%rc%@-(^QC|5F7xnt{pME7t5VA=Qp>ZmP-lqH
zvY)|N$20j$L&@$NpPW@0GQ^|zb<W(<Idfj;%q*bL^!w>4S0Y2co|<~I#=<x+K6LT^
z*3R{Xzj!ybzL{ckLTuA>ITLMPbACBdIsc2zPq+HqPns+iz4^wU?Q7RRwB50Po5-o=
z_t9@J%FW^PTU=f6`RQ72xj8xVyDJMe)ymv$zTIj)-R4D@)k9k#v9ELX7X#0&(Jz0j
zyx#pzZpl5Jf8QAd{Qs?E4_6cLe|BWD@y91?i<v*Bh*_{aV=U)4__LFJlhWVBLf#YE
zv4^V-bmqNiyjHq}{g2Wv_DNH@<uZcH=Snf0nEYAI_U|I@cf2+`pER18>|wtZFrOt;
z=!-|d)wW-ggv<F)eCDtCAbsL*+KK<_-0y&~uT&KhQ4*Y=R#Ki=l*+(RajV$pq`z0_
khcmuD{=8nkJ}X%m^yjc%S;w=|7nG<xUHx3vIVCg!01llO-2eap
index a94657c6655a1c642ea19fee4b5e5a6b1a7ad3e7..851ae1615dd175ade57fd2b2ac0caa9b7c4b5b17
GIT binary patch
literal 665
zc$@*50%rY*P)<h;3K|Lk000e1NJLTq000mG001xu1^@s67+?BV00006VoOIv00000
z008+zyMF)x010qNS#tmY07w7;07w8v$!k6U000Sga6xAP000mG001xm$wG-?0005@
zNkl<ZNXO;W&1w^26vpxYIg@|}T{K98f~L6u1#2UkmCGR#30iRB-fddNW|Kv?DI$#l
z7hXd_AsD)J6;NpWx`5Qik2=_F4B5^5x)HH5oy;VZ3cfI#Ih<$CoMC=qt!0{{Va3Jz
z;_-0-GVKJ3F%#5)dq8%hy743SD;Vsu!Oj@$_RadO6Y&GYWQ~}C5tBAzKE@7szVdA7
z<ClH>mXDt<t=;$@y2Rqz^(Y(NYp=XG6}ZIyupglx|G)`?&iT~~w}CrA3GhCwzR&zw
z5B-b)n$X9<Ea1JXz0LexKQLgvekld?oTM`gct9@j0YNtx9_FQ6-5RN*O?A{$M|0ik
z)+q2v*4of3|LAfmtUmR>pi^}pdO)F4IARY9mBMciI*rbB9$cwhJpvD2ufG}^Oxa*s
z29sV`%7=S!acMr12XEH9!5-`mcO&%2^x*W}Gy6RF`t-}>9(;cCDY^$|E9X)`Pm>zo
zgY5k|={I&pn$V^u)YF9K`i-5*Jjgzn`>#C^R}SBUaTC<Um4Uc&a?%|v12e$3xDww3
zlq|{sC5;l_1KYMkpbWHtv=k-W11U-*4{X~8d%#|V_P8EMLH2oIJ2n$9;F^5nmk0Kx
zjqZWCk^*`hBfbYx60w_hM3N>+Jd)(>rk%_K%KYOV`~(<eUrK`Gtg8S303v!+Saefw
zW^{L9a%BJjc-nJJ$xljE@XSq2PYp^<OsNC_FPsI`t_-P700000NkvXXu0mjfZ-65>
index fcd938a233c71e3922ab1ff19dba82908859e4b8..f9c6ef2fd719e875bafdc75db59173e5df2dbf52
GIT binary patch
literal 615
zc%17D@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!WQl7;NpOBzNqJ&XDuZK6ep0G}
zXKrG8YEWuoN@d~6R2v2cMzsK+5ZC|z|F7re-7X;TSy_4F#EC%m0b$|S3JP1r#ewY8
zqM{FFWiu*)G7~3HnK`Stc<#JKE6dAQt=RyS-K3zfW#0jy-tEg*?pd*FZ&eLY@1dI7
z!-o$a_whY(;?&7gXHUt=ojQFEXwK=hjB|}G=dN76($sogQu4;B^LL)Tx%2$(-P0HD
z1HsGpK#Lw}Xgq%N@o8ScQy_Tv=@}5b`}Ew<@cG+M&p&(yy6VlF*Ka?6eYa@QyD#70
zM@7A#IPv}a_aDCg_!trO@$<)z-+q2tvIOXnFLricCQbVC<;zzcov&ZN{`mF#r;5r?
zef^&&PW=4&^H*Hluit-v{r&s<#EIWP@aNy}zkmPy{__Wn|NH}@e}8}f{`>zwnE4MF
zM4#(C<^zM3rzFTPn8C)zCT;ib-ETg9`XnvB@g-1vzo(01h=e5TK|^n+KnaEmi|fMN
z1cZ2<0s<~xn6=w}!AARA0$W`8*6K>->I#X9xJdn~y7xQpISYe>3qM1cW>xr;Z<|Vu
zrTFiipD)g6u&OO{y+90efloxao@D%m!uE#D%NJZ-BZ|Z1riAJpeiiEBHS^5tRSJIc
z&J(A%Z+^e^?!UhY+J}~}*R)^ye_HWeWs_Hvf2}N<k}mCQ#W9t0cKzGiYE_oCEqnO8
xtCru6`tP-|it%k;Q)Sl{hA6??r>C5<|H>YoK0WmM44_vSJYD@<);T3K0RZn3MPL8`
index aa8ce6e88a88276f2d05665c58765fcda6d4942a..d09e82b6c6138941336e5039b2561be1ab5e891f
GIT binary patch
literal 641
zc$@)&0)G98P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0000PbVXQnQ*UN;
zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!BS}O-RCwB?Q%z_SK@|RGcas#gwS}lf
z2q*+eEr@u@!Rk%Wf+8XmJ$RASQcy2eyhzbQLGU6X+7wSBdennIc=4h_!B!e-5d~{P
zib&(y#Lae--JS8xOkxg2j5zS-{mi`Yz3&afgb?_j#kOS%!-nZj8b-aXguw5H6<Lw`
z%wjf?Wy#T;u%aQh?%}WtiMA`R<UJ4oGroT+!ueLi$7eoD??3+*x%#(TYwY76Mlh92
zqx@xFQ|LMHRMbif|I9rW-wFH0A!bG0CA_{rh@4$(E3s_#Vslhr<m?mWTXIXK`j8?m
zUnJx}NDt!&0)ezctpiSHA(ZXQOO0hU4f&d(V4!>8oGTzsj`3~=8?v_$nV$o5tKjR_
z!|U6H{obY)fKDO+Sw#YcvI-fqGl*Rt1HLZ7Z&s>0u-?AGRdXYpWOBejqjj#N1tM*6
z=LYJ<0z5*rPoG2n<pT2eo}+Z|7~*wX#>W)^=S;O5Hb5kx<m}DO!lmR&<~(rwI?Trp
zQR_{>9?GaVNm@~8Cbp<(?Uu`WKBq>p+Sv_r;u1`n;_BcK+#rxgoq7h1B-y^~Mopaj
zYODi-ICm8D2#=hAN6BL1BG~dW91ZYOQ$Uk9)7^00O}&3Ns^mC#Z=zlxki#e8WiG&*
zyr$wL(`?J$sXu<l9quBAiw_X@f2=txMS5g>AN$*Pe$>@9Kx&*MEji1!Nv27z9IaGd
b{SsgRWJpUVeM5OP00000NkvXXu0mjf_t_@n
index fd32d714d615b7d00f2454ca5a4f9133508cb090..a6e76921f2f5d4930a0d100b384093aefa793327
GIT binary patch
literal 131
zc%17D@N?(olHy`uVBq!ia0vp^+(0bA!2%?+w)lPpQj#UE5hcO-X(i=}MX3yqDfvmM
z3ZA)%>8U}fi7AzZCsS>Jic~#a9780+lYg9V;8ikA|94#J%z=hO%`00B60AO~K9*^w
dC6jiDq4(+9omK1E4S^aMJYD@<);T3K0RR`4DeC|L
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..7faca922a93288cb07b94f6af52c8595f84dd7fd
GIT binary patch
literal 685
zc%17D@N?(olHy`uVBq!ia0vp^20$#p!3-qR3wWA=6lZ})WHFHT0Ash4*>)hovI56+
zm}-XTtQB8@jN1V|A+G<40CsJ=?Yj15%srMd|76p~%T1fFT4&BlYhT+iZ@*>UBI|~2
zHm$o;yEdiGIFvr;SpCAo4QnqnZn$ijF(<WcZT;N+*7=KUN>|y`Y_MzEme#!~eZr3P
zse3bK9%@*0xN+Hu##LvU)?MInY;ez-k<_x5K`?>Acb>9WgJ$u1tJE2eJqLg;W#Eou
z5X)pxC}Gg5XE5zzu$d_1Rxjh*E*sJ>7d2fzX})~=QiH_lh8gpW@|PNyt}&_EY}&X(
zVbX&mK)q%qL4LsuJiG#8dS>P}UO^F;!QkrEtM_5x;lqcIkihfj&%c9#MfD>Gpb3mg
z-tI1D?)y6~0y)n-T^vI+g3n%X7dm9X!y0h&h=g(#zwVcNr!QDDzN=R{;nT7?<>Y<a
zUa?<HKTb;o88E0V`8eBA?{QbLXuQ|;&nq6km}A3h&F3H6+_BfIV`;e0j=q@B9Y3>M
zWNxJkZvH(XJ7Lui8J>BrM^8LkdU@xJTQg%9Z#+GL(c+tYzg^MWZ$IyR+qLiRwXOEe
z^K!rM;a+=r<<rvK%_}pFLwA(#{@!G#Se|3nZ~6AiuBh1M`_((ItZj<expYO!rv$~Q
zb`{HwTFTSHIkj}fA1gdR__67pg|wyI*%Ol&K7QD8FN@`m9m9P4gg?*fPfIf^i0ex)
zzXD1;N>w2dCBgY=CFO}lsSFGiw~BpE`g?_bIOFT%&+Fyuvyz2De-7)Fbv!G5L2>2j
L>gTe~DWM4fXc<D+
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..39d800e1ae0765f7a5153b3001ffb17062d8da66
GIT binary patch
literal 586
zc%17D@N?(olHy`uVBq!ia0vp^20$#p!3-qR3wWA=6lZ})WHFHT0Ash4*>)hovI56+
zm}-XTtQB8@jMV`?A+D!Ro%;X(KX1e)zOZ$IPP4>|UrFRYlL<ei)$?Av^NnHAH9o&(
ze8FpgvI1`N1iTjm)ktJN0;-WrzayP=6{u1s<^oWqPU}nE#wYqU_YKN#19b`5Pn8Wh
zYLtHoXfluuG#1DOnh6vE+Dx9AOg`sl0yV3Z1o;IsFf_wJHwIX@Zrw{T5TBPf52%AN
z$=lsUEsA5tRv_oFr;B5V#`&|8BKeyP1X{`kpH2#9och~9PN7}>|NrSX?XG;gYHl{!
zbK6XPSr5klGBY#-R$sX~OLm&~tJ9O-?qo?>@`pX6U%;>?LubP)8<+Lb8*2*<8PA+<
z3cqDr?(!$@`!k`BQm;SH;%Ldgu|KYQ<I835&7JZM{M4CU9(<^icS*43i5A>2`<Phc
z3t_>JE(QD@774MsN_;PZdnEj=xHT5{zv$<>{q!1RLDWxn8RJ(sC$g@ZQWdpvug8mg
z-!4o0-uh?Uo=f<f*GiO$0==VD6%tVroS#-wo>-L1z)*3k*yp6bSLlZ`zCQlEUcNpn
aSs3)^uwGfmv(gu+n!(f6&t;ucLK6US{OHX9
index 1939432b3a29b953270eb3b19eacba2ab3f8f18b..16a75cf29723e8eb699b8739a5081b6aed32f584
GIT binary patch
literal 1350
zc$|&XeNfV8902ggtj(NmtGVt{e3`4}93^RBX~t!~QJ5f_FBw->rbAE>GMy$tnoKLp
z)aFYy1yds>Ujkj4o-o7nP)x%>&mTDvLh&U<w@Vv&*PXY&_PP5$-{+qD-uHR#zW1<k
z$NeqMt<3=dmY4vaU}HuY<7+ch<9Z>{f@Msb69XcWjX7W~{3N799}h1k9=`CY8l3#O
zdJ%vPSR6LQ_rw3An_bY)8|D|6^>c>VcS{R~zyDM4er4tT>gvksDyMCb(=O*qAg<(1
zQ@5f?GTJPgXqKr(gX5y13Gs+dJTfI!sE44pW0Ny|N==_qD_7~{s%c0w3u)#CA)R7E
zKdze>b}K~vkW4w*B2l*VD8(|B_@!!KL^Cj|>F9%c<P)zTolpu1``)w+OtcKDjm<@J
zwfMDGtavLM)5)Nzfj9br@fm7<^9@cXN6_b=T8&}wu{YYW1znWef`q$m)Jh4psyC;)
zoBg;q_vuh>%dlT2pIqE_jn|8&a^r3^vp8aB5@&Z>V`NTKR6z&*z9^+eYD+A2Olb_x
z<b~eqAQ!hMK9qtzwEd@U24CU=Gz$b3fyn#dT&-tZi5IN~{R<z>5{9zs!><1kai=q)
z^aViB0WuwUGEl^PRCJ+x%w1e+6)wFN&v*<DW+5+>1zq6-Sj=wxRp0nB0E-3oB(O6H
zATpfs+0KNVpThFs#3Jwba&OB0Bh*Tt)JMRH{$oV`VOkZijt9sb;P;z7j_nwI?|bqi
zB<aEa^ahV>ZN{;KP2phkDe%=<uq_V2lE97>;G78%Spby_Jo5qij*WMkjqha`h6xM2
zW{c0WJ#ot}ve=$jW`Fj9eGJDT?xD-60+-W8h;t=-WAC}fSGp!Wbffe3rSg#(O-P0S
z#cDNgbZj(UR6z?qP5>sRpKsZ=-P#7`;0Q+`5GWMN+b;k^pin4@>(J@+OKX@+CY#O9
zT~k<CSiTOI%YC&D1VJj5O1(z2Mz7b;tuz10!oq^VU|3pbd3kx|6Q>W7bmMDHqL2Ce
zRPaZ~@{IcmjL+c^Cqki&5axro>X>tL6JXrkEgQ(m4P@n0vXXLMS?BVqt(-8btyxWY
zUfd>E*Z^0L?8ad@tkQJWJy#<dsvqjs=Jek}R@4?hs@&K9c<YIFoLv>u0x``@Y1lxv
zi1eDth6mY39GJ|9`){{~o+L!99{j))gu^`MJ-SMD<w>?|SX#bXniS+|mh~C0H4Kf<
zt{x-Ve$o22Czme|{g(Q=-R6v7#Wl8rn4#JWSW68(*~HerwyKGHzU!MwGD|k7U&kJq
zZgkn(xzw^PkoRnM$5bkw9o4EkI!qT>mFy~BzN77WCrSUc^Y?G0FTI3z+Q}_1<~(cC
zzeLl2*jN%L^I8ljs?W+$JR?oz!NV*SyyVzY_{q(Rrtvc<ZVY!<WWh7H>v1D#9tBZP
z!nf3!lZTs-<sq(NTX|;Wfy-#EV?E;#=B#ydS)K<WzF&Aivp{y>j9qkBIT;pd4jg&<
z!RVkTl&(J+(>Je#%uNeT#kYO^yDnNCv#MKC;w(hWe|Vc<!=#-M!|qtE$&siN;r*`9
z;k%*CB@;JR1_3TLsW*<!F)bvVMo5UErJSLj2jG$-87m1o8amq>hz+tl8i=jg2wciG
V4c1xI1b+Mg7~kVQb>63${{rlR%>@7e
index 77a6ec5ab7443bf314b49f5998bf2b535825f569..57ceb23173f980c1a4745ac5773e218b831c124b
GIT binary patch
literal 1367
zc$|&XYfutc6ae6B=16X4HI<bpj#-$NvbB(_yGt6HC@Q{IsWc?Rx2ZvDVIfq?ST5#+
zQVTQil@{xxuvXSu*hC#&&C-0VpkWk-NQSnXw&YARPQUh>IrrSTbLQMTbLO(}eg{oW
zwweF{OtD^=Kz&B&V=cr`zeXpoX6n<bWG})=efC-kPig#5pASzZyG4Jg28ZLS-vh7$
zhsOnbeENS>npw40r+q)Kp3!OE&CTjQd{yvqVd3NA;=<x0ueF~i8sJN1eCc@8lc6T*
zXmhWkxpz|BKOugmkc_A#BU9Z&lh0&t#$HYL3@dwvUk}Jt1M;^rrADTl>6fX76zU0;
zR`_H{{FkhE_*IK^xTRxQ(kqudmG_M(`$m;*J+h7g#dDcT*ew(GjJNbDTKXsT&BX(g
zk{7QfLvMP=RK2pPzHxQm#B?gVIgj^<cfaRgMm3f$z~zZ>1%D)6xqsqnYw9g&YGqeW
z^%GWoSMI%Mxh;d9=LCtI*6g}2bSghKubIh{*vIpBpKd&q({!Yujmj0L)pT1%l-i^<
z2A-=6$!|;Kh?1+ifg{B^{FlIVK0q^pe=#`31yQxGu_ZrJYS3o{Xr?fPc{lX(Lqg#r
zLTNidPyvz#T<NF?Hi}fVk9-xMQHiJ32GHxl4;PTpW&T+L0447ZIPZ~A2B0wj77w<k
z07RyJz(xC@9EZ?LyCRC+6Rx`_aSx>4!erbAcGR5&wi~4qY)t^j9N>8khG*H3Zfr}u
zjf^jMrZu=^x9Z0ZjKaXGaA0-}Y>EZY6kwYM?9Tzj1%S#0u55rVv~WLd;c*s<Wk7wi
zEdwrD{+w@hhy#l#gB>e}k$Kj!RZigrPQ+qFRLQq7H})jl+LKbXms<B-h5(t_grwg`
zF&~&T+BE7fs-Oh=1pxy?<8_<1Y_)(|+w4Lh5GWMN-O~#jl$4Z|ybP5}O<%%bFjy>B
z?vkRSqU+1>`TXb0$Ye6PTt2x(xkRm2&n%<;Vs>^`r_;?XGe1AS@P*wcDNX-c1Cq}{
zOod={?2>-ph{d=C+vOi45{V@Fx{c<F$Vd_$FlcL<+iNd`<i|mAcu`=?i{BdX+ntX(
z3Sv$LltT-9+A2yiH?M36Az0HSU6$7D8i=B^@~%-9g#h7Z!N>8noWjsIHz8IKbkv!K
zQr=;$Zmk`f=vz^6K4`oIK)7yA+HyF2Z`G?u-T{!`DWwkV=?C>2I-HKYg}ijV<9J@P
zMQjdblgPwk7r}n$WA4L{_3fMy7xNBov-gU2P8iY$8h1c))~tM$)xQqqJBkxh47B0*
z3ip37a<HV+vWtxH7U_@Y_(GqSs;S&{<dyH3`{3XExWE(hE@~G-Z3le@;dMC-&6cp>
z1|6fVAGHm|hUB{cxnu3s!8nM#legPA>+em52-xQCj!4D3&WY%$*yqM9L`u8y#-5#d
zrJ`Tm%pY@fo!o0M*F-`+D%jX=hXgZKIhE9Bc$=<CgeO!FxQ!3b?yB!)DCrnG&ij|)
zmrLp(qT`?baWS<OWz1cPqdLQENyyk}EA;xYiWA|Eu=Qhg@hNMZ3>(%w^*ibqCBkN#
znT!cXEm&q7BF)Fip7L)hW{mLjVgnF7of%ZRa8szCrOoN!FiOw~G9@iC^*8|OLnm=k
mfA0`YmoLuW)Y}(Vvl2L!8TH>;UE}-tM_@htFn8REjQ;?yCBka}
index 2b754194e44d8bcea249597a723acd26f7dfb2fe..f552fc89909541b962075433121f5fcdb825da71
GIT binary patch
literal 1433
zc$@*51!nq*P)<h;3K|Lk000e1NJLTq001xm000mO1^@s6P_F#300009a7bBm0000;
z0000;07l7cJ^%m!33hNnX8-^IFaQ7m5CB_hsPzB<00v@9M??Ss00000`9r&Z000E`
zNkl<ZNQs@6ZA?>V6vs*QlV6s(Wcqo@lsU=bM4j$BtDB3%iP)~zEsZg}1fdqTPD4;Z
z5D=N!9f}UB<;4t9#vGNQhy-~FZINwyi7(gJ=-3QVqA=7g-Rk}CoO|0PuGgmQ!!IY#
zea_RI-#zDP8v`JQ*<SR$K!}7y_=AzxLMSH^$r(<85DAI!2P3Z|o*x((P+71fT_8k4
zBK*O~Yax`Qhx#FTCCyesuIjpuBiBc9eB^I6@|vIXexxE&YzM7`TyXpXzPfN9Rd@eV
zBd_^6??)0?Xvnk@vN_*{w3^efw|LaZYktoA&lSiobqj>-?0ta4m!NS~!KFtEo;(Ex
zN1lN9IZv;ERJ%(c<iZof_`(N`pA`5;6^sXfzPsb#ea_Q6zi3&eK*;NgT9I7o(QtWi
zu)809=gy(>WG{H1^K=Dvl(mTaTW_K92GDd1YOKGaiQM}WkpEEN?70cf(<>k?yGGnr
zcM%m5@byKgQ5?`jh8_by(u*i`4}$ab&cFShT{Jpskx}b`?XX9UsZLGgWZyYd_x8h5
zPy^1>6)4=(Dm7mE9UTvVt}&>w<u~ByHBEv$(Qso7oTpbnx}#32@I64|Flh9k#+sYJ
z-t(FSccNSx0q5zRU;KWylu_A^yi;E6JmXd4<|Z%Ft2GJkL|Sb-I8Rq#r+CWWJ^mEu
zX<X<9s<HR6CZTqM#)<C)=jj!&amzRU=7#}v)3|u)0ml<#nuOX38YjLJoTqpGoew_q
z7j=5E&*y`a;JB;Hr%I@upmE|m!Fjp@#pP{M_q}oaLZ3!2P>n3Xo#1ieE;QU61Lx@#
zkeO32H4i<+Ra)F7t_CHz6Fg4bh4R4>aGu`zr7Im$QA;P9`uovFGtZGFxDz~1+=aBd
zc5t4qKuJZr=)Q1AEnW#qa3^@2_)f5Z%X1r?r&oY&YlG<Ok=5drpage<$BFL*3lyKc
z49?RPNZcZ3mmg7!r-IbTo#1ieJHY}UmmCJ?=?at{=nx3`=ixEk4jl51VXfm!ByHML
zuUCLQuTdc6t~(>T9Vj|A0>QEw^Vc|Z&%c|LBM|alcZY5VKG}5|)8dxnrPyWlT(GBl
zqslYC1G_6bt%Te%IE0@2kI+MR;@c~aP<3VqYwV@4m)0Ub%K=<F#;p2p5m`H$tb|<C
zcMa}eN8zSBabRE+1@uj@z-Wijz8k3~3%!|r%rob?h~>syD<M1fA4TyGXHiUdBE#8<
zwYd#c_!7)oYQcin;y{HntHK1BGUr)=5DAI!2cwv1D|6-99q{F@0GdC1u0(d>cLE_2
z65$U<ab8lkE5&F*+xj<vgLA_qLWL|hZxslUkO+S;ic@DAT=Qe&urvMz^lW<hUx_e*
zNaWfafr_jY+%6F!N<5GCNtVD?(+XU+y&5JF>2E@aH)qZcteo`<str@ZB%&%HCh?FV
zGjp5b&id$oNyN-6GOS*`L2;QDg-JvsFnOxcFk{ACCFAw!VG>aZXcASX9NXvN649QY
zS75RxtqYTgMu3?#HPJL@W?Yy=)B<V|tE$YQPPFEm@Tomdnb7(80&}Pnb*T$sHl`@i
z3aAn<CYnQ?u)j48vt#Eg6B5uQoW@O=+XCC|Ie{sb+Jp(8k1sT?S-l~UY_tX@E#93l
z5dr!}qH#(x#?F`<h>x8Um^|H_@DCtIC?_DuQ7`}i03v!+SaefwW^{L9a%BJjc-nJJ
n$xljE@XSq2PYp^<OsNC_FPsI`t_-P700000NkvXXu0mjf2#uTd
index ae40b6fb8db56aef1c1ac746b9670a1aa30f7e27..9eb0e259f23befe254f16d25a0c5e357d82b11ec
GIT binary patch
literal 1448
zc$@*K1y}lsP)<h;3K|Lk000e1NJLTq001xm000mO1^@s6P_F#300009a7bBm0000;
z0000;07l7cJ^%m!33hNnX8-^IFaQ7m5CB_hsPzB<00v@9M??Ss00000`9r&Z000FA
zNkl<ZNXMO4YfKbp6x~FB`KKu+)!$93)Jhr)O0{c6TN{hzwG`Jj#26k?SQgr?hM<Dr
zf<R5DC|X!uUMXTNwX75$Xpl$PU7)QF@i9K5r6oj(LZP<VcHPr^XGSUOK$iYEIrGhT
zZ}yx!XTKR80NqsBW&K`H5C|f{qcX4c)Ac<?QkqRq5C|f{qcX3b_4oDlO^NVTTl55h
zAQC((^IHG3X38JWEow?6NR{n3arEX0P7MDeGq3qR?@uQ_*>pIOAmyL9gfA~WK;_`y
zGV_}6^Zs-OmPe!~5~PGYJ5sC9!rbhXnb&-u_op<FSM1Oer2gT@c>DyoGVVj&b;1?M
zuys8I?{l42e~Q_zCrI6cV;J)S?hzk8|B2v+jDnLx;C-&s62D?ix}G3aoa#b%Z!Zpa
z^dQOZL{f!<jn)?MKG$g)*j?Hz*g9`R`qPK|e<`BtuK~wz0gZPQKG<>xT&LBanpG_n
zIQsD;86WsV5iRrq<s$IaWrcUvUIy1`8F=emvtZ1xMpai2PIdRnqEl>6q}4cKs#Dlt
zsR7q%8YtM;A~xI_RVGj3kKF*8e*?}x1lmUxK7QqQaGh5F7E7&ICJrl;C-M6)0@b&v
zX9yHUh0EO!!F5^&R=$@drq;A7lPB?8s+`!?=tAyk7xtV}IIW@;T&HPZk8s+<ndjK>
z<XL<dP4Xhei3TWh$Ji5aomT(W?O%I1^BfzVJc~a`#ycoZE-2je$P2F1GVu2MpL#g+
z92=fIi{IPs#sRk*Hn+moHW#=~(?DU_8L{E^s62g+3s0Oy|3aHIK$$!4kAds7`qQ)P
z#j^fkdHNg|o;ZuXPMd>JxM|=KxK7K!>h%^ewYF8BKF5V8&Y~N8dT@sR6U^4;HgKJ$
zfuizO!S1{(8{o`yY%Z(feJVRH-2>NY^_zAy2!*Gv$_6;|92=J^-lwv?Qv%m%8i?L5
zd{k5?8{o`yY<Ti4p7v$VDmx0UoA}`y-zcE#*o=Mk8!TVoh-*~y3H&@XisD1(CBnoh
zbn$=!x?UD%sn;8~!FqaF^9i)y8-_XexI}n%3OTE`%HZp{!E5U0g{;NLd(Ub<f&Gs2
zcqcYnBIx}ML=ljeX@R-8265(MRGu5ax7WteNty3_FplQ_0hCm<NrcJo0mVQR0V(lD
z7|bOIH<*!6C%~b;5jZIGj$cPm-F*X@yBj6Kr1yYoAc}zSS3|I9wGnfJS7Ad=1JZ15
zD5T66{%`@7gU7JekRuWN-UF(5G<^Vf&N}3pEr>Ri+DmO01cFHLsLbo<&wo`s4u|5*
zrq_{dFk)$JmOZQBJAoh)JSy}0xi|4s@tqkjVNci#SQZ?DpoJ0kwFx@}f=KYF%xk|l
z@qfhMEz+YrGZ{H1i#L$Z1%L5ZO|M`_{5oukH3ro0FTN^b4%RPv8E-6H?49m2W5R%+
zct_@kNKfDC(?uVN_&?(9@hcD$v)QLxY7MC0UwqnY^RZw-sBd<VAtF!%lf-A6J|pp!
z@iUnIB=L!{8%cbA!2SN>mn;nN%?gT+4@A6d;1hGMuO%;jV)9Xy2?2{IBp8x?wJFOd
zCLfkRqyELg%Y5cH=RKSJtQVsb0u?VCm}9Jo+-1)8W~A@*>Y{80I(c+65io0INo0~C
z(Hj@D*{cgHFwn^}qyE|R6C%Tcmw1C0gnDNO#Tw}3(aprbzp>vT7khj<$^ZZWB6?I<
zbW?9;ba!ELWdHzp+H*|FPfAtr%uP&B4N6T+sRRHooCVab45>{30000<MNUMnLSTaC
Cm8fR`
index c9d9e3bf59748644601c5f2b71f9d3bc84089610..26eed3bc74df8cc5a71b05869151155676d4db88
GIT binary patch
literal 71773
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
Jm62QIKLLBk5v2eC
index 79e113af753d7c9e848948e9726e3ab9ce8c36e3..5d2f99a879d5f1baf812dcd09b0c5c1cf843c66f
GIT binary patch
literal 28523
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
bKA<`FT&~2_^?rnW2~Si|N}zyG)BXPdv^dGa
index da65534fa8a48de6ded4ad43c59d3578da0e7807..423e5a1a49d6754b5fcf13cae7f438472c334d7e
GIT binary patch
literal 37477
zc$|#81yEZL)IHcjfl>;T;_gsNf#MFu2_Cd~afjj#1&TYtwLpNN!ChJ`xCXc4!QE}?
z@B99<vpcgho0;UjN!}!x$;mzE+<R`gijoZG8<ICKUcA5r$V#fdc=6Ku`TW~!)aOSo
zE<X0>1NwJaZRh8s?0<LZejAa0Pr7{<v-m$(zwqZhVR$}4HI|o=eDUAyMxw?4#f$h(
zfTWnZ$NYgW+E+Zl*(1rZh_JHok%G6el0{7FOXrwx-JgCzzV&`b9nv1cQ4y2E3xD%5
zk4W}oAd$+SOsQ9Ap1V^W%gb4=ZrXuG_Z_2mf6iJJl-)I4XXo5)O1!=BB*A^JmkQn4
zQi+?O<7q`Icqr{jiw(b{+qff<o+KN#F7?#Sc4F17l*CFtUl0aFxg=LC#@U>lUKHB!
zG?vY6?c%Jq&oDYRgu3Sq#t7q-&Im%atBu>3OwV^N_gYN2f;b|T$hF3wV%hJX0^)HQ
znWdGo%MijYvK4=Lc=m3!b)qXXKLgo~Pw7xkL#MLV{(d(b+UN)EZ;xmw82weASiyBU
zd!WccDBJLoKX{KUK5&_Yz>4rmV}qlrmw>xDwH7z0o3%bS)liBRGTM=0RE`9-r=)MS
z#<fo=FMU78E3G_DJtS95zGX|+T-PN;aJS6lE2#;j4DF+!Y9qezg6Njam18n%Ib}vV
z`1EPXn@HjUKDnIxeODZrvf$g;bK~Byh+F`?nCO#8Q?PfFrh7PsoOu7uiF3VRLFMA9
z2t_r65hz|o4!+Vi-b`nSS@sKH`U6uQ&!vSS{^oweM~YSbySiRGGbxI~p)gDDB0G<>
z(PF>EFXtyiymnpus!g)Z$?E!dSHR3p_lfsMvKARw&=K%^+?#A~=wul&40YG$sZcS4
ziN%ylQ*^XhBtwjtdgfe4RcEgT8GyWWcQtwjyT8G1uwA(PV|)CgnQE6J(?Zny@+NMw
z$g2DL1eakXyF69MB8C8n7QD=`B-(M@V%l<zK*?C$8}MfWh<csNzSx1%S*g-WRF9-_
zT5Qe})P<%+aRRLPi|Kt?qG0JNhl@=~FD6zx8Rj)DzGYD-EG?p<${{0zF}s^&Ng;zy
zHm8{54d=I*#Qh-y74ymSAp?ioPPME4zM03`19w@6p(|eEdr0P3=KT)@SF~qMZOe6O
zvzHA~tVDfZ2n5E0qt7?UX9dkq3w|!5x(K`5pAMv*v5k~g$W#anP$6q0_z)h`5xqFH
zZ!V)d^qf>_k}}RBKC*f-{@^-QNv^q>!||N&9pbTc6&Yp&2FhIIDJ#_%xbvdDp^9#;
z-H?eQV)wmBXW3}<Vk|dk$#84A14+V##Y@nCK!EMGJ#OiO4)|3uL7Ctghvh@(^I3oZ
znM)=XnTT}Jh?Lq;k33#4EUxct!}s{Z%`IBIDCOMxWju&m)@v`B2%krWlRvxYLSf!!
zCNnpQxzlPVL9O=tBYOJ!I|a^1zE7|9DS=PyJ(1Z$k6&UbafH2OU7ke7+gc>uQ(^W?
zG|fbJ0fmZZd9`6WD~1f=>DEIXa&|sYmA2?n&R4Gm@qx<eWtG{V4cOt+Zi5$lCtSlu
z=GS52mv7FfB|`2{Urkik?HQbtaX}I<z<@Vjl;CKw`h<2587G&><1HPJ3@H-4kdYWI
zQ;zxVh|OO~8WYxcc`@|c?5|ZkCvw8Q9`A3s