]> BookStack Code Mirror - bookstack/commitdiff
Merge branch 'diff' of git://github.com/younes0/BookStack into younes0-diff
authorDan Brown <redacted>
Thu, 29 Sep 2016 08:32:40 +0000 (09:32 +0100)
committerDan Brown <redacted>
Thu, 29 Sep 2016 08:32:40 +0000 (09:32 +0100)
1  2 
app/Http/Controllers/PageController.php
app/PageRevision.php
composer.json
composer.lock
resources/assets/sass/_pages.scss
resources/views/pages/page-display.blade.php

index 3d6abe5b4e97ea6f33041d2402f8c2002677333a,fc71292e0598d72c4913beca08a6f375efd1dfff..6081d1b27ddaa2bc275d8a6573d7a212e2c9160e
@@@ -12,6 -12,7 +12,7 @@@ use BookStack\Repos\ChapterRepo
  use BookStack\Repos\PageRepo;
  use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
  use Views;
+ use GatherContent\Htmldiff\Htmldiff;
  
  class PageController extends Controller
  {
@@@ -42,7 -43,7 +43,7 @@@
  
      /**
       * Show the form for creating a new page.
 -     * @param      $bookSlug
 +     * @param string $bookSlug
       * @param bool $chapterSlug
       * @return Response
       * @internal param bool $pageSlug
@@@ -61,8 -62,8 +62,8 @@@
  
      /**
       * Show form to continue editing a draft page.
 -     * @param $bookSlug
 -     * @param $pageId
 +     * @param string $bookSlug
 +     * @param int $pageId
       * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
       */
      public function editDraft($bookSlug, $pageId)
       * Display the specified page.
       * If the page is not found via the slug the
       * revisions are searched for a match.
 -     * @param $bookSlug
 -     * @param $pageSlug
 +     * @param string $bookSlug
 +     * @param string $pageSlug
       * @return Response
       */
      public function show($bookSlug, $pageSlug)
          $this->checkOwnablePermission('page-view', $page);
  
          $sidebarTree = $this->bookRepo->getChildren($book);
 +        $pageNav = $this->pageRepo->getPageNav($page);
 +        
          Views::add($page);
          $this->setPageTitle($page->getShortName());
 -        return view('pages/show', ['page' => $page, 'book' => $book, 'current' => $page, 'sidebarTree' => $sidebarTree]);
 +        return view('pages/show', ['page' => $page, 'book' => $book,
 +                                   'current' => $page, 'sidebarTree' => $sidebarTree, 'pageNav' => $pageNav]);
      }
  
      /**
       * Get page from an ajax request.
 -     * @param $pageId
 +     * @param int $pageId
       * @return \Illuminate\Http\JsonResponse
       */
      public function getPageAjax($pageId)
  
      /**
       * Show the form for editing the specified page.
 -     * @param $bookSlug
 -     * @param $pageSlug
 +     * @param string $bookSlug
 +     * @param string $pageSlug
       * @return Response
       */
      public function edit($bookSlug, $pageSlug)
      /**
       * Update the specified page in storage.
       * @param  Request $request
 -     * @param          $bookSlug
 -     * @param          $pageSlug
 +     * @param  string $bookSlug
 +     * @param  string $pageSlug
       * @return Response
       */
      public function update(Request $request, $bookSlug, $pageSlug)
      /**
       * Save a draft update as a revision.
       * @param Request $request
 -     * @param $pageId
 +     * @param int $pageId
       * @return \Illuminate\Http\JsonResponse
       */
      public function saveDraft(Request $request, $pageId)
      /**
       * Redirect from a special link url which
       * uses the page id rather than the name.
 -     * @param $pageId
 +     * @param int $pageId
       * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
       */
      public function redirectFromLink($pageId)
  
      /**
       * Show the deletion page for the specified page.
 -     * @param $bookSlug
 -     * @param $pageSlug
 +     * @param string $bookSlug
 +     * @param string $pageSlug
       * @return \Illuminate\View\View
       */
      public function showDelete($bookSlug, $pageSlug)
  
      /**
       * Show the deletion page for the specified page.
 -     * @param $bookSlug
 -     * @param $pageId
 +     * @param string $bookSlug
 +     * @param int $pageId
       * @return \Illuminate\View\View
       * @throws NotFoundException
       */
  
      /**
       * Remove the specified page from storage.
 -     * @param $bookSlug
 -     * @param $pageSlug
 +     * @param string $bookSlug
 +     * @param string $pageSlug
       * @return Response
       * @internal param int $id
       */
  
      /**
       * Remove the specified draft page from storage.
 -     * @param $bookSlug
 -     * @param $pageId
 +     * @param string $bookSlug
 +     * @param int $pageId
       * @return Response
       * @throws NotFoundException
       */
  
      /**
       * Shows the last revisions for this page.
 -     * @param $bookSlug
 -     * @param $pageSlug
 +     * @param string $bookSlug
 +     * @param string $pageSlug
       * @return \Illuminate\View\View
       */
      public function showRevisions($bookSlug, $pageSlug)
  
      /**
       * Shows a preview of a single revision
 -     * @param $bookSlug
 -     * @param $pageSlug
 -     * @param $revisionId
 +     * @param string $bookSlug
 +     * @param string $pageSlug
 +     * @param int $revisionId
       * @return \Illuminate\View\View
       */
      public function showRevision($bookSlug, $pageSlug, $revisionId)
          $book = $this->bookRepo->getBySlug($bookSlug);
          $page = $this->pageRepo->getBySlug($pageSlug, $book->id);
          $revision = $this->pageRepo->getRevisionById($revisionId);
+         
+         $next = $revision->getNext() ?: $page;
+         $diff = (new Htmldiff)->diff($revision->html, $next->html);
          $page->fill($revision->toArray());
          $this->setPageTitle('Page Revision For ' . $page->getShortName());
-         return view('pages/revision', ['page' => $page, 'book' => $book]);
+         
+         return view('pages/revision', [
+             'page' => $page,
+             'book' => $book,
+             'diff' => $diff,
+         ]);
      }
  
      /**
       * Restores a page using the content of the specified revision.
 -     * @param $bookSlug
 -     * @param $pageSlug
 -     * @param $revisionId
 +     * @param string $bookSlug
 +     * @param string $pageSlug
 +     * @param int $revisionId
       * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
       */
      public function restoreRevision($bookSlug, $pageSlug, $revisionId)
      /**
       * Exports a page to pdf format using barryvdh/laravel-dompdf wrapper.
       * https://github.com/barryvdh/laravel-dompdf
 -     * @param $bookSlug
 -     * @param $pageSlug
 +     * @param string $bookSlug
 +     * @param string $pageSlug
       * @return \Illuminate\Http\Response
       */
      public function exportPdf($bookSlug, $pageSlug)
  
      /**
       * Export a page to a self-contained HTML file.
 -     * @param $bookSlug
 -     * @param $pageSlug
 +     * @param string $bookSlug
 +     * @param string $pageSlug
       * @return \Illuminate\Http\Response
       */
      public function exportHtml($bookSlug, $pageSlug)
  
      /**
       * Export a page to a simple plaintext .txt file.
 -     * @param $bookSlug
 -     * @param $pageSlug
 +     * @param string $bookSlug
 +     * @param string $pageSlug
       * @return \Illuminate\Http\Response
       */
      public function exportPlainText($bookSlug, $pageSlug)
       */
      public function showRecentlyCreated()
      {
 -        $pages = $this->pageRepo->getRecentlyCreatedPaginated(20);
 +        $pages = $this->pageRepo->getRecentlyCreatedPaginated(20)->setPath(baseUrl('/pages/recently-created'));
          return view('pages/detailed-listing', [
              'title' => 'Recently Created Pages',
              'pages' => $pages
       */
      public function showRecentlyUpdated()
      {
 -        $pages = $this->pageRepo->getRecentlyUpdatedPaginated(20);
 +        $pages = $this->pageRepo->getRecentlyUpdatedPaginated(20)->setPath(baseUrl('/pages/recently-updated'));
          return view('pages/detailed-listing', [
              'title' => 'Recently Updated Pages',
              'pages' => $pages
  
      /**
       * Show the Restrictions view.
 -     * @param $bookSlug
 -     * @param $pageSlug
 +     * @param string $bookSlug
 +     * @param string $pageSlug
       * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
       */
      public function showRestrict($bookSlug, $pageSlug)
  
      /**
       * Show the view to choose a new parent to move a page into.
 -     * @param $bookSlug
 -     * @param $pageSlug
 +     * @param string $bookSlug
 +     * @param string $pageSlug
       * @return mixed
       * @throws NotFoundException
       */
  
      /**
       * Does the action of moving the location of a page
 -     * @param $bookSlug
 -     * @param $pageSlug
 +     * @param string $bookSlug
 +     * @param string $pageSlug
       * @param Request $request
       * @return mixed
       * @throws NotFoundException
  
      /**
       * Set the permissions for this page.
 -     * @param $bookSlug
 -     * @param $pageSlug
 +     * @param string $bookSlug
 +     * @param string $pageSlug
       * @param Request $request
       * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
       */
diff --combined app/PageRevision.php
index 1ffd63dbd584700376c983e39a4f4c1c8ce36800,1baf0f8e5833c60801ad1ffeb193cf06c6e5f1d4..e5721f5aa1dc08f790eb011daa4ee2fbb706aba2
@@@ -3,7 -3,7 +3,7 @@@
  
  class PageRevision extends Model
  {
 -    protected $fillable = ['name', 'html', 'text', 'markdown'];
 +    protected $fillable = ['name', 'html', 'text', 'markdown', 'summary'];
  
      /**
       * Get the user that created the page revision
          return $this->page->getUrl() . '/revisions/' . $this->id;
      }
  
+     /**
+      * Get previous revision
+      * @return \BookStack\PageRevision
+      */
+     public function getPrevious()
+     {
+         if ($id = PageRevision::where('id', '<', $this->id)->max('id')) {
+             return PageRevision::find($id);
+         }
+     }
+     /**
+      * Get next revision
+      * @return \BookStack\PageRevision
+      */
+     public function getNext()
+     {
+         if ($id = PageRevision::where('id', '>', $this->id)->min('id')) {
+             return PageRevision::find($id);
+         }
+     }
  }
diff --combined composer.json
index d9603701998f1fd6db56a73bb12d378ac2641e41,d1f99a8f3c8004121dfe4aa87ee5b2a6a9ae5ba7..7d4b5e62b03a1132b39efe3d3f39fe9b2f47bf59
@@@ -5,22 -5,26 +5,24 @@@
      "license": "MIT",
      "type": "project",
      "require": {
 -        "php": ">=5.5.9",
 +        "php": ">=5.6.4",
 +        "laravel/framework": "^5.3.4",
+         "ext-tidy": "*",
 -
 -        "laravel/framework": "5.2.*",
          "intervention/image": "^2.3",
          "laravel/socialite": "^2.0",
          "barryvdh/laravel-ide-helper": "^2.1",
 -        "barryvdh/laravel-debugbar": "^2.0",
 +        "barryvdh/laravel-debugbar": "^2.2.3",
          "league/flysystem-aws-s3-v3": "^1.0",
 -        "barryvdh/laravel-dompdf": "0.6.*",
 -        "predis/predis": "^1.0",
 +        "barryvdh/laravel-dompdf": "^0.7",
-         "predis/predis": "^1.1"
++        "predis/predis": "^1.1",
+         "gathercontent/htmldiff": "^0.2.1"
      },
      "require-dev": {
          "fzaninotto/faker": "~1.4",
          "mockery/mockery": "0.9.*",
 -        "phpunit/phpunit": "~4.0",
 -        "phpspec/phpspec": "~2.1",
 -        "symfony/dom-crawler": "~3.0",
 -        "symfony/css-selector": "~3.0"
 +        "phpunit/phpunit": "~5.0",
 +        "symfony/css-selector": "3.1.*",
 +        "symfony/dom-crawler": "3.1.*"
      },
      "autoload": {
          "classmap": [
          ],
          "psr-4": {
              "BookStack\\": "app/"
 -        },
 -        "files": [
 -            "app/helpers.php"
 -        ]
 +        }
      },
      "autoload-dev": {
          "classmap": [
          ]
      },
      "scripts": {
 +        "post-root-package-install": [
 +            "php -r \"file_exists('.env') || copy('.env.example', '.env');\""
 +        ],
 +        "post-create-project-cmd": [
 +            "php artisan key:generate"
 +        ],
          "post-install-cmd": [
 -            "php artisan clear-compiled",
 +            "Illuminate\\Foundation\\ComposerScripts::postInstall",
              "php artisan optimize"
          ],
 -        "pre-update-cmd": [
 -            "php artisan clear-compiled"
 -        ],
          "post-update-cmd": [
 +            "Illuminate\\Foundation\\ComposerScripts::postUpdate",
              "php artisan optimize"
 -        ],
 -        "post-root-package-install": [
 -            "php -r \"copy('.env.example', '.env');\""
 -        ],
 -        "post-create-project-cmd": [
 -            "php artisan key:generate"
          ]
      },
      "config": {
diff --combined composer.lock
index c1c80e100b9b11cf2cd648b3785dd43caa3f30ec,98fb86ce585a4100d025a599b15d4eac52d75ecf..74a0902882376a9d16fc1a8ac18f5398a0c1c33f
@@@ -4,25 -4,25 +4,25 @@@
          "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
          "This file is @generated automatically"
      ],
-     "hash": "c90a6e41767306ceb3b8cedb91468390",
-     "content-hash": "3b5d2d6b77fbe71101e7e8eaff0754fe",
 -    "hash": "097beaeb7ce90384b824d65d9dd36520",
 -    "content-hash": "233ce3d93ee0c9b005c263ff1449ae0f",
++    "hash": "3124d900cfe857392a94de479f3ff6d4",
++    "content-hash": "a968767a73f77e66e865c276cf76eedf",
      "packages": [
          {
              "name": "aws/aws-sdk-php",
-             "version": "3.19.6",
 -            "version": "3.18.25",
++            "version": "3.19.11",
              "source": {
                  "type": "git",
                  "url": "https://github.com/aws/aws-sdk-php.git",
-                 "reference": "34060bf0db260031697b17dbb37fa1bbec92f1c4"
 -                "reference": "37a8ce927a69de3d821c21b64674a2b3b9d1d247"
++                "reference": "19bac3bdd7988cbf7f89d5ce8e2748d774e2cde8"
              },
              "dist": {
                  "type": "zip",
-                 "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/34060bf0db260031697b17dbb37fa1bbec92f1c4",
-                 "reference": "34060bf0db260031697b17dbb37fa1bbec92f1c4",
 -                "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/37a8ce927a69de3d821c21b64674a2b3b9d1d247",
 -                "reference": "37a8ce927a69de3d821c21b64674a2b3b9d1d247",
++                "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/19bac3bdd7988cbf7f89d5ce8e2748d774e2cde8",
++                "reference": "19bac3bdd7988cbf7f89d5ce8e2748d774e2cde8",
                  "shasum": ""
              },
              "require": {
 -                "guzzlehttp/guzzle": "~5.3|~6.0.1|~6.1",
 +                "guzzlehttp/guzzle": "^5.3.1|^6.2.1",
                  "guzzlehttp/promises": "~1.0",
                  "guzzlehttp/psr7": "~1.3.1",
                  "mtdowling/jmespath.php": "~2.2",
                  "s3",
                  "sdk"
              ],
-             "time": "2016-09-08 20:27:15"
 -            "time": "2016-07-05 19:25:06"
++            "time": "2016-09-27 19:38:36"
          },
          {
              "name": "barryvdh/laravel-debugbar",
-             "version": "V2.2.3",
 -            "version": "v2.2.2",
++            "version": "v2.3.0",
              "source": {
                  "type": "git",
                  "url": "https://github.com/barryvdh/laravel-debugbar.git",
-                 "reference": "ecd1ce5c4a827e2f6a8fb41bcf67713beb1c1cbd"
 -                "reference": "c291e58d0a13953e0f68d99182ee77ebc693edc0"
++                "reference": "0c87981df959c7c1943abe227baf607c92f204f9"
              },
              "dist": {
                  "type": "zip",
-                 "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/ecd1ce5c4a827e2f6a8fb41bcf67713beb1c1cbd",
-                 "reference": "ecd1ce5c4a827e2f6a8fb41bcf67713beb1c1cbd",
 -                "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/c291e58d0a13953e0f68d99182ee77ebc693edc0",
 -                "reference": "c291e58d0a13953e0f68d99182ee77ebc693edc0",
++                "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/0c87981df959c7c1943abe227baf607c92f204f9",
++                "reference": "0c87981df959c7c1943abe227baf607c92f204f9",
                  "shasum": ""
              },
              "require": {
 -                "illuminate/support": "5.1.*|5.2.*",
 -                "maximebf/debugbar": "~1.11.0",
 +                "illuminate/support": "5.1.*|5.2.*|5.3.*",
-                 "maximebf/debugbar": "~1.11.0|~1.12.0",
++                "maximebf/debugbar": "~1.13.0",
                  "php": ">=5.5.9",
                  "symfony/finder": "~2.7|~3.0"
              },
              "type": "library",
              "extra": {
                  "branch-alias": {
--                    "dev-master": "2.2-dev"
++                    "dev-master": "2.3-dev"
                  }
              },
              "autoload": {
                  "profiler",
                  "webprofiler"
              ],
-             "time": "2016-07-29 15:00:36"
 -            "time": "2016-05-11 13:54:43"
++            "time": "2016-09-15 14:05:56"
          },
          {
              "name": "barryvdh/laravel-dompdf",
 -            "version": "v0.6.1",
 +            "version": "v0.7.0",
              "source": {
                  "type": "git",
                  "url": "https://github.com/barryvdh/laravel-dompdf.git",
 -                "reference": "b606788108833f7765801dca35455fb23ce9f869"
 +                "reference": "9b8bd179262ad6b200a11edfe7b53516afcfc42a"
              },
              "dist": {
                  "type": "zip",
 -                "url": "https://api.github.com/repos/barryvdh/laravel-dompdf/zipball/b606788108833f7765801dca35455fb23ce9f869",
 -                "reference": "b606788108833f7765801dca35455fb23ce9f869",
 +                "url": "https://api.github.com/repos/barryvdh/laravel-dompdf/zipball/9b8bd179262ad6b200a11edfe7b53516afcfc42a",
 +                "reference": "9b8bd179262ad6b200a11edfe7b53516afcfc42a",
                  "shasum": ""
              },
              "require": {
 -                "dompdf/dompdf": "0.6.*",
 -                "illuminate/support": "5.0.x|5.1.x|5.2.x",
 -                "php": ">=5.4.0"
 +                "dompdf/dompdf": "^0.7",
 +                "illuminate/support": "5.1.x|5.2.x|5.3.x",
 +                "php": ">=5.5.9"
              },
              "type": "library",
              "extra": {
                  "branch-alias": {
 -                    "dev-master": "0.6-dev"
 +                    "dev-master": "0.7-dev"
                  }
              },
              "autoload": {
                  "laravel",
                  "pdf"
              ],
 -            "time": "2015-12-21 19:51:22"
 +            "time": "2016-08-17 08:17:33"
          },
          {
              "name": "barryvdh/laravel-ide-helper",
              ],
              "time": "2015-11-09 22:51:51"
          },
+         {
+             "name": "cogpowered/finediff",
+             "version": "0.3.1",
+             "source": {
+                 "type": "git",
+                 "url": "https://github.com/cogpowered/FineDiff.git",
+                 "reference": "339ddc8c3afb656efed4f2f0a80e5c3d026f8ea8"
+             },
+             "dist": {
+                 "type": "zip",
+                 "url": "https://api.github.com/repos/cogpowered/FineDiff/zipball/339ddc8c3afb656efed4f2f0a80e5c3d026f8ea8",
+                 "reference": "339ddc8c3afb656efed4f2f0a80e5c3d026f8ea8",
+                 "shasum": ""
+             },
+             "require": {
+                 "php": ">=5.3.0"
+             },
+             "require-dev": {
+                 "mockery/mockery": "*",
+                 "phpunit/phpunit": "*"
+             },
+             "type": "library",
+             "autoload": {
+                 "psr-0": {
+                     "cogpowered\\FineDiff": "src/"
+                 }
+             },
+             "notification-url": "https://packagist.org/downloads/",
+             "license": [
+                 "MIT"
+             ],
+             "authors": [
+                 {
+                     "name": "Rob Crowe",
+                     "email": "[email protected]"
+                 },
+                 {
+                     "name": "Raymond Hill"
+                 }
+             ],
+             "description": "PHP implementation of a Fine granularity Diff engine",
+             "homepage": "https://github.com/cogpowered/FineDiff",
+             "keywords": [
+                 "diff",
+                 "finediff",
+                 "opcode",
+                 "string",
+                 "text"
+             ],
+             "time": "2014-05-19 10:25:02"
+         },
          {
              "name": "dnoegel/php-xdg-base-dir",
              "version": "0.1",
          },
          {
              "name": "dompdf/dompdf",
 -            "version": "v0.6.2",
 +            "version": "v0.7.0",
              "source": {
                  "type": "git",
                  "url": "https://github.com/dompdf/dompdf.git",
 -                "reference": "cc06008f75262510ee135b8cbb14e333a309f651"
 +                "reference": "5c98652b1a5beb7e3cc8ec35419b2828dd63ab14"
              },
              "dist": {
                  "type": "zip",
 -                "url": "https://api.github.com/repos/dompdf/dompdf/zipball/cc06008f75262510ee135b8cbb14e333a309f651",
 -                "reference": "cc06008f75262510ee135b8cbb14e333a309f651",
 +                "url": "https://api.github.com/repos/dompdf/dompdf/zipball/5c98652b1a5beb7e3cc8ec35419b2828dd63ab14",
 +                "reference": "5c98652b1a5beb7e3cc8ec35419b2828dd63ab14",
                  "shasum": ""
              },
              "require": {
 -                "phenx/php-font-lib": "0.2.*"
 +                "ext-dom": "*",
 +                "ext-gd": "*",
 +                "ext-mbstring": "*",
 +                "phenx/php-font-lib": "0.4.*",
 +                "phenx/php-svg-lib": "0.1.*",
 +                "php": ">=5.3.0"
 +            },
 +            "require-dev": {
 +                "phpunit/phpunit": "3.7.*"
              },
              "type": "library",
 +            "extra": {
 +                "branch-alias": {
 +                    "dev-develop": "0.7-dev"
 +                }
 +            },
              "autoload": {
 +                "psr-4": {
 +                    "Dompdf\\": "src/"
 +                },
                  "classmap": [
 -                    "include/"
 +                    "lib/"
                  ]
              },
              "notification-url": "https://packagist.org/downloads/",
              "license": [
 -                "LGPL"
 +                "LGPL-2.1"
              ],
              "authors": [
                  {
                  {
                      "name": "Brian Sweeney",
                      "email": "[email protected]"
 +                },
 +                {
 +                    "name": "Gabriel Bull",
 +                    "email": "[email protected]"
                  }
              ],
              "description": "DOMPDF is a CSS 2.1 compliant HTML to PDF converter",
              "homepage": "https://github.com/dompdf/dompdf",
 -            "time": "2015-12-07 04:07:13"
 +            "time": "2016-05-11 00:36:29"
          },
 -        {
 -            "name": "guzzle/guzzle",
 -            "version": "v3.8.1",
 -            "source": {
 -                "type": "git",
 -                "url": "https://github.com/guzzle/guzzle.git",
 -                "reference": "4de0618a01b34aa1c8c33a3f13f396dcd3882eba"
 -            },
 -            "dist": {
 -                "type": "zip",
 -                "url": "https://api.github.com/repos/guzzle/guzzle/zipball/4de0618a01b34aa1c8c33a3f13f396dcd3882eba",
 -                "reference": "4de0618a01b34aa1c8c33a3f13f396dcd3882eba",
 -                "shasum": ""
 -            },
 -            "require": {
 -                "ext-curl": "*",
 -                "php": ">=5.3.3",
 -                "symfony/event-dispatcher": ">=2.1"
 -            },
 -            "replace": {
 -                "guzzle/batch": "self.version",
 -                "guzzle/cache": "self.version",
 -                "guzzle/common": "self.version",
 -                "guzzle/http": "self.version",
 -                "guzzle/inflection": "self.version",
 -                "guzzle/iterator": "self.version",
 -                "guzzle/log": "self.version",
 -                "guzzle/parser": "self.version",
 -                "guzzle/plugin": "self.version",
 -                "guzzle/plugin-async": "self.version",
 -                "guzzle/plugin-backoff": "self.version",
 -                "guzzle/plugin-cache": "self.version",
 -                "guzzle/plugin-cookie": "self.version",
 -                "guzzle/plugin-curlauth": "self.version",
 -                "guzzle/plugin-error-response": "self.version",
 -                "guzzle/plugin-history": "self.version",
 -                "guzzle/plugin-log": "self.version",
 -                "guzzle/plugin-md5": "self.version",
 -                "guzzle/plugin-mock": "self.version",
 -                "guzzle/plugin-oauth": "self.version",
 -                "guzzle/service": "self.version",
 -                "guzzle/stream": "self.version"
 -            },
 -            "require-dev": {
 -                "doctrine/cache": "*",
 -                "monolog/monolog": "1.*",
 -                "phpunit/phpunit": "3.7.*",
 -                "psr/log": "1.0.*",
 -                "symfony/class-loader": "*",
 -                "zendframework/zend-cache": "<2.3",
 -                "zendframework/zend-log": "<2.3"
 -            },
 -            "type": "library",
 -            "extra": {
 -                "branch-alias": {
 -                    "dev-master": "3.8-dev"
 -                }
 -            },
 -            "autoload": {
 -                "psr-0": {
 -                    "Guzzle": "src/",
 -                    "Guzzle\\Tests": "tests/"
 -                }
 -            },
 -            "notification-url": "https://packagist.org/downloads/",
 -            "license": [
 -                "MIT"
 -            ],
 -            "authors": [
 -                {
 -                    "name": "Michael Dowling",
 -                    "email": "[email protected]",
 -                    "homepage": "https://github.com/mtdowling"
 -                },
 -                {
 -                    "name": "Guzzle Community",
 -                    "homepage": "https://github.com/guzzle/guzzle/contributors"
 -                }
 -            ],
 -            "description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients",
 -            "homepage": "http://guzzlephp.org/",
 -            "keywords": [
 -                "client",
 -                "curl",
 -                "framework",
 -                "http",
 -                "http client",
 -                "rest",
 -                "web service"
 -            ],
 -            "abandoned": "guzzlehttp/guzzle",
 -            "time": "2014-01-28 22:29:15"
 -        },
+         {
+             "name": "gathercontent/htmldiff",
+             "version": "0.2.1",
+             "source": {
+                 "type": "git",
+                 "url": "https://github.com/gathercontent/htmldiff.git",
+                 "reference": "24674a62315f64330134b4a4c5b01a7b59193c93"
+             },
+             "dist": {
+                 "type": "zip",
+                 "url": "https://api.github.com/repos/gathercontent/htmldiff/zipball/24674a62315f64330134b4a4c5b01a7b59193c93",
+                 "reference": "24674a62315f64330134b4a4c5b01a7b59193c93",
+                 "shasum": ""
+             },
+             "require": {
+                 "cogpowered/finediff": "0.3.1",
+                 "ext-tidy": "*"
+             },
+             "require-dev": {
+                 "phpunit/phpunit": "4.*",
+                 "squizlabs/php_codesniffer": "1.*"
+             },
+             "type": "library",
+             "autoload": {
+                 "psr-0": {
+                     "GatherContent\\Htmldiff": "src/"
+                 }
+             },
+             "notification-url": "https://packagist.org/downloads/",
+             "license": [
+                 "MIT"
+             ],
+             "authors": [
+                 {
+                     "name": "Andrew Cairns",
+                     "email": "[email protected]"
+                 },
+                 {
+                     "name": "Mathew Chapman",
+                     "email": "[email protected]"
+                 },
+                 {
+                     "name": "Peter Legierski",
+                     "email": "[email protected]"
+                 }
+             ],
+             "description": "Compare two HTML strings",
+             "time": "2015-04-15 15:39:46"
+         },
          {
              "name": "guzzlehttp/guzzle",
 -            "version": "6.2.0",
 +            "version": "6.2.1",
              "source": {
                  "type": "git",
                  "url": "https://github.com/guzzle/guzzle.git",
 -                "reference": "d094e337976dff9d8e2424e8485872194e768662"
 +                "reference": "3f808fba627f2c5b69e2501217bf31af349c1427"
              },
              "dist": {
                  "type": "zip",
 -                "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d094e337976dff9d8e2424e8485872194e768662",
 -                "reference": "d094e337976dff9d8e2424e8485872194e768662",
 +                "url": "https://api.github.com/repos/guzzle/guzzle/zipball/3f808fba627f2c5b69e2501217bf31af349c1427",
 +                "reference": "3f808fba627f2c5b69e2501217bf31af349c1427",
                  "shasum": ""
              },
              "require": {
 -                "guzzlehttp/promises": "~1.0",
 -                "guzzlehttp/psr7": "~1.1",
 -                "php": ">=5.5.0"
 +                "guzzlehttp/promises": "^1.0",
 +                "guzzlehttp/psr7": "^1.3.1",
 +                "php": ">=5.5"
              },
              "require-dev": {
                  "ext-curl": "*",
 -                "phpunit/phpunit": "~4.0",
 -                "psr/log": "~1.0"
 +                "phpunit/phpunit": "^4.0",
 +                "psr/log": "^1.0"
              },
              "type": "library",
              "extra": {
                  "rest",
                  "web service"
              ],
 -            "time": "2016-03-21 20:02:09"
 +            "time": "2016-07-15 17:22:37"
          },
          {
              "name": "guzzlehttp/promises",
          },
          {
              "name": "intervention/image",
 -            "version": "2.3.7",
 +            "version": "2.3.8",
              "source": {
                  "type": "git",
                  "url": "https://github.com/Intervention/image.git",
 -                "reference": "22088b04728a039bd1fc32f7e79a89a118b78698"
 +                "reference": "4064a980324f6c3bfa2bd981dfb247afa705ec3c"
              },
              "dist": {
                  "type": "zip",
 -                "url": "https://api.github.com/repos/Intervention/image/zipball/22088b04728a039bd1fc32f7e79a89a118b78698",
 -                "reference": "22088b04728a039bd1fc32f7e79a89a118b78698",
 +                "url": "https://api.github.com/repos/Intervention/image/zipball/4064a980324f6c3bfa2bd981dfb247afa705ec3c",
 +                "reference": "4064a980324f6c3bfa2bd981dfb247afa705ec3c",
                  "shasum": ""
              },
              "require": {
                  "thumbnail",
                  "watermark"
              ],
 -            "time": "2016-04-26 14:08:40"
 +            "time": "2016-09-01 17:04:03"
          },
          {
              "name": "jakub-onderka/php-console-color",
          },
          {
              "name": "laravel/framework",
-             "version": "v5.3.9",
 -            "version": "v5.2.39",
++            "version": "v5.3.11",
              "source": {
                  "type": "git",
                  "url": "https://github.com/laravel/framework.git",
-                 "reference": "f6fbb481672f8dc4bc6882d5d654bbfa3588c8ec"
 -                "reference": "c2a77050269b4e03bd9a735a9f24e573a7598b8a"
++                "reference": "ca48001b95a0543fb39fcd7219de960bbc03eaa5"
              },
              "dist": {
                  "type": "zip",
-                 "url": "https://api.github.com/repos/laravel/framework/zipball/f6fbb481672f8dc4bc6882d5d654bbfa3588c8ec",
-                 "reference": "f6fbb481672f8dc4bc6882d5d654bbfa3588c8ec",
 -                "url": "https://api.github.com/repos/laravel/framework/zipball/c2a77050269b4e03bd9a735a9f24e573a7598b8a",
 -                "reference": "c2a77050269b4e03bd9a735a9f24e573a7598b8a",
++                "url": "https://api.github.com/repos/laravel/framework/zipball/ca48001b95a0543fb39fcd7219de960bbc03eaa5",
++                "reference": "ca48001b95a0543fb39fcd7219de960bbc03eaa5",
                  "shasum": ""
              },
              "require": {
                  "monolog/monolog": "~1.11",
                  "mtdowling/cron-expression": "~1.0",
                  "nesbot/carbon": "~1.20",
 -                "paragonie/random_compat": "~1.4",
 -                "php": ">=5.5.9",
 +                "paragonie/random_compat": "~1.4|~2.0",
 +                "php": ">=5.6.4",
                  "psy/psysh": "0.7.*",
 +                "ramsey/uuid": "~3.0",
                  "swiftmailer/swiftmailer": "~5.1",
 -                "symfony/console": "2.8.*|3.0.*",
 -                "symfony/debug": "2.8.*|3.0.*",
 -                "symfony/finder": "2.8.*|3.0.*",
 -                "symfony/http-foundation": "2.8.*|3.0.*",
 -                "symfony/http-kernel": "2.8.*|3.0.*",
 -                "symfony/polyfill-php56": "~1.0",
 -                "symfony/process": "2.8.*|3.0.*",
 -                "symfony/routing": "2.8.*|3.0.*",
 -                "symfony/translation": "2.8.*|3.0.*",
 -                "symfony/var-dumper": "2.8.*|3.0.*",
 +                "symfony/console": "3.1.*",
 +                "symfony/debug": "3.1.*",
 +                "symfony/finder": "3.1.*",
 +                "symfony/http-foundation": "3.1.*",
 +                "symfony/http-kernel": "3.1.*",
 +                "symfony/process": "3.1.*",
 +                "symfony/routing": "3.1.*",
 +                "symfony/translation": "3.1.*",
 +                "symfony/var-dumper": "3.1.*",
                  "vlucas/phpdotenv": "~2.2"
              },
              "replace": {
                  "illuminate/http": "self.version",
                  "illuminate/log": "self.version",
                  "illuminate/mail": "self.version",
++                "illuminate/notifications": "self.version",
                  "illuminate/pagination": "self.version",
                  "illuminate/pipeline": "self.version",
                  "illuminate/queue": "self.version",
                  "illuminate/support": "self.version",
                  "illuminate/translation": "self.version",
                  "illuminate/validation": "self.version",
 -                "illuminate/view": "self.version"
 +                "illuminate/view": "self.version",
 +                "tightenco/collect": "self.version"
              },
              "require-dev": {
                  "aws/aws-sdk-php": "~3.0",
                  "mockery/mockery": "~0.9.4",
                  "pda/pheanstalk": "~3.0",
 -                "phpunit/phpunit": "~4.1",
 +                "phpunit/phpunit": "~5.4",
                  "predis/predis": "~1.0",
 -                "symfony/css-selector": "2.8.*|3.0.*",
 -                "symfony/dom-crawler": "2.8.*|3.0.*"
 +                "symfony/css-selector": "3.1.*",
 +                "symfony/dom-crawler": "3.1.*"
              },
              "suggest": {
                  "aws/aws-sdk-php": "Required to use the SQS queue driver and SES mail driver (~3.0).",
                  "pda/pheanstalk": "Required to use the beanstalk queue driver (~3.0).",
                  "predis/predis": "Required to use the redis cache and queue drivers (~1.0).",
                  "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (~2.0).",
 -                "symfony/css-selector": "Required to use some of the crawler integration testing tools (2.8.*|3.0.*).",
 -                "symfony/dom-crawler": "Required to use most of the crawler integration testing tools (2.8.*|3.0.*).",
 +                "symfony/css-selector": "Required to use some of the crawler integration testing tools (3.1.*).",
 +                "symfony/dom-crawler": "Required to use most of the crawler integration testing tools (3.1.*).",
                  "symfony/psr-http-message-bridge": "Required to psr7 bridging features (0.2.*)."
              },
              "type": "library",
              "extra": {
                  "branch-alias": {
 -                    "dev-master": "5.2-dev"
 +                    "dev-master": "5.3-dev"
                  }
              },
              "autoload": {
 -                "classmap": [
 -                    "src/Illuminate/Queue/IlluminateQueueClosure.php"
 -                ],
                  "files": [
                      "src/Illuminate/Foundation/helpers.php",
                      "src/Illuminate/Support/helpers.php"
              "authors": [
                  {
                      "name": "Taylor Otwell",
 -                    "email": "taylorotwell@gmail.com"
 +                    "email": "taylor@laravel.com"
                  }
              ],
              "description": "The Laravel Framework.",
 -            "homepage": "http://laravel.com",
 +            "homepage": "https://laravel.com",
              "keywords": [
                  "framework",
                  "laravel"
              ],
-             "time": "2016-09-12 14:08:29"
 -            "time": "2016-06-17 19:25:12"
++            "time": "2016-09-28 02:15:37"
          },
          {
              "name": "laravel/socialite",
          },
          {
              "name": "league/flysystem",
 -            "version": "1.0.24",
 +            "version": "1.0.27",
              "source": {
                  "type": "git",
                  "url": "https://github.com/thephpleague/flysystem.git",
 -                "reference": "9aca859a303fdca30370f42b8c611d9cf0dedf4b"
 +                "reference": "50e2045ed70a7e75a5e30bc3662904f3b67af8a9"
              },
              "dist": {
                  "type": "zip",
 -                "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/9aca859a303fdca30370f42b8c611d9cf0dedf4b",
 -                "reference": "9aca859a303fdca30370f42b8c611d9cf0dedf4b",
 +                "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/50e2045ed70a7e75a5e30bc3662904f3b67af8a9",
 +                "reference": "50e2045ed70a7e75a5e30bc3662904f3b67af8a9",
                  "shasum": ""
              },
              "require": {
                  "ext-fileinfo": "*",
                  "mockery/mockery": "~0.9",
                  "phpspec/phpspec": "^2.2",
 -                "phpunit/phpunit": "~4.8 || ~5.0"
 +                "phpunit/phpunit": "~4.8"
              },
              "suggest": {
                  "ext-fileinfo": "Required for MimeType",
                  "sftp",
                  "storage"
              ],
 -            "time": "2016-06-03 19:11:39"
 +            "time": "2016-08-10 08:55:11"
          },
          {
              "name": "league/flysystem-aws-s3-v3",
          },
          {
              "name": "league/oauth1-client",
 -            "version": "1.6.1",
 +            "version": "1.7.0",
              "source": {
                  "type": "git",
                  "url": "https://github.com/thephpleague/oauth1-client.git",
 -                "reference": "cef3ceda13c78f89c323e4d5e6301c0eb7cea422"
 +                "reference": "fca5f160650cb74d23fc11aa570dd61f86dcf647"
              },
              "dist": {
                  "type": "zip",
 -                "url": "https://api.github.com/repos/thephpleague/oauth1-client/zipball/cef3ceda13c78f89c323e4d5e6301c0eb7cea422",
 -                "reference": "cef3ceda13c78f89c323e4d5e6301c0eb7cea422",
 +                "url": "https://api.github.com/repos/thephpleague/oauth1-client/zipball/fca5f160650cb74d23fc11aa570dd61f86dcf647",
 +                "reference": "fca5f160650cb74d23fc11aa570dd61f86dcf647",
                  "shasum": ""
              },
              "require": {
 -                "guzzle/guzzle": "3.*",
 -                "php": ">=5.3.0"
 +                "guzzlehttp/guzzle": "^6.0",
 +                "php": ">=5.5.0"
              },
              "require-dev": {
 -                "mockery/mockery": "~0.9",
 -                "phpunit/phpunit": "~4.0",
 -                "squizlabs/php_codesniffer": "~2.0"
 +                "mockery/mockery": "^0.9",
 +                "phpunit/phpunit": "^4.0",
 +                "squizlabs/php_codesniffer": "^2.0"
              },
              "type": "library",
              "extra": {
                  "tumblr",
                  "twitter"
              ],
 -            "time": "2015-10-23 04:02:07"
 +            "time": "2016-08-17 00:36:58"
          },
          {
              "name": "maximebf/debugbar",
-             "version": "v1.12.0",
 -            "version": "v1.11.1",
++            "version": "v1.13.0",
              "source": {
                  "type": "git",
                  "url": "https://github.com/maximebf/php-debugbar.git",
-                 "reference": "e634fbd32cd6bc3fa0e8c972b52d4bf49bab3988"
 -                "reference": "d9302891c1f0a0ac5a4f66725163a00537c6359f"
++                "reference": "5f49a5ed6cfde81d31d89378806670d77462526e"
              },
              "dist": {
                  "type": "zip",
-                 "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/e634fbd32cd6bc3fa0e8c972b52d4bf49bab3988",
-                 "reference": "e634fbd32cd6bc3fa0e8c972b52d4bf49bab3988",
 -                "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/d9302891c1f0a0ac5a4f66725163a00537c6359f",
 -                "reference": "d9302891c1f0a0ac5a4f66725163a00537c6359f",
++                "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/5f49a5ed6cfde81d31d89378806670d77462526e",
++                "reference": "5f49a5ed6cfde81d31d89378806670d77462526e",
                  "shasum": ""
              },
              "require": {
              "type": "library",
              "extra": {
                  "branch-alias": {
-                     "dev-master": "1.12-dev"
 -                    "dev-master": "1.11-dev"
++                    "dev-master": "1.13-dev"
                  }
              },
              "autoload": {
                  "debug",
                  "debugbar"
              ],
-             "time": "2016-05-15 13:11:34"
 -            "time": "2016-01-22 12:22:23"
++            "time": "2016-09-15 14:01:59"
          },
          {
              "name": "monolog/monolog",
 -            "version": "1.20.0",
 +            "version": "1.21.0",
              "source": {
                  "type": "git",
                  "url": "https://github.com/Seldaek/monolog.git",
 -                "reference": "55841909e2bcde01b5318c35f2b74f8ecc86e037"
 +                "reference": "f42fbdfd53e306bda545845e4dbfd3e72edb4952"
              },
              "dist": {
                  "type": "zip",
 -                "url": "https://api.github.com/repos/Seldaek/monolog/zipball/55841909e2bcde01b5318c35f2b74f8ecc86e037",
 -                "reference": "55841909e2bcde01b5318c35f2b74f8ecc86e037",
 +                "url": "https://api.github.com/repos/Seldaek/monolog/zipball/f42fbdfd53e306bda545845e4dbfd3e72edb4952",
 +                "reference": "f42fbdfd53e306bda545845e4dbfd3e72edb4952",
                  "shasum": ""
              },
              "require": {
                  "logging",
                  "psr-3"
              ],
 -            "time": "2016-07-02 14:02:10"
 +            "time": "2016-07-29 03:23:52"
          },
          {
              "name": "mtdowling/cron-expression",
          },
          {
              "name": "nikic/php-parser",
--            "version": "v2.1.0",
++            "version": "v2.1.1",
              "source": {
                  "type": "git",
                  "url": "https://github.com/nikic/PHP-Parser.git",
--                "reference": "47b254ea51f1d6d5dc04b9b299e88346bf2369e3"
++                "reference": "4dd659edadffdc2143e4753df655d866dbfeedf0"
              },
              "dist": {
                  "type": "zip",
--                "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/47b254ea51f1d6d5dc04b9b299e88346bf2369e3",
--                "reference": "47b254ea51f1d6d5dc04b9b299e88346bf2369e3",
++                "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4dd659edadffdc2143e4753df655d866dbfeedf0",
++                "reference": "4dd659edadffdc2143e4753df655d866dbfeedf0",
                  "shasum": ""
              },
              "require": {
                  "parser",
                  "php"
              ],
--            "time": "2016-04-19 13:41:41"
++            "time": "2016-09-16 12:04:44"
          },
          {
              "name": "paragonie/random_compat",
 -            "version": "v1.4.1",
 +            "version": "v2.0.2",
              "source": {
                  "type": "git",
                  "url": "https://github.com/paragonie/random_compat.git",
 -                "reference": "c7e26a21ba357863de030f0b9e701c7d04593774"
 +                "reference": "088c04e2f261c33bed6ca5245491cfca69195ccf"
              },
              "dist": {
                  "type": "zip",
 -                "url": "https://api.github.com/repos/paragonie/random_compat/zipball/c7e26a21ba357863de030f0b9e701c7d04593774",
 -                "reference": "c7e26a21ba357863de030f0b9e701c7d04593774",
 +                "url": "https://api.github.com/repos/paragonie/random_compat/zipball/088c04e2f261c33bed6ca5245491cfca69195ccf",
 +                "reference": "088c04e2f261c33bed6ca5245491cfca69195ccf",
                  "shasum": ""
              },
              "require": {
                  "pseudorandom",
                  "random"
              ],
 -            "time": "2016-03-18 20:34:03"
 +            "time": "2016-04-03 06:00:07"
          },
          {
              "name": "phenx/php-font-lib",
 -            "version": "0.2.2",
 +            "version": "0.4",
              "source": {
                  "type": "git",
                  "url": "https://github.com/PhenX/php-font-lib.git",
 -                "reference": "c30c7fc00a6b0d863e9bb4c5d5dd015298b2dc82"
 +                "reference": "b8af0cacdc3cbf1e41a586fcb78f506f4121a088"
              },
              "dist": {
                  "type": "zip",
 -                "url": "https://api.github.com/repos/PhenX/php-font-lib/zipball/c30c7fc00a6b0d863e9bb4c5d5dd015298b2dc82",
 -                "reference": "c30c7fc00a6b0d863e9bb4c5d5dd015298b2dc82",
 +                "url": "https://api.github.com/repos/PhenX/php-font-lib/zipball/b8af0cacdc3cbf1e41a586fcb78f506f4121a088",
 +                "reference": "b8af0cacdc3cbf1e41a586fcb78f506f4121a088",
                  "shasum": ""
              },
              "type": "library",
              "autoload": {
 -                "classmap": [
 -                    "classes/"
 -                ]
 +                "psr-0": {
 +                    "FontLib\\": "src/"
 +                }
              },
              "notification-url": "https://packagist.org/downloads/",
              "license": [
 -                "LGPL"
 +                "LGPL-3.0"
              ],
              "authors": [
                  {
              ],
              "description": "A library to read, parse, export and make subsets of different types of font files.",
              "homepage": "https://github.com/PhenX/php-font-lib",
 -            "time": "2014-02-01 15:22:28"
 +            "time": "2015-05-06 20:02:39"
 +        },
 +        {
 +            "name": "phenx/php-svg-lib",
 +            "version": "0.1",
 +            "source": {
 +                "type": "git",
 +                "url": "https://github.com/PhenX/php-svg-lib.git",
 +                "reference": "b419766515b3426c6da74b0e29e93d71c4f17099"
 +            },
 +            "dist": {
 +                "type": "zip",
 +                "url": "https://api.github.com/repos/PhenX/php-svg-lib/zipball/b419766515b3426c6da74b0e29e93d71c4f17099",
 +                "reference": "b419766515b3426c6da74b0e29e93d71c4f17099",
 +                "shasum": ""
 +            },
 +            "type": "library",
 +            "autoload": {
 +                "psr-0": {
 +                    "Svg\\": "src/"
 +                }
 +            },
 +            "notification-url": "https://packagist.org/downloads/",
 +            "license": [
 +                "LGPL-3.0"
 +            ],
 +            "authors": [
 +                {
 +                    "name": "Fabien Ménager",
 +                    "email": "[email protected]"
 +                }
 +            ],
 +            "description": "A library to read, parse and export to PDF SVG files.",
 +            "homepage": "https://github.com/PhenX/php-svg-lib",
 +            "time": "2015-05-06 18:49:49"
          },
          {
              "name": "predis/predis",
          },
          {
              "name": "psr/http-message",
 -            "version": "1.0",
 +            "version": "1.0.1",
              "source": {
                  "type": "git",
                  "url": "https://github.com/php-fig/http-message.git",
 -                "reference": "85d63699f0dbedb190bbd4b0d2b9dc707ea4c298"
 +                "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
              },
              "dist": {
                  "type": "zip",
 -                "url": "https://api.github.com/repos/php-fig/http-message/zipball/85d63699f0dbedb190bbd4b0d2b9dc707ea4c298",
 -                "reference": "85d63699f0dbedb190bbd4b0d2b9dc707ea4c298",
 +                "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
 +                "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
                  "shasum": ""
              },
              "require": {
                  }
              ],
              "description": "Common interface for HTTP messages",
 +            "homepage": "https://github.com/php-fig/http-message",
              "keywords": [
                  "http",
                  "http-message",
                  "request",
                  "response"
              ],
 -            "time": "2015-05-04 20:22:00"
 +            "time": "2016-08-06 14:39:51"
          },
          {
              "name": "psr/log",
--            "version": "1.0.0",
++            "version": "1.0.1",
              "source": {
                  "type": "git",
                  "url": "https://github.com/php-fig/log.git",
--                "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b"
++                "reference": "5277094ed527a1c4477177d102fe4c53551953e0"
              },
              "dist": {
                  "type": "zip",
--                "url": "https://api.github.com/repos/php-fig/log/zipball/fe0936ee26643249e916849d48e3a51d5f5e278b",
--                "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b",
++                "url": "https://api.github.com/repos/php-fig/log/zipball/5277094ed527a1c4477177d102fe4c53551953e0",
++                "reference": "5277094ed527a1c4477177d102fe4c53551953e0",
                  "shasum": ""
              },
++            "require": {
++                "php": ">=5.3.0"
++            },
              "type": "library",
++            "extra": {
++                "branch-alias": {
++                    "dev-master": "1.0.x-dev"
++                }
++            },
              "autoload": {
--                "psr-0": {
--                    "Psr\\Log\\": ""
++                "psr-4": {
++                    "Psr\\Log\\": "Psr/Log/"
                  }
              },
              "notification-url": "https://packagist.org/downloads/",
                  }
              ],
              "description": "Common interface for logging libraries",
++            "homepage": "https://github.com/php-fig/log",
              "keywords": [
                  "log",
                  "psr",
                  "psr-3"
              ],
--            "time": "2012-12-21 11:40:51"
++            "time": "2016-09-19 16:02:08"
          },
          {
              "name": "psy/psysh",
              ],
              "time": "2016-03-09 05:03:14"
          },
 +        {
 +            "name": "ramsey/uuid",
 +            "version": "3.5.0",
 +            "source": {
 +                "type": "git",
 +                "url": "https://github.com/ramsey/uuid.git",
 +                "reference": "a6d15c8618ea3951fd54d34e326b68d3d0bc0786"
 +            },
 +            "dist": {
 +                "type": "zip",
 +                "url": "https://api.github.com/repos/ramsey/uuid/zipball/a6d15c8618ea3951fd54d34e326b68d3d0bc0786",
 +                "reference": "a6d15c8618ea3951fd54d34e326b68d3d0bc0786",
 +                "shasum": ""
 +            },
 +            "require": {
 +                "paragonie/random_compat": "^1.0|^2.0",
 +                "php": ">=5.4"
 +            },
 +            "replace": {
 +                "rhumsaa/uuid": "self.version"
 +            },
 +            "require-dev": {
 +                "apigen/apigen": "^4.1",
 +                "codeception/aspect-mock": "1.0.0",
 +                "goaop/framework": "1.0.0-alpha.2",
 +                "ircmaxell/random-lib": "^1.1",
 +                "jakub-onderka/php-parallel-lint": "^0.9.0",
 +                "mockery/mockery": "^0.9.4",
 +                "moontoast/math": "^1.1",
 +                "phpunit/phpunit": "^4.7|>=5.0 <5.4",
 +                "satooshi/php-coveralls": "^0.6.1",
 +                "squizlabs/php_codesniffer": "^2.3"
 +            },
 +            "suggest": {
 +                "ext-libsodium": "Provides the PECL libsodium extension for use with the SodiumRandomGenerator",
 +                "ext-uuid": "Provides the PECL UUID extension for use with the PeclUuidTimeGenerator and PeclUuidRandomGenerator",
 +                "ircmaxell/random-lib": "Provides RandomLib for use with the RandomLibAdapter",
 +                "moontoast/math": "Provides support for converting UUID to 128-bit integer (in string form).",
 +                "ramsey/uuid-console": "A console application for generating UUIDs with ramsey/uuid",
 +                "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type."
 +            },
 +            "type": "library",
 +            "extra": {
 +                "branch-alias": {
 +                    "dev-master": "3.x-dev"
 +                }
 +            },
 +            "autoload": {
 +                "psr-4": {
 +                    "Ramsey\\Uuid\\": "src/"
 +                }
 +            },
 +            "notification-url": "https://packagist.org/downloads/",
 +            "license": [
 +                "MIT"
 +            ],
 +            "authors": [
 +                {
 +                    "name": "Marijn Huizendveld",
 +                    "email": "[email protected]"
 +                },
 +                {
 +                    "name": "Thibaud Fabre",
 +                    "email": "[email protected]"
 +                },
 +                {
 +                    "name": "Ben Ramsey",
 +                    "email": "[email protected]",
 +                    "homepage": "https://benramsey.com"
 +                }
 +            ],
 +            "description": "Formerly rhumsaa/uuid. A PHP 5.4+ library for generating RFC 4122 version 1, 3, 4, and 5 universally unique identifiers (UUID).",
 +            "homepage": "https://github.com/ramsey/uuid",
 +            "keywords": [
 +                "guid",
 +                "identifier",
 +                "uuid"
 +            ],
 +            "time": "2016-08-02 18:39:32"
 +        },
          {
              "name": "swiftmailer/swiftmailer",
 -            "version": "v5.4.2",
 +            "version": "v5.4.3",
              "source": {
                  "type": "git",
                  "url": "https://github.com/swiftmailer/swiftmailer.git",
 -                "reference": "d8db871a54619458a805229a057ea2af33c753e8"
 +                "reference": "4cc92842069c2bbc1f28daaaf1d2576ec4dfe153"
              },
              "dist": {
                  "type": "zip",
 -                "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/d8db871a54619458a805229a057ea2af33c753e8",
 -                "reference": "d8db871a54619458a805229a057ea2af33c753e8",
 +                "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/4cc92842069c2bbc1f28daaaf1d2576ec4dfe153",
 +                "reference": "4cc92842069c2bbc1f28daaaf1d2576ec4dfe153",
                  "shasum": ""
              },
              "require": {
                  "php": ">=5.3.3"
              },
              "require-dev": {
 -                "mockery/mockery": "~0.9.1,<0.9.4"
 +                "mockery/mockery": "~0.9.1"
              },
              "type": "library",
              "extra": {
                  "mail",
                  "mailer"
              ],
 -            "time": "2016-05-01 08:45:47"
 +            "time": "2016-07-08 11:51:25"
          },
          {
              "name": "symfony/class-loader",
 -            "version": "v3.1.2",
 +            "version": "v3.1.4",
              "source": {
                  "type": "git",
                  "url": "https://github.com/symfony/class-loader.git",
 -                "reference": "0d0ac77c336eb73f35bebdf3e1f3695ac741bbc9"
 +                "reference": "2d0ba77c46ecc96a6641009a98f72632216811ba"
              },
              "dist": {
                  "type": "zip",
 -                "url": "https://api.github.com/repos/symfony/class-loader/zipball/0d0ac77c336eb73f35bebdf3e1f3695ac741bbc9",
 -                "reference": "0d0ac77c336eb73f35bebdf3e1f3695ac741bbc9",
 +                "url": "https://api.github.com/repos/symfony/class-loader/zipball/2d0ba77c46ecc96a6641009a98f72632216811ba",
 +                "reference": "2d0ba77c46ecc96a6641009a98f72632216811ba",
                  "shasum": ""
              },
              "require": {
              ],
              "description": "Symfony ClassLoader Component",
              "homepage": "https://symfony.com",
 -            "time": "2016-06-29 05:41:56"
 +            "time": "2016-08-23 13:39:15"
          },
          {
              "name": "symfony/console",
 -            "version": "v3.0.8",
 +            "version": "v3.1.4",
              "source": {
                  "type": "git",
                  "url": "https://github.com/symfony/console.git",
 -                "reference": "a7abb7153f6d1da47f87ec50274844e246b09d9f"
 +                "reference": "8ea494c34f0f772c3954b5fbe00bffc5a435e563"
              },
              "dist": {
                  "type": "zip",
 -                "url": "https://api.github.com/repos/symfony/console/zipball/a7abb7153f6d1da47f87ec50274844e246b09d9f",
 -                "reference": "a7abb7153f6d1da47f87ec50274844e246b09d9f",
 +                "url": "https://api.github.com/repos/symfony/console/zipball/8ea494c34f0f772c3954b5fbe00bffc5a435e563",
 +                "reference": "8ea494c34f0f772c3954b5fbe00bffc5a435e563",
                  "shasum": ""
              },
              "require": {
              "type": "library",
              "extra": {
                  "branch-alias": {
 -                    "dev-master": "3.0-dev"
 +                    "dev-master": "3.1-dev"
                  }
              },
              "autoload": {
              ],
              "description": "Symfony Console Component",
              "homepage": "https://symfony.com",
 -            "time": "2016-06-29 07:02:21"
 +            "time": "2016-08-19 06:48:39"
          },
          {
              "name": "symfony/debug",
 -            "version": "v3.0.8",
 +            "version": "v3.1.4",
              "source": {
                  "type": "git",
                  "url": "https://github.com/symfony/debug.git",
 -                "reference": "c54bc3539c3b87e86799533801e8ae0e971d78c2"
 +                "reference": "34f6ac18c2974ca5fce68adf419ee7d15def6f11"
              },
              "dist": {
                  "type": "zip",
 -                "url": "https://api.github.com/repos/symfony/debug/zipball/c54bc3539c3b87e86799533801e8ae0e971d78c2",
 -                "reference": "c54bc3539c3b87e86799533801e8ae0e971d78c2",
 +                "url": "https://api.github.com/repos/symfony/debug/zipball/34f6ac18c2974ca5fce68adf419ee7d15def6f11",
 +                "reference": "34f6ac18c2974ca5fce68adf419ee7d15def6f11",
                  "shasum": ""
              },
              "require": {
              "type": "library",
              "extra": {
                  "branch-alias": {
 -                    "dev-master": "3.0-dev"
 +                    "dev-master": "3.1-dev"
                  }
              },
              "autoload": {
              ],
              "description": "Symfony Debug Component",
              "homepage": "https://symfony.com",
 -            "time": "2016-06-29 05:40:00"
 +            "time": "2016-08-23 13:39:15"
          },
          {
              "name": "symfony/event-dispatcher",
 -            "version": "v3.1.2",
 +            "version": "v3.1.4",
              "source": {
                  "type": "git",
                  "url": "https://github.com/symfony/event-dispatcher.git",
 -                "reference": "7f9839ede2070f53e7e2f0849b9bd14748c434c5"
 +                "reference": "c0c00c80b3a69132c4e55c3e7db32b4a387615e5"
              },
              "dist": {
                  "type": "zip",
 -                "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/7f9839ede2070f53e7e2f0849b9bd14748c434c5",
 -                "reference": "7f9839ede2070f53e7e2f0849b9bd14748c434c5",
 +                "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/c0c00c80b3a69132c4e55c3e7db32b4a387615e5",
 +                "reference": "c0c00c80b3a69132c4e55c3e7db32b4a387615e5",
                  "shasum": ""
              },
              "require": {
              ],
              "description": "Symfony EventDispatcher Component",
              "homepage": "https://symfony.com",
 -            "time": "2016-06-29 05:41:56"
 +            "time": "2016-07-19 10:45:57"
          },
          {
              "name": "symfony/finder",
 -            "version": "v3.0.8",
 +            "version": "v3.1.4",
              "source": {
                  "type": "git",
                  "url": "https://github.com/symfony/finder.git",
 -                "reference": "3eb4e64c6145ef8b92adefb618a74ebdde9e3fe9"
 +                "reference": "e568ef1784f447a0e54dcb6f6de30b9747b0f577"
              },
              "dist": {
                  "type": "zip",
 -                "url": "https://api.github.com/repos/symfony/finder/zipball/3eb4e64c6145ef8b92adefb618a74ebdde9e3fe9",
 -                "reference": "3eb4e64c6145ef8b92adefb618a74ebdde9e3fe9",
 +                "url": "https://api.github.com/repos/symfony/finder/zipball/e568ef1784f447a0e54dcb6f6de30b9747b0f577",
 +                "reference": "e568ef1784f447a0e54dcb6f6de30b9747b0f577",
                  "shasum": ""
              },
              "require": {
              "type": "library",
              "extra": {
                  "branch-alias": {
 -                    "dev-master": "3.0-dev"
 +                    "dev-master": "3.1-dev"
                  }
              },
              "autoload": {
              ],
              "description": "Symfony Finder Component",
              "homepage": "https://symfony.com",
 -            "time": "2016-06-29 05:40:00"
 +            "time": "2016-08-26 12:04:02"
          },
          {
              "name": "symfony/http-foundation",
 -            "version": "v3.0.8",
 +            "version": "v3.1.4",
              "source": {
                  "type": "git",
                  "url": "https://github.com/symfony/http-foundation.git",
 -                "reference": "1341139f906d295baa4f4abd55293d07e25a065a"
 +                "reference": "63592e00fd90632b57ee50220a1ddb29b6bf3bb4"
              },
              "dist": {
                  "type": "zip",
 -                "url": "https://api.github.com/repos/symfony/http-foundation/zipball/1341139f906d295baa4f4abd55293d07e25a065a",
 -                "reference": "1341139f906d295baa4f4abd55293d07e25a065a",
 +                "url": "https://api.github.com/repos/symfony/http-foundation/zipball/63592e00fd90632b57ee50220a1ddb29b6bf3bb4",
 +                "reference": "63592e00fd90632b57ee50220a1ddb29b6bf3bb4",
                  "shasum": ""
              },
              "require": {
              "type": "library",
              "extra": {
                  "branch-alias": {
 -                    "dev-master": "3.0-dev"
 +                    "dev-master": "3.1-dev"
                  }
              },
              "autoload": {
              ],
              "description": "Symfony HttpFoundation Component",
              "homepage": "https://symfony.com",
 -            "time": "2016-06-29 07:02:21"
 +            "time": "2016-08-22 12:11:19"
          },
          {
              "name": "symfony/http-kernel",
 -            "version": "v3.0.8",
 +            "version": "v3.1.4",
              "source": {
                  "type": "git",
                  "url": "https://github.com/symfony/http-kernel.git",
 -                "reference": "177b63b2d50b63fa6d82ea41359ed9928cc7a1fb"
 +                "reference": "aeda215d6b01f119508c090d2a09ebb5b0bc61f3"
              },
              "dist": {
                  "type": "zip",
 -                "url": "https://api.github.com/repos/symfony/http-kernel/zipball/177b63b2d50b63fa6d82ea41359ed9928cc7a1fb",
 -                "reference": "177b63b2d50b63fa6d82ea41359ed9928cc7a1fb",
 +                "url": "https://api.github.com/repos/symfony/http-kernel/zipball/aeda215d6b01f119508c090d2a09ebb5b0bc61f3",
 +                "reference": "aeda215d6b01f119508c090d2a09ebb5b0bc61f3",
                  "shasum": ""
              },
              "require": {
              "type": "library",
              "extra": {
                  "branch-alias": {
 -                    "dev-master": "3.0-dev"
 +                    "dev-master": "3.1-dev"
                  }
              },
              "autoload": {
              ],
              "description": "Symfony HttpKernel Component",
              "homepage": "https://symfony.com",
 -            "time": "2016-06-30 16:30:17"
 +            "time": "2016-09-03 15:28:24"
          },
          {
              "name": "symfony/polyfill-mbstring",
          },
          {
              "name": "symfony/process",
 -            "version": "v3.0.8",
 +            "version": "v3.1.4",
              "source": {
                  "type": "git",
                  "url": "https://github.com/symfony/process.git",
 -                "reference": "d7cde1f9d94d87060204f863779389b61c382eeb"
 +                "reference": "e64e93041c80e77197ace5ab9385dedb5a143697"
              },
              "dist": {
                  "type": "zip",
 -                "url": "https://api.github.com/repos/symfony/process/zipball/d7cde1f9d94d87060204f863779389b61c382eeb",
 -                "reference": "d7cde1f9d94d87060204f863779389b61c382eeb",
 +                "url": "https://api.github.com/repos/symfony/process/zipball/e64e93041c80e77197ace5ab9385dedb5a143697",
 +                "reference": "e64e93041c80e77197ace5ab9385dedb5a143697",
                  "shasum": ""
              },
              "require": {
              "type": "library",
              "extra": {
                  "branch-alias": {
 -                    "dev-master": "3.0-dev"
 +                    "dev-master": "3.1-dev"
                  }
              },
              "autoload": {
              ],
              "description": "Symfony Process Component",
              "homepage": "https://symfony.com",
 -            "time": "2016-06-29 05:40:00"
 +            "time": "2016-08-16 14:58:24"
          },
          {
              "name": "symfony/routing",
 -            "version": "v3.0.8",
 +            "version": "v3.1.4",
              "source": {
                  "type": "git",
                  "url": "https://github.com/symfony/routing.git",
 -                "reference": "9038984bd9c05ab07280121e9e10f61a7231457b"
 +                "reference": "8edf62498a1a4c57ba317664a4b698339c10cdf6"
              },
              "dist": {
                  "type": "zip",
 -                "url": "https://api.github.com/repos/symfony/routing/zipball/9038984bd9c05ab07280121e9e10f61a7231457b",
 -                "reference": "9038984bd9c05ab07280121e9e10f61a7231457b",
 +                "url": "https://api.github.com/repos/symfony/routing/zipball/8edf62498a1a4c57ba317664a4b698339c10cdf6",
 +                "reference": "8edf62498a1a4c57ba317664a4b698339c10cdf6",
                  "shasum": ""
              },
              "require": {
              "type": "library",
              "extra": {
                  "branch-alias": {
 -                    "dev-master": "3.0-dev"
 +                    "dev-master": "3.1-dev"
                  }
              },
              "autoload": {
                  "uri",
                  "url"
              ],
 -            "time": "2016-06-29 05:40:00"
 +            "time": "2016-08-16 14:58:24"
          },
          {
              "name": "symfony/translation",
 -            "version": "v3.0.8",
 +            "version": "v3.1.4",
              "source": {
                  "type": "git",
                  "url": "https://github.com/symfony/translation.git",
 -                "reference": "6bf844e1ee3c820c012386c10427a5c67bbefec8"
 +                "reference": "a35edc277513c9bc0f063ca174c36b346f974528"
              },
              "dist": {
                  "type": "zip",
 -                "url": "https://api.github.com/repos/symfony/translation/zipball/6bf844e1ee3c820c012386c10427a5c67bbefec8",
 -                "reference": "6bf844e1ee3c820c012386c10427a5c67bbefec8",
 +                "url": "https://api.github.com/repos/symfony/translation/zipball/a35edc277513c9bc0f063ca174c36b346f974528",
 +                "reference": "a35edc277513c9bc0f063ca174c36b346f974528",
                  "shasum": ""
              },
              "require": {
              "type": "library",
              "extra": {
                  "branch-alias": {
 -                    "dev-master": "3.0-dev"
 +                    "dev-master": "3.1-dev"
                  }
              },
              "autoload": {
              ],
              "description": "Symfony Translation Component",
              "homepage": "https://symfony.com",
 -            "time": "2016-06-29 05:40:00"
 +            "time": "2016-08-05 08:37:39"
          },
          {
              "name": "symfony/var-dumper",
 -            "version": "v3.0.8",
 +            "version": "v3.1.4",
              "source": {
                  "type": "git",
                  "url": "https://github.com/symfony/var-dumper.git",
 -                "reference": "2f046e9a9d571f22cc8b26783564876713b06579"
 +                "reference": "62ee73706c421654a4c840028954510277f7dfc8"
              },
              "dist": {
                  "type": "zip",
 -                "url": "https://api.github.com/repos/symfony/var-dumper/zipball/2f046e9a9d571f22cc8b26783564876713b06579",
 -                "reference": "2f046e9a9d571f22cc8b26783564876713b06579",
 +                "url": "https://api.github.com/repos/symfony/var-dumper/zipball/62ee73706c421654a4c840028954510277f7dfc8",
 +                "reference": "62ee73706c421654a4c840028954510277f7dfc8",
                  "shasum": ""
              },
              "require": {
              "type": "library",
              "extra": {
                  "branch-alias": {
 -                    "dev-master": "3.0-dev"
 +                    "dev-master": "3.1-dev"
                  }
              },
              "autoload": {
                  "debug",
                  "dump"
              ],
 -            "time": "2016-06-29 05:40:00"
 +            "time": "2016-08-31 09:05:42"
          },
          {
              "name": "vlucas/phpdotenv",
 -            "version": "v2.3.0",
 +            "version": "v2.4.0",
              "source": {
                  "type": "git",
                  "url": "https://github.com/vlucas/phpdotenv.git",
 -                "reference": "9ca5644c536654e9509b9d257f53c58630eb2a6a"
 +                "reference": "3cc116adbe4b11be5ec557bf1d24dc5e3a21d18c"
              },
              "dist": {
                  "type": "zip",
 -                "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/9ca5644c536654e9509b9d257f53c58630eb2a6a",
 -                "reference": "9ca5644c536654e9509b9d257f53c58630eb2a6a",
 +                "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/3cc116adbe4b11be5ec557bf1d24dc5e3a21d18c",
 +                "reference": "3cc116adbe4b11be5ec557bf1d24dc5e3a21d18c",
                  "shasum": ""
              },
              "require": {
              "type": "library",
              "extra": {
                  "branch-alias": {
 -                    "dev-master": "2.3-dev"
 +                    "dev-master": "2.4-dev"
                  }
              },
              "autoload": {
                  "env",
                  "environment"
              ],
 -            "time": "2016-06-14 14:14:52"
 +            "time": "2016-09-01 10:05:43"
          }
      ],
      "packages-dev": [
              ],
              "time": "2015-05-11 14:41:42"
          },
 -        {
 -            "name": "icap/html-diff",
 -            "version": "v1.1.0",
 -            "source": {
 -                "type": "git",
 -                "url": "https://github.com/iCAPLyon1/HtmlDiff.git",
 -                "reference": "f58ddb196292ae585a2efb7692653d015ecc436f"
 -            },
 -            "dist": {
 -                "type": "zip",
 -                "url": "https://api.github.com/repos/iCAPLyon1/HtmlDiff/zipball/f58ddb196292ae585a2efb7692653d015ecc436f",
 -                "reference": "f58ddb196292ae585a2efb7692653d015ecc436f",
 -                "shasum": ""
 -            },
 -            "require": {
 -                "php": ">=5.3.0"
 -            },
 -            "require-dev": {
 -                "php": ">=5.3.0"
 -            },
 -            "type": "library",
 -            "autoload": {
 -                "psr-4": {
 -                    "Icap\\HtmlDiff\\": "src/Icap/HtmlDiff"
 -                }
 -            },
 -            "notification-url": "https://packagist.org/downloads/",
 -            "authors": [
 -                {
 -                    "name": "Panagiotis Tsavdaris",
 -                    "email": "[email protected]"
 -                },
 -                {
 -                    "name": "ICAP development team",
 -                    "homepage": "https://github.com/iCAPLyon1"
 -                }
 -            ],
 -            "description": "A PHP5 library that diffs (compares) HTML files.",
 -            "keywords": [
 -                "daisy diff",
 -                "html diff"
 -            ],
 -            "time": "2016-02-17 16:35:09"
 -        },
          {
              "name": "mockery/mockery",
              "version": "0.9.5",
              ],
              "time": "2016-05-22 21:52:33"
          },
-             "version": "1.5.2",
 +        {
 +            "name": "myclabs/deep-copy",
-                 "reference": "da8529775f14f4fdae33f916eb0cf65f6afbddbc"
++            "version": "1.5.4",
 +            "source": {
 +                "type": "git",
 +                "url": "https://github.com/myclabs/DeepCopy.git",
-                 "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/da8529775f14f4fdae33f916eb0cf65f6afbddbc",
-                 "reference": "da8529775f14f4fdae33f916eb0cf65f6afbddbc",
++                "reference": "ea74994a3dc7f8d2f65a06009348f2d63c81e61f"
 +            },
 +            "dist": {
 +                "type": "zip",
-             "time": "2016-09-06 16:07:05"
++                "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/ea74994a3dc7f8d2f65a06009348f2d63c81e61f",
++                "reference": "ea74994a3dc7f8d2f65a06009348f2d63c81e61f",
 +                "shasum": ""
 +            },
 +            "require": {
 +                "php": ">=5.4.0"
 +            },
 +            "require-dev": {
 +                "doctrine/collections": "1.*",
 +                "phpunit/phpunit": "~4.1"
 +            },
 +            "type": "library",
 +            "autoload": {
 +                "psr-4": {
 +                    "DeepCopy\\": "src/DeepCopy/"
 +                }
 +            },
 +            "notification-url": "https://packagist.org/downloads/",
 +            "license": [
 +                "MIT"
 +            ],
 +            "description": "Create deep copies (clones) of your objects",
 +            "homepage": "https://github.com/myclabs/DeepCopy",
 +            "keywords": [
 +                "clone",
 +                "copy",
 +                "duplicate",
 +                "object",
 +                "object graph"
 +            ],
++            "time": "2016-09-16 13:37:59"
 +        },
          {
              "name": "phpdocumentor/reflection-common",
              "version": "1.0",
              ],
              "time": "2016-06-10 07:14:17"
          },
 -        {
 -            "name": "phpspec/php-diff",
 -            "version": "v1.0.2",
 -            "source": {
 -                "type": "git",
 -                "url": "https://github.com/phpspec/php-diff.git",
 -                "reference": "30e103d19519fe678ae64a60d77884ef3d71b28a"
 -            },
 -            "dist": {
 -                "type": "zip",
 -                "url": "https://api.github.com/repos/phpspec/php-diff/zipball/30e103d19519fe678ae64a60d77884ef3d71b28a",
 -                "reference": "30e103d19519fe678ae64a60d77884ef3d71b28a",
 -                "shasum": ""
 -            },
 -            "type": "library",
 -            "autoload": {
 -                "psr-0": {
 -                    "Diff": "lib/"
 -                }
 -            },
 -            "notification-url": "https://packagist.org/downloads/",
 -            "license": [
 -                "BSD-3-Clause"
 -            ],
 -            "authors": [
 -                {
 -                    "name": "Chris Boulton",
 -                    "homepage": "http://github.com/chrisboulton",
 -                    "role": "Original developer"
 -                }
 -            ],
 -            "description": "A comprehensive library for generating differences between two hashable objects (strings or arrays).",
 -            "time": "2013-11-01 13:02:21"
 -        },
 -        {
 -            "name": "phpspec/phpspec",
 -            "version": "2.5.0",
 -            "source": {
 -                "type": "git",
 -                "url": "https://github.com/phpspec/phpspec.git",
 -                "reference": "385ecb015e97c13818074f1517928b24d4a26067"
 -            },
 -            "dist": {
 -                "type": "zip",
 -                "url": "https://api.github.com/repos/phpspec/phpspec/zipball/385ecb015e97c13818074f1517928b24d4a26067",
 -                "reference": "385ecb015e97c13818074f1517928b24d4a26067",
 -                "shasum": ""
 -            },
 -            "require": {
 -                "doctrine/instantiator": "^1.0.1",
 -                "ext-tokenizer": "*",
 -                "php": ">=5.3.3",
 -                "phpspec/php-diff": "~1.0.0",
 -                "phpspec/prophecy": "~1.4",
 -                "sebastian/exporter": "~1.0",
 -                "symfony/console": "~2.3|~3.0",
 -                "symfony/event-dispatcher": "~2.1|~3.0",
 -                "symfony/finder": "~2.1|~3.0",
 -                "symfony/process": "^2.6|~3.0",
 -                "symfony/yaml": "~2.1|~3.0"
 -            },
 -            "require-dev": {
 -                "behat/behat": "^3.0.11",
 -                "bossa/phpspec2-expect": "~1.0",
 -                "phpunit/phpunit": "~4.4",
 -                "symfony/filesystem": "~2.1|~3.0"
 -            },
 -            "suggest": {
 -                "phpspec/nyan-formatters": "~1.0 â€“ Adds Nyan formatters"
 -            },
 -            "bin": [
 -                "bin/phpspec"
 -            ],
 -            "type": "library",
 -            "extra": {
 -                "branch-alias": {
 -                    "dev-master": "2.2.x-dev"
 -                }
 -            },
 -            "autoload": {
 -                "psr-0": {
 -                    "PhpSpec": "src/"
 -                }
 -            },
 -            "notification-url": "https://packagist.org/downloads/",
 -            "license": [
 -                "MIT"
 -            ],
 -            "authors": [
 -                {
 -                    "name": "Konstantin Kudryashov",
 -                    "email": "[email protected]",
 -                    "homepage": "http://everzet.com"
 -                },
 -                {
 -                    "name": "Marcello Duarte",
 -                    "homepage": "http://marcelloduarte.net/"
 -                }
 -            ],
 -            "description": "Specification-oriented BDD framework for PHP 5.3+",
 -            "homepage": "http://phpspec.net/",
 -            "keywords": [
 -                "BDD",
 -                "SpecBDD",
 -                "TDD",
 -                "spec",
 -                "specification",
 -                "testing",
 -                "tests"
 -            ],
 -            "time": "2016-03-20 20:34:32"
 -        },
          {
              "name": "phpspec/prophecy",
              "version": "v1.6.1",
          },
          {
              "name": "phpunit/php-code-coverage",
 -            "version": "2.2.4",
 +            "version": "4.0.1",
              "source": {
                  "type": "git",
                  "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
 -                "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979"
 +                "reference": "5f3f7e736d6319d5f1fc402aff8b026da26709a3"
              },
              "dist": {
                  "type": "zip",
 -                "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/eabf68b476ac7d0f73793aada060f1c1a9bf8979",
 -                "reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979",
 +                "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/5f3f7e736d6319d5f1fc402aff8b026da26709a3",
 +                "reference": "5f3f7e736d6319d5f1fc402aff8b026da26709a3",
                  "shasum": ""
              },
              "require": {
 -                "php": ">=5.3.3",
 +                "php": "^5.6 || ^7.0",
                  "phpunit/php-file-iterator": "~1.3",
                  "phpunit/php-text-template": "~1.2",
 -                "phpunit/php-token-stream": "~1.3",
 -                "sebastian/environment": "^1.3.2",
 -                "sebastian/version": "~1.0"
 +                "phpunit/php-token-stream": "^1.4.2",
 +                "sebastian/code-unit-reverse-lookup": "~1.0",
 +                "sebastian/environment": "^1.3.2 || ^2.0",
 +                "sebastian/version": "~1.0|~2.0"
              },
              "require-dev": {
                  "ext-xdebug": ">=2.1.4",
 -                "phpunit/phpunit": "~4"
 +                "phpunit/phpunit": "^5.4"
              },
              "suggest": {
                  "ext-dom": "*",
 -                "ext-xdebug": ">=2.2.1",
 +                "ext-xdebug": ">=2.4.0",
                  "ext-xmlwriter": "*"
              },
              "type": "library",
              "extra": {
                  "branch-alias": {
 -                    "dev-master": "2.2.x-dev"
 +                    "dev-master": "4.0.x-dev"
                  }
              },
              "autoload": {
                  "testing",
                  "xunit"
              ],
 -            "time": "2015-10-06 15:47:00"
 +            "time": "2016-07-26 14:39:29"
          },
          {
              "name": "phpunit/php-file-iterator",
          },
          {
              "name": "phpunit/phpunit",
-             "version": "5.5.4",
 -            "version": "4.8.26",
++            "version": "5.5.5",
              "source": {
                  "type": "git",
                  "url": "https://github.com/sebastianbergmann/phpunit.git",
-                 "reference": "3e6e88e56c912133de6e99b87728cca7ed70c5f5"
 -                "reference": "fc1d8cd5b5de11625979125c5639347896ac2c74"
++                "reference": "a57126dc681b08289fef6ac96a48e30656f84350"
              },
              "dist": {
                  "type": "zip",
-                 "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3e6e88e56c912133de6e99b87728cca7ed70c5f5",
-                 "reference": "3e6e88e56c912133de6e99b87728cca7ed70c5f5",
 -                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/fc1d8cd5b5de11625979125c5639347896ac2c74",
 -                "reference": "fc1d8cd5b5de11625979125c5639347896ac2c74",
++                "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/a57126dc681b08289fef6ac96a48e30656f84350",
++                "reference": "a57126dc681b08289fef6ac96a48e30656f84350",
                  "shasum": ""
              },
              "require": {
                  "ext-dom": "*",
                  "ext-json": "*",
--                "ext-pcre": "*",
--                "ext-reflection": "*",
--                "ext-spl": "*",
 -                "php": ">=5.3.3",
++                "ext-libxml": "*",
++                "ext-mbstring": "*",
++                "ext-xml": "*",
 +                "myclabs/deep-copy": "~1.3",
 +                "php": "^5.6 || ^7.0",
                  "phpspec/prophecy": "^1.3.1",
 -                "phpunit/php-code-coverage": "~2.1",
 +                "phpunit/php-code-coverage": "^4.0.1",
                  "phpunit/php-file-iterator": "~1.4",
                  "phpunit/php-text-template": "~1.2",
                  "phpunit/php-timer": "^1.0.6",
 -                "phpunit/phpunit-mock-objects": "~2.3",
 +                "phpunit/phpunit-mock-objects": "^3.2",
                  "sebastian/comparator": "~1.1",
                  "sebastian/diff": "~1.2",
 -                "sebastian/environment": "~1.3",
 +                "sebastian/environment": "^1.3 || ^2.0",
                  "sebastian/exporter": "~1.2",
                  "sebastian/global-state": "~1.0",
 -                "sebastian/version": "~1.0",
 +                "sebastian/object-enumerator": "~1.0",
 +                "sebastian/resource-operations": "~1.0",
 +                "sebastian/version": "~1.0|~2.0",
                  "symfony/yaml": "~2.1|~3.0"
              },
 +            "conflict": {
 +                "phpdocumentor/reflection-docblock": "3.0.2"
 +            },
++            "require-dev": {
++                "ext-pdo": "*"
++            },
              "suggest": {
++                "ext-tidy": "*",
++                "ext-xdebug": "*",
                  "phpunit/php-invoker": "~1.1"
              },
              "bin": [
              "type": "library",
              "extra": {
                  "branch-alias": {
 -                    "dev-master": "4.8.x-dev"
 +                    "dev-master": "5.5.x-dev"
                  }
              },
              "autoload": {
                  "testing",
                  "xunit"
              ],
-             "time": "2016-08-26 07:11:44"
 -            "time": "2016-05-17 03:09:28"
++            "time": "2016-09-21 14:40:13"
          },
          {
              "name": "phpunit/phpunit-mock-objects",
 -            "version": "2.3.8",
 +            "version": "3.2.7",
              "source": {
                  "type": "git",
                  "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
 -                "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983"
 +                "reference": "546898a2c0c356ef2891b39dd7d07f5d82c8ed0a"
              },
              "dist": {
                  "type": "zip",
 -                "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/ac8e7a3db35738d56ee9a76e78a4e03d97628983",
 -                "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983",
 +                "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/546898a2c0c356ef2891b39dd7d07f5d82c8ed0a",
 +                "reference": "546898a2c0c356ef2891b39dd7d07f5d82c8ed0a",
                  "shasum": ""
              },
              "require": {
                  "doctrine/instantiator": "^1.0.2",
 -                "php": ">=5.3.3",
 -                "phpunit/php-text-template": "~1.2",
 -                "sebastian/exporter": "~1.2"
 +                "php": "^5.6 || ^7.0",
 +                "phpunit/php-text-template": "^1.2",
 +                "sebastian/exporter": "^1.2"
 +            },
 +            "conflict": {
 +                "phpunit/phpunit": "<5.4.0"
              },
              "require-dev": {
 -                "phpunit/phpunit": "~4.4"
 +                "phpunit/phpunit": "^5.4"
              },
              "suggest": {
                  "ext-soap": "*"
              "type": "library",
              "extra": {
                  "branch-alias": {
 -                    "dev-master": "2.3.x-dev"
 +                    "dev-master": "3.2.x-dev"
                  }
              },
              "autoload": {
                  "mock",
                  "xunit"
              ],
 -            "time": "2015-10-02 06:51:40"
 +            "time": "2016-09-06 16:07:45"
 +        },
 +        {
 +            "name": "sebastian/code-unit-reverse-lookup",
 +            "version": "1.0.0",
 +            "source": {
 +                "type": "git",
 +                "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
 +                "reference": "c36f5e7cfce482fde5bf8d10d41a53591e0198fe"
 +            },
 +            "dist": {
 +                "type": "zip",
 +                "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/c36f5e7cfce482fde5bf8d10d41a53591e0198fe",
 +                "reference": "c36f5e7cfce482fde5bf8d10d41a53591e0198fe",
 +                "shasum": ""
 +            },
 +            "require": {
 +                "php": ">=5.6"
 +            },
 +            "require-dev": {
 +                "phpunit/phpunit": "~5"
 +            },
 +            "type": "library",
 +            "extra": {
 +                "branch-alias": {
 +                    "dev-master": "1.0.x-dev"
 +                }
 +            },
 +            "autoload": {
 +                "classmap": [
 +                    "src/"
 +                ]
 +            },
 +            "notification-url": "https://packagist.org/downloads/",
 +            "license": [
 +                "BSD-3-Clause"
 +            ],
 +            "authors": [
 +                {
 +                    "name": "Sebastian Bergmann",
 +                    "email": "[email protected]"
 +                }
 +            ],
 +            "description": "Looks up which function or method a line of code belongs to",
 +            "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
 +            "time": "2016-02-13 06:45:14"
          },
          {
              "name": "sebastian/comparator",
          },
          {
              "name": "sebastian/environment",
 -            "version": "1.3.7",
 +            "version": "1.3.8",
              "source": {
                  "type": "git",
                  "url": "https://github.com/sebastianbergmann/environment.git",
 -                "reference": "4e8f0da10ac5802913afc151413bc8c53b6c2716"
 +                "reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea"
              },
              "dist": {
                  "type": "zip",
 -                "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/4e8f0da10ac5802913afc151413bc8c53b6c2716",
 -                "reference": "4e8f0da10ac5802913afc151413bc8c53b6c2716",
 +                "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/be2c607e43ce4c89ecd60e75c6a85c126e754aea",
 +                "reference": "be2c607e43ce4c89ecd60e75c6a85c126e754aea",
                  "shasum": ""
              },
              "require": {
 -                "php": ">=5.3.3"
 +                "php": "^5.3.3 || ^7.0"
              },
              "require-dev": {
 -                "phpunit/phpunit": "~4.4"
 +                "phpunit/phpunit": "^4.8 || ^5.0"
              },
              "type": "library",
              "extra": {
                  "environment",
                  "hhvm"
              ],
 -            "time": "2016-05-17 03:18:57"
 +            "time": "2016-08-18 05:49:44"
          },
          {
              "name": "sebastian/exporter",
              ],
              "time": "2015-10-12 03:26:01"
          },
 +        {
 +            "name": "sebastian/object-enumerator",
 +            "version": "1.0.0",
 +            "source": {
 +                "type": "git",
 +                "url": "https://github.com/sebastianbergmann/object-enumerator.git",
 +                "reference": "d4ca2fb70344987502567bc50081c03e6192fb26"
 +            },
 +            "dist": {
 +                "type": "zip",
 +                "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/d4ca2fb70344987502567bc50081c03e6192fb26",
 +                "reference": "d4ca2fb70344987502567bc50081c03e6192fb26",
 +                "shasum": ""
 +            },
 +            "require": {
 +                "php": ">=5.6",
 +                "sebastian/recursion-context": "~1.0"
 +            },
 +            "require-dev": {
 +                "phpunit/phpunit": "~5"
 +            },
 +            "type": "library",
 +            "extra": {
 +                "branch-alias": {
 +                    "dev-master": "1.0.x-dev"
 +                }
 +            },
 +            "autoload": {
 +                "classmap": [
 +                    "src/"
 +                ]
 +            },
 +            "notification-url": "https://packagist.org/downloads/",
 +            "license": [
 +                "BSD-3-Clause"
 +            ],
 +            "authors": [
 +                {
 +                    "name": "Sebastian Bergmann",
 +                    "email": "[email protected]"
 +                }
 +            ],
 +            "description": "Traverses array structures and object graphs to enumerate all referenced objects",
 +            "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
 +            "time": "2016-01-28 13:25:10"
 +        },
          {
              "name": "sebastian/recursion-context",
              "version": "1.0.2",
              "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
              "time": "2015-11-11 19:50:13"
          },
 +        {
 +            "name": "sebastian/resource-operations",
 +            "version": "1.0.0",
 +            "source": {
 +                "type": "git",
 +                "url": "https://github.com/sebastianbergmann/resource-operations.git",
 +                "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52"
 +            },
 +            "dist": {
 +                "type": "zip",
 +                "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52",
 +                "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52",
 +                "shasum": ""
 +            },
 +            "require": {
 +                "php": ">=5.6.0"
 +            },
 +            "type": "library",
 +            "extra": {
 +                "branch-alias": {
 +                    "dev-master": "1.0.x-dev"
 +                }
 +            },
 +            "autoload": {
 +                "classmap": [
 +                    "src/"
 +                ]
 +            },
 +            "notification-url": "https://packagist.org/downloads/",
 +            "license": [
 +                "BSD-3-Clause"
 +            ],
 +            "authors": [
 +                {
 +                    "name": "Sebastian Bergmann",
 +                    "email": "[email protected]"
 +                }
 +            ],
 +            "description": "Provides a list of PHP built-in functions that operate on resources",
 +            "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
 +            "time": "2015-07-28 20:34:47"
 +        },
          {
              "name": "sebastian/version",
 -            "version": "1.0.6",
 +            "version": "2.0.0",
              "source": {
                  "type": "git",
                  "url": "https://github.com/sebastianbergmann/version.git",
 -                "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6"
 +                "reference": "c829badbd8fdf16a0bad8aa7fa7971c029f1b9c5"
              },
              "dist": {
                  "type": "zip",
 -                "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6",
 -                "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6",
 +                "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c829badbd8fdf16a0bad8aa7fa7971c029f1b9c5",
 +                "reference": "c829badbd8fdf16a0bad8aa7fa7971c029f1b9c5",
                  "shasum": ""
              },
 +            "require": {
 +                "php": ">=5.6"
 +            },
              "type": "library",
 +            "extra": {
 +                "branch-alias": {
 +                    "dev-master": "2.0.x-dev"
 +                }
 +            },
              "autoload": {
                  "classmap": [
                      "src/"
              ],
              "description": "Library that helps with managing the version number of Git-hosted PHP projects",
              "homepage": "https://github.com/sebastianbergmann/version",
 -            "time": "2015-06-21 13:59:46"
 +            "time": "2016-02-04 12:56:52"
          },
          {
              "name": "symfony/css-selector",
 -            "version": "v3.1.2",
 +            "version": "v3.1.4",
              "source": {
                  "type": "git",
                  "url": "https://github.com/symfony/css-selector.git",
          },
          {
              "name": "symfony/dom-crawler",
 -            "version": "v3.1.2",
 +            "version": "v3.1.4",
              "source": {
                  "type": "git",
                  "url": "https://github.com/symfony/dom-crawler.git",
 -                "reference": "99ec4a23330fcd0c8667095f3ef7aa204ffd9dc0"
 +                "reference": "bb7395e8b1db3654de82b9f35d019958276de4d7"
              },
              "dist": {
                  "type": "zip",
 -                "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/99ec4a23330fcd0c8667095f3ef7aa204ffd9dc0",
 -                "reference": "99ec4a23330fcd0c8667095f3ef7aa204ffd9dc0",
 +                "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/bb7395e8b1db3654de82b9f35d019958276de4d7",
 +                "reference": "bb7395e8b1db3654de82b9f35d019958276de4d7",
                  "shasum": ""
              },
              "require": {
              ],
              "description": "Symfony DomCrawler Component",
              "homepage": "https://symfony.com",
 -            "time": "2016-06-29 05:41:56"
 +            "time": "2016-08-05 08:37:39"
          },
          {
              "name": "symfony/yaml",
 -            "version": "v3.1.2",
 +            "version": "v3.1.4",
              "source": {
                  "type": "git",
                  "url": "https://github.com/symfony/yaml.git",
 -                "reference": "2884c26ce4c1d61aebf423a8b912950fe7c764de"
 +                "reference": "f291ed25eb1435bddbe8a96caaef16469c2a092d"
              },
              "dist": {
                  "type": "zip",
 -                "url": "https://api.github.com/repos/symfony/yaml/zipball/2884c26ce4c1d61aebf423a8b912950fe7c764de",
 -                "reference": "2884c26ce4c1d61aebf423a8b912950fe7c764de",
 +                "url": "https://api.github.com/repos/symfony/yaml/zipball/f291ed25eb1435bddbe8a96caaef16469c2a092d",
 +                "reference": "f291ed25eb1435bddbe8a96caaef16469c2a092d",
                  "shasum": ""
              },
              "require": {
              ],
              "description": "Symfony Yaml Component",
              "homepage": "https://symfony.com",
 -            "time": "2016-06-29 05:41:56"
 +            "time": "2016-09-02 02:12:52"
          },
          {
              "name": "webmozart/assert",
 -            "version": "1.0.2",
 +            "version": "1.1.0",
              "source": {
                  "type": "git",
                  "url": "https://github.com/webmozart/assert.git",
 -                "reference": "30eed06dd6bc88410a4ff7f77b6d22f3ce13dbde"
 +                "reference": "bb2d123231c095735130cc8f6d31385a44c7b308"
              },
              "dist": {
                  "type": "zip",
 -                "url": "https://api.github.com/repos/webmozart/assert/zipball/30eed06dd6bc88410a4ff7f77b6d22f3ce13dbde",
 -                "reference": "30eed06dd6bc88410a4ff7f77b6d22f3ce13dbde",
 +                "url": "https://api.github.com/repos/webmozart/assert/zipball/bb2d123231c095735130cc8f6d31385a44c7b308",
 +                "reference": "bb2d123231c095735130cc8f6d31385a44c7b308",
                  "shasum": ""
              },
              "require": {
 -                "php": ">=5.3.3"
 +                "php": "^5.3.3|^7.0"
              },
              "require-dev": {
 -                "phpunit/phpunit": "^4.6"
 +                "phpunit/phpunit": "^4.6",
 +                "sebastian/version": "^1.0.1"
              },
              "type": "library",
              "extra": {
                  "branch-alias": {
 -                    "dev-master": "1.0-dev"
 +                    "dev-master": "1.2-dev"
                  }
              },
              "autoload": {
                  "check",
                  "validate"
              ],
 -            "time": "2015-08-24 13:29:44"
 +            "time": "2016-08-09 15:02:57"
          }
      ],
      "aliases": [],
      "prefer-stable": false,
      "prefer-lowest": false,
      "platform": {
-         "php": ">=5.6.4"
 -        "php": ">=5.5.9"
++        "php": ">=5.6.4",
++        "ext-tidy": "*"
      },
      "platform-dev": []
  }
index 42ca0a21f83dbb93dbe0a52c159a83c59eef2299,562bc9a4788ba66d4030bd9f82933ef9b3719cd3..e608295a806756b084f1ad7e12867933c2f74d6d
mode 100644,100755..100755
    }
  }
  
 +.draft-notification {
 +  pointer-events: none;
 +  transform: scale(0);
 +  transition: transform ease-in-out 120ms;
 +  transform-origin: 50% 50%;
 +  &.visible {
 +    transform: scale(1);
 +  }
 +}
 +
  .page-style.editor {
    padding: 0 !important;
  }
      margin: $-m 0;
    }
    table {
 -    word-break: break-all;
 -    word-break: break-word;
      hyphens: auto;
 +    table-layout: fixed;
 +    max-width: 100%;
 +    height: auto !important;
    }
+   // diffs
+   ins,
+   del {
+     text-decoration: none;
+   }
+   ins {
+     background: #dbffdb;
+   }
+   del {
+     background: #FFECEC;
+   }
  }
  
  // Page content pointers
    .tabs {
      display: block;
      border-right: 1px solid #DDD;
 -    width: 54px;
 -    flex: 0;
 +    width: 48px;
 +    flex: 0 1 auto;
    }
    .tabs i {
      color: rgba(0, 0, 0, 0.5);
  }
  
  .tag-display {
 -  margin: $-xl $-xs;
 +  margin: $-xl $-m;
    border: 1px solid #DDD;
    min-width: 180px;
    max-width: 320px;
      margin: 0;
      padding: 0;
    }
 -  span {
 -    color: #666;
 -    margin-left: $-s;
 -  }
 -  .heading {
 +  .heading th {
      padding: $-xs $-s;
 -    color: #444;
 +    color: #333;
 +    font-weight: 400;
    }
    td {
      border: 0;
    .tag-value {
      color: #888;
    }
 -  td i {
 -    color: #888;
 -  }
    tr:last-child td {
      border-bottom: none;
    }
index 2ddd4e0d8e38830fd0ce9a7375bac5b947e7f358,17ac115b8be2e9d97820cbd4b2fe4868284ff435..6ffe4b50237209d6f07e5683be265a1e3f4fd0ce
@@@ -4,25 -4,23 +4,29 @@@
  
      @if(count($page->tags) > 0)
          <div class="tag-display float right">
 -            <div class="heading primary-background-light">Page Tags</div>
              <table>
 -                @foreach($page->tags as $tag)
 -                    <tr class="tag">
 -                        <td @if(!$tag->value) colspan="2" @endif><a href="/search/all?term=%5B{{ urlencode($tag->name) }}%5D">{{ $tag->name }}</a></td>
 -                        @if($tag->value) <td class="tag-value"><a href="/search/all?term=%5B{{ urlencode($tag->name) }}%3D{{ urlencode($tag->value) }}%5D">{{$tag->value}}</a></td> @endif
 +                <thead>
 +                    <tr class="text-left heading primary-background-light">
 +                        <th colspan="2">Page Tags</th>
                      </tr>
 -                @endforeach
 +                </thead>
 +                <tbody>
 +                    @foreach($page->tags as $tag)
 +                        <tr class="tag">
 +                            <td @if(!$tag->value) colspan="2" @endif><a href="{{ baseUrl('/search/all?term=%5B' . urlencode($tag->name) .'%5D') }}">{{ $tag->name }}</a></td>
 +                            @if($tag->value) <td class="tag-value"><a href="{{ baseUrl('/search/all?term=%5B' . urlencode($tag->name) .'%3D' . urlencode($tag->value) . '%5D') }}">{{$tag->value}}</a></td> @endif
 +                        </tr>
 +                    @endforeach
 +                </tbody>
              </table>
          </div>
      @endif
  
      <div style="clear:left;"></div>
  
-     {!! $page->html !!}
+     @if (isset($diff) && $diff)
+         {!! $diff !!}
+     @else
+         {!! $page->html !!}
+     @endif
  </div>