# Stats from current release

Default Server Mode (Decrease detected ✓)

General Overall decrease ✓

|  | zeit/next.js canary v9.1.7 | zeit/next.js refs/tags/v9.1.8-canary.4 | Change |
| - | - | - | - |
| buildDuration | 13.4s | 12.9s | -432ms |
| nodeModulesSize | 48.9 MB | 48.9 MB | -17.4 kB |

Client Bundles (main, webpack, commons) Overall decrease ✓

|  | zeit/next.js canary v9.1.7 | zeit/next.js refs/tags/v9.1.8-canary.4 | Change |
| - | - | - | - |
| main-HASH.js gzip | 6.43 kB | 5.13 kB | -1.3 kB |
| webpack-HASH.js gzip | 746 B | 746 B | ✓ |
| 4952ddcd88e7..54d3.js gzip | 4.68 kB | 4.68 kB | ✓ |
| commons.HASH.js gzip | 4.06 kB | 4.06 kB | ✓ |
| de003c3a9d30..6ef5.js gzip | 13.8 kB | 13.7 kB | -136 B |
| framework.HASH.js gzip | 39.5 kB | 39.1 kB | -311 B |
| Overall change | 69.2 kB | 67.5 kB | -1.75 kB |

Client Bundles (main, webpack, commons) Modern Overall decrease ✓

|  | zeit/next.js canary v9.1.7 | zeit/next.js refs/tags/v9.1.8-canary.4 | Change |
| - | - | - | - |
| main-HASH.module.js gzip | 5.41 kB | 4.19 kB | -1.22 kB |
| webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
| 4952ddcd88e7..dule.js gzip | 5.56 kB | 5.56 kB | ✓ |
| de003c3a9d30..dule.js gzip | 12.6 kB | 12.5 kB | -114 B |
| framework.HA..dule.js gzip | 39.4 kB | 39.1 kB | -310 B |
| Overall change | 63.7 kB | 62.1 kB | -1.65 kB |

Legacy Client Bundles (polyfills)

|  | zeit/next.js canary v9.1.7 | zeit/next.js refs/tags/v9.1.8-canary.4 | Change |
| - | - | - | - |
| polyfills-HASH.js gzip | 4.76 kB | 4.76 kB | ✓ |
| Overall change | 4.76 kB | 4.76 kB | ✓ |

Client Pages Overall decrease ✓

|  | zeit/next.js canary v9.1.7 | zeit/next.js refs/tags/v9.1.8-canary.4 | Change |
| - | - | - | - |
| _app.js gzip | 1.33 kB | 1.33 kB | ✓ |
| _error.js gzip | 4.07 kB | 4.07 kB | ✓ |
| hooks.js gzip | 779 B | 779 B | ✓ |
| index.js gzip | 222 B | 222 B | ✓ |
| link.js gzip | 2.93 kB | 2.9 kB | -27 B |
| routerDirect.js gzip | 283 B | 283 B | ✓ |
| withRouter.js gzip | 282 B | 282 B | ✓ |
| Overall change | 9.89 kB | 9.87 kB | -27 B |

Client Pages Modern Overall decrease ✓

|  | zeit/next.js canary v9.1.7 | zeit/next.js refs/tags/v9.1.8-canary.4 | Change |
| - | - | - | - |
| _app.module.js gzip | 757 B | 757 B | ✓ |
| _error.module.js gzip | 3.06 kB | 3.06 kB | ✓ |
| hooks.module.js gzip | 371 B | 371 B | ✓ |
| index.module.js gzip | 212 B | 212 B | ✓ |
| link.module.js gzip | 2.49 kB | 2.47 kB | -23 B |
| routerDirect..dule.js gzip | 273 B | 273 B | ✓ |
| withRouter.m..dule.js gzip | 272 B | 272 B | ✓ |
| Overall change | 7.43 kB | 7.41 kB | -23 B |

Client Build Manifests

|  | zeit/next.js canary v9.1.7 | zeit/next.js refs/tags/v9.1.8-canary.4 | Change |
| - | - | - | - |
| _buildManifest.js gzip | 61 B | 61 B | ✓ |
| _buildManife..dule.js gzip | 61 B | 61 B | ✓ |
| Overall change | 122 B | 122 B | ✓ |

Rendered Page Sizes Overall decrease ✓

|  | zeit/next.js canary v9.1.7 | zeit/next.js refs/tags/v9.1.8-canary.4 | Change |
| - | - | - | - |
| index.html gzip | 1.04 kB | 1.02 kB | -14 B |
| link.html gzip | 1.04 kB | 1.03 kB | -13 B |
| withRouter.html gzip | 1.03 kB | 1.02 kB | -16 B |
| Overall change | 3.11 kB | 3.07 kB | -43 B |

#### Diffs

Diff for link.js

```diff
@@ -445,12 +445,8 @@

       var _react = _interopRequireWildcard(__webpack_require__('q1tI'))

-      var _propTypes = _interopRequireDefault(__webpack_require__('17x9'))
-
       var _router = _interopRequireDefault(__webpack_require__('nOHt'))

-      var _rewriteUrlForExport = __webpack_require__('P5f7')
-
       var _utils = __webpack_require__('g/15')

       function isLocal(href) {
@@ -755,6 +751,7 @@
                 // "<page>/index.html" directly.

                 if (false) {
+                  var rewriteUrlForNextExport
                 }

                 return _react['default'].cloneElement(child, props)
@@ -765,10 +762,8 @@
           return Link
         })(_react.Component)

-      Link.propTypes = void 0
-
       if (false) {
-        var exact, warn
+        var exact, PropTypes, warn
       }

       var _default = Link
```

Diff for link.module.js

```diff
@@ -320,12 +320,8 @@

       var _react = _interopRequireWildcard(__webpack_require__('q1tI'))

-      var _propTypes = _interopRequireDefault(__webpack_require__('17x9'))
-
       var _router = _interopRequireDefault(__webpack_require__('nOHt'))

-      var _rewriteUrlForExport = __webpack_require__('P5f7')
-
       var _utils = __webpack_require__('g/15')

       function isLocal(href) {
@@ -573,16 +569,15 @@
           // "<page>/index.html" directly.

           if (false) {
+            var rewriteUrlForNextExport
           }

           return _react.default.cloneElement(child, props)
         }
       }

-      Link.propTypes = void 0
-
       if (false) {
-        var exact, warn
+        var exact, PropTypes, warn
       }

       var _default = Link
```

Diff for de003c3a9d30..9a.module.js

```diff
@@ -1126,32 +1126,6 @@
       /***/
     },

-    /***/ P5f7: /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-
-      var _Object$defineProperty = __webpack_require__('hfKm')
-
-      _Object$defineProperty(exports, '__esModule', {
-        value: true,
-      })
-
-      function rewriteUrlForNextExport(url) {
-        var [pathname, hash] = url.split('#') // tslint:disable-next-line
-
-        var [path, qs] = pathname.split('?')
-        path = path.replace(/\/$/, '') // Append a trailing slash if this path does not have an extension
-
-        if (!/\.[^/]+\/?$/.test(path)) path += '/'
-        if (qs) path += '?' + qs
-        if (hash) path += '#' + hash
-        return path
-      }
-
-      exports.rewriteUrlForNextExport = rewriteUrlForNextExport
-
-      /***/
-    },
-
     /***/ PBE1: /***/ function(module, exports, __webpack_require__) {
       'use strict'
       // https://github.com/tc39/proposal-promise-finally
@@ -1811,8 +1785,6 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI

       var utils_1 = __webpack_require__('g/15')

-      var rewrite_url_for_export_1 = __webpack_require__('P5f7')
-
       var is_dynamic_1 = __webpack_require__('/jkW')

       var route_matcher_1 = __webpack_require__('gguc')
@@ -1970,7 +1942,11 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
         } // @deprecated backwards compatibility even though it's a private method.

         static _rewriteUrlForNextExport(url) {
-          return rewrite_url_for_export_1.rewriteUrlForNextExport(url)
+          if (false) {
+            var rewriteUrlForNextExport
+          } else {
+            return url
+          }
         }

         update(route, mod) {
@@ -2050,7 +2026,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
               this.isSsr = false
             } // marking route changes as a navigation start entry

-            if (utils_1.SUPPORTS_PERFORMANCE_USER_TIMING) {
+            if (utils_1.ST) {
               performance.mark('routeChange')
             } // If url and as provided as an object representation,
             // we'll format them into the string version here.
@@ -2064,6 +2040,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
             // "<page>/index.html" directly for the SSR page.

             if (false) {
+              var rewriteUrlForNextExport
             }

             this.abortComponentLoad(as) // If the url change is only related to a hash change
@@ -2609,9 +2586,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       }

       exports.formatWithValidation = formatWithValidation
-      exports.SUPPORTS_PERFORMANCE = typeof performance !== 'undefined'
-      exports.SUPPORTS_PERFORMANCE_USER_TIMING =
-        exports.SUPPORTS_PERFORMANCE &&
+      exports.SP = typeof performance !== 'undefined'
+      exports.ST =
+        exports.SP &&
         typeof performance.mark === 'function' &&
         typeof performance.measure === 'function'
```

Diff for de003c3a9d30..5fa7da92f.js

```diff
@@ -765,41 +765,6 @@
       /***/
     },

-    /***/ P5f7: /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-
-      var _slicedToArray = __webpack_require__('8+Nu')
-
-      var _Object$defineProperty = __webpack_require__('hfKm')
-
-      _Object$defineProperty(exports, '__esModule', {
-        value: true,
-      })
-
-      function rewriteUrlForNextExport(url) {
-        var _url$split = url.split('#'),
-          _url$split2 = _slicedToArray(_url$split, 2),
-          pathname = _url$split2[0],
-          hash = _url$split2[1] // tslint:disable-next-line
-
-        var _pathname$split = pathname.split('?'),
-          _pathname$split2 = _slicedToArray(_pathname$split, 2),
-          path = _pathname$split2[0],
-          qs = _pathname$split2[1]
-
-        path = path.replace(/\/$/, '') // Append a trailing slash if this path does not have an extension
-
-        if (!/\.[^/]+\/?$/.test(path)) path += '/'
-        if (qs) path += '?' + qs
-        if (hash) path += '#' + hash
-        return path
-      }
-
-      exports.rewriteUrlForNextExport = rewriteUrlForNextExport
-
-      /***/
-    },
-
     /***/ PBE1: /***/ function(module, exports, __webpack_require__) {
       'use strict'
       // https://github.com/tc39/proposal-promise-finally
@@ -1475,8 +1440,6 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI

       var utils_1 = __webpack_require__('g/15')

-      var rewrite_url_for_export_1 = __webpack_require__('P5f7')
-
       var is_dynamic_1 = __webpack_require__('/jkW')

       var route_matcher_1 = __webpack_require__('gguc')
@@ -1740,7 +1703,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                       _this2.isSsr = false
                     } // marking route changes as a navigation start entry

-                    if (utils_1.SUPPORTS_PERFORMANCE_USER_TIMING) {
+                    if (utils_1.ST) {
                       performance.mark('routeChange')
                     } // If url and as provided as an object representation,
                     // we'll format them into the string version here.
@@ -1756,6 +1719,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
                     // "<page>/index.html" directly for the SSR page.

                     if (false) {
+                      var rewriteUrlForNextExport
                     }

                     _this2.abortComponentLoad(as) // If the url change is only related to a hash change
@@ -2257,7 +2221,11 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
               {
                 key: '_rewriteUrlForNextExport',
                 value: function _rewriteUrlForNextExport(url) {
-                  return rewrite_url_for_export_1.rewriteUrlForNextExport(url)
+                  if (false) {
+                    var rewriteUrlForNextExport
+                  } else {
+                    return url
+                  }
                 },
               },
             ]
@@ -2532,9 +2500,9 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
       }

       exports.formatWithValidation = formatWithValidation
-      exports.SUPPORTS_PERFORMANCE = typeof performance !== 'undefined'
-      exports.SUPPORTS_PERFORMANCE_USER_TIMING =
-        exports.SUPPORTS_PERFORMANCE &&
+      exports.SP = typeof performance !== 'undefined'
+      exports.ST =
+        exports.SP &&
         typeof performance.mark === 'function' &&
         typeof performance.measure === 'function'
```

Diff for framework.HASH.js

```diff
@@ -432,100 +432,6 @@
       /***/
     },

-    /***/ '16Al': /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-      /**
-       * Copyright (c) 2013-present, Facebook, Inc.
-       *
-       * This source code is licensed under the MIT license found in the
-       * LICENSE file in the root directory of this source tree.
-       */
-
-      var ReactPropTypesSecret = __webpack_require__('WbBG')
-
-      function emptyFunction() {}
-      function emptyFunctionWithReset() {}
-      emptyFunctionWithReset.resetWarningCache = emptyFunction
-
-      module.exports = function() {
-        function shim(
-          props,
-          propName,
-          componentName,
-          location,
-          propFullName,
-          secret
-        ) {
-          if (secret === ReactPropTypesSecret) {
-            // It is still safe when called from React.
-            return
-          }
-          var err = new Error(
-            'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
-              'Use PropTypes.checkPropTypes() to call them. ' +
-              'Read more at http://fb.me/use-check-prop-types'
-          )
-          err.name = 'Invariant Violation'
-          throw err
-        }
-        shim.isRequired = shim
-        function getShim() {
-          return shim
-        }
-        // Important!
-        // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
-        var ReactPropTypes = {
-          array: shim,
-          bool: shim,
-          func: shim,
-          number: shim,
-          object: shim,
-          string: shim,
-          symbol: shim,
-
-          any: shim,
-          arrayOf: getShim,
-          element: shim,
-          elementType: shim,
-          instanceOf: getShim,
-          node: shim,
-          objectOf: getShim,
-          oneOf: getShim,
-          oneOfType: getShim,
-          shape: getShim,
-          exact: getShim,
-
-          checkPropTypes: emptyFunctionWithReset,
-          resetWarningCache: emptyFunction,
-        }
-
-        ReactPropTypes.PropTypes = ReactPropTypes
-
-        return ReactPropTypes
-      }
-
-      /***/
-    },
-
-    /***/ '17x9': /***/ function(module, exports, __webpack_require__) {
-      /**
-       * Copyright (c) 2013-present, Facebook, Inc.
-       *
-       * This source code is licensed under the MIT license found in the
-       * LICENSE file in the root directory of this source tree.
-       */
-
-      if (false) {
-        var throwOnDirectAccess, ReactIs
-      } else {
-        // By explicitly using `prop-types` you are opting into new production behavior.
-        // http://fb.me/prop-types-in-prod
-        module.exports = __webpack_require__('16Al')()
-      }
-
-      /***/
-    },
-
     /***/ QCnb: /***/ function(module, exports, __webpack_require__) {
       'use strict'

@@ -537,22 +443,6 @@
       /***/
     },

-    /***/ WbBG: /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-      /**
-       * Copyright (c) 2013-present, Facebook, Inc.
-       *
-       * This source code is licensed under the MIT license found in the
-       * LICENSE file in the root directory of this source tree.
-       */
-
-      var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'
-
-      module.exports = ReactPropTypesSecret
-
-      /***/
-    },
-
     /***/ i8i4: /***/ function(module, exports, __webpack_require__) {
       'use strict'
```

Diff for framework.HASH.module.js

```diff
@@ -432,100 +432,6 @@
       /***/
     },

-    /***/ '16Al': /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-      /**
-       * Copyright (c) 2013-present, Facebook, Inc.
-       *
-       * This source code is licensed under the MIT license found in the
-       * LICENSE file in the root directory of this source tree.
-       */
-
-      var ReactPropTypesSecret = __webpack_require__('WbBG')
-
-      function emptyFunction() {}
-      function emptyFunctionWithReset() {}
-      emptyFunctionWithReset.resetWarningCache = emptyFunction
-
-      module.exports = function() {
-        function shim(
-          props,
-          propName,
-          componentName,
-          location,
-          propFullName,
-          secret
-        ) {
-          if (secret === ReactPropTypesSecret) {
-            // It is still safe when called from React.
-            return
-          }
-          var err = new Error(
-            'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
-              'Use PropTypes.checkPropTypes() to call them. ' +
-              'Read more at http://fb.me/use-check-prop-types'
-          )
-          err.name = 'Invariant Violation'
-          throw err
-        }
-        shim.isRequired = shim
-        function getShim() {
-          return shim
-        }
-        // Important!
-        // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
-        var ReactPropTypes = {
-          array: shim,
-          bool: shim,
-          func: shim,
-          number: shim,
-          object: shim,
-          string: shim,
-          symbol: shim,
-
-          any: shim,
-          arrayOf: getShim,
-          element: shim,
-          elementType: shim,
-          instanceOf: getShim,
-          node: shim,
-          objectOf: getShim,
-          oneOf: getShim,
-          oneOfType: getShim,
-          shape: getShim,
-          exact: getShim,
-
-          checkPropTypes: emptyFunctionWithReset,
-          resetWarningCache: emptyFunction,
-        }
-
-        ReactPropTypes.PropTypes = ReactPropTypes
-
-        return ReactPropTypes
-      }
-
-      /***/
-    },
-
-    /***/ '17x9': /***/ function(module, exports, __webpack_require__) {
-      /**
-       * Copyright (c) 2013-present, Facebook, Inc.
-       *
-       * This source code is licensed under the MIT license found in the
-       * LICENSE file in the root directory of this source tree.
-       */
-
-      if (false) {
-        var throwOnDirectAccess, ReactIs
-      } else {
-        // By explicitly using `prop-types` you are opting into new production behavior.
-        // http://fb.me/prop-types-in-prod
-        module.exports = __webpack_require__('16Al')()
-      }
-
-      /***/
-    },
-
     /***/ QCnb: /***/ function(module, exports, __webpack_require__) {
       'use strict'

@@ -537,22 +443,6 @@
       /***/
     },

-    /***/ WbBG: /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-      /**
-       * Copyright (c) 2013-present, Facebook, Inc.
-       *
-       * This source code is licensed under the MIT license found in the
-       * LICENSE file in the root directory of this source tree.
-       */
-
-      var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'
-
-      module.exports = ReactPropTypesSecret
-
-      /***/
-    },
-
     /***/ i8i4: /***/ function(module, exports, __webpack_require__) {
       'use strict'
```

Diff for main-HASH.js

```diff
@@ -95,87 +95,6 @@
       /***/
     },

-    /***/ '/h46': /***/ function(module, exports, __webpack_require__) {
-      // https://tc39.github.io/proposal-setmap-offrom/#sec-map.of
-      __webpack_require__('cHUd')('Map')
-
-      /***/
-    },
-
-    /***/ '0IRE': /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-
-      var _Map = __webpack_require__('LX0d')
-
-      var _classCallCheck = __webpack_require__('/HRN')
-
-      var _createClass = __webpack_require__('WaGi')
-
-      var _Object$defineProperty = __webpack_require__('hfKm')
-
-      _Object$defineProperty(exports, '__esModule', {
-        value: true,
-      })
-
-      var DataManager =
-        /*#__PURE__*/
-        (function() {
-          function DataManager(data) {
-            _classCallCheck(this, DataManager)
-
-            this.data = new _Map(data)
-          }
-
-          _createClass(DataManager, [
-            {
-              key: 'getData',
-              value: function getData() {
-                return this.data
-              },
-            },
-            {
-              key: 'get',
-              value: function get(key) {
-                return this.data.get(key)
-              },
-            },
-            {
-              key: 'set',
-              value: function set(key, value) {
-                this.data.set(key, value)
-              },
-            },
-            {
-              key: 'overwrite',
-              value: function overwrite(data) {
-                this.data = new _Map(data)
-              },
-            },
-          ])
-
-          return DataManager
-        })()
-
-      exports.DataManager = DataManager
-
-      /***/
-    },
-
-    /***/ '8iia': /***/ function(module, exports, __webpack_require__) {
-      // https://github.com/DavidBruant/Map-Set.prototype.toJSON
-      var classof = __webpack_require__('QMMT')
-      var from = __webpack_require__('RRc/')
-      module.exports = function(NAME) {
-        return function toJSON() {
-          if (classof(this) != NAME)
-            throw TypeError(NAME + "#toJSON isn't generic")
-          return from(this)
-        }
-      }
-
-      /***/
-    },
-
     /***/ ApPD: /***/ function(module, exports, __webpack_require__) {
       // 19.1.2.9 Object.getPrototypeOf(O)
       var toObject = __webpack_require__('JB68')
@@ -428,7 +347,7 @@
       exports.renderError = renderError
       exports[
         'default'
-      ] = exports.emitter = exports.ErrorComponent = exports.router = exports.dataManager = exports.version = void 0
+      ] = exports.emitter = exports.router = exports.version = void 0

       var _asyncToGenerator2 = _interopRequireDefault(
         __webpack_require__('+oT+')
@@ -460,12 +379,8 @@

       var _headManagerContext = __webpack_require__('FYa8')

-      var _dataManagerContext = __webpack_require__('qArv')
-
       var _routerContext = __webpack_require__('qOIg')

-      var _dataManager = __webpack_require__('0IRE')
-
       var _querystring = __webpack_require__('s4NR')

       var _isDynamic = __webpack_require__('/jkW')
@@ -479,7 +394,7 @@
         document.getElementById('__NEXT_DATA__').textContent
       )
       window.__NEXT_DATA__ = data
-      var version = '9.1.7'
+      var version = '9.1.8-canary.4'
       exports.version = version
       var props = data.props,
         err = data.err,
@@ -489,9 +404,6 @@
         assetPrefix = data.assetPrefix,
         runtimeConfig = data.runtimeConfig,
         dynamicIds = data.dynamicIds
-      var d = JSON.parse(window.__NEXT_DATA__.dataManager)
-      var dataManager = new _dataManager.DataManager(d)
-      exports.dataManager = dataManager
       var prefix = assetPrefix || '' // With dynamic assetPrefix it's no longer possible to set assetPrefix at the build time
       // So, this is how we do it in the client side at runtime

@@ -526,7 +438,6 @@
       var router
       exports.router = router
       var ErrorComponent
-      exports.ErrorComponent = ErrorComponent
       var Component
       var App, onPerfEntry

@@ -584,6 +495,7 @@
                       // client-side hydration. Your app should _never_ use this property.
                       // It may change at any time without notice.
                       _h: 1,
+                      shallow: true,
                     }
                   )
                 }
@@ -749,7 +661,6 @@
                                 Component: Component,
                                 props: props,
                                 err: err,
-                                emitter: emitter,
                               })
                             },
                           }
@@ -763,7 +674,6 @@
                           Component: Component,
                           props: props,
                           err: initialErr,
-                          emitter: emitter,
                         }
                         render(renderCtx)
                         return _context.abrupt('return', emitter)
@@ -885,7 +795,7 @@
                     return pageLoader.loadPage('/_error')

                   case 7:
-                    exports.ErrorComponent = ErrorComponent = _context3.sent
+                    ErrorComponent = _context3.sent
                     // In production we do a normal render with the `ErrorComponent` as component.
                     // If we've gotten here upon initial render, we can use the props from the server.
                     // Otherwise, we need to call `getInitialProps` on `App` before mounting.
@@ -946,7 +856,7 @@

       function renderReactElement(reactEl, domEl) {
         // mark start of hydrate/render
-        if (_utils.SUPPORTS_PERFORMANCE_USER_TIMING) {
+        if (_utils.ST) {
           performance.mark('beforeRender')
         }

@@ -963,7 +873,7 @@
           }
         }

-        if (onPerfEntry && _utils.SUPPORTS_PERFORMANCE_USER_TIMING) {
+        if (onPerfEntry && _utils.ST) {
           if (!(PerformanceObserver in window)) {
             window.addEventListener('load', function() {
               performance.getEntriesByType('paint').forEach(onPerfEntry)
@@ -980,7 +890,7 @@
       }

       function markHydrateComplete() {
-        if (!_utils.SUPPORTS_PERFORMANCE_USER_TIMING) return
+        if (!_utils.ST) return
         performance.mark('afterHydrate') // mark end of hydration

         performance.measure(
@@ -999,7 +909,7 @@
       }

       function markRenderComplete() {
-        if (!_utils.SUPPORTS_PERFORMANCE_USER_TIMING) return
+        if (!_utils.ST) return
         performance.mark('afterRender') // mark end of render

         var navStartEntries = performance.getEntriesByName(
@@ -1064,17 +974,11 @@
               value: (0, _router.makePublicRouterInstance)(router),
             },
             _react['default'].createElement(
-              _dataManagerContext.DataManagerContext.Provider,
+              _headManagerContext.HeadManagerContext.Provider,
               {
-                value: dataManager,
+                value: headManager.updateHead,
               },
-              _react['default'].createElement(
-                _headManagerContext.HeadManagerContext.Provider,
-                {
-                  value: headManager.updateHead,
-                },
-                children
-              )
+              children
             )
           )
         )
@@ -1219,12 +1123,6 @@
       /***/
     },

-    /***/ LX0d: /***/ function(module, exports, __webpack_require__) {
-      module.exports = __webpack_require__('UDep')
-
-      /***/
-    },
-
     /***/ N9n2: /***/ function(module, exports, __webpack_require__) {
       var _Object$create = __webpack_require__('SqZg')

@@ -1255,217 +1153,6 @@
       /***/
     },

-    /***/ 'RRc/': /***/ function(module, exports, __webpack_require__) {
-      var forOf = __webpack_require__('oioR')
-
-      module.exports = function(iter, ITERATOR) {
-        var result = []
-        forOf(iter, false, result.push, result, ITERATOR)
-        return result
-      }
-
-      /***/
-    },
-
-    /***/ UDep: /***/ function(module, exports, __webpack_require__) {
-      __webpack_require__('wgeU')
-      __webpack_require__('FlQf')
-      __webpack_require__('bBy9')
-      __webpack_require__('g33z')
-      __webpack_require__('XLbu')
-      __webpack_require__('/h46')
-      __webpack_require__('dVTT')
-      module.exports = __webpack_require__('WEpk').Map
-
-      /***/
-    },
-
-    /***/ Wu5q: /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-
-      var dP = __webpack_require__('2faE').f
-      var create = __webpack_require__('oVml')
-      var redefineAll = __webpack_require__('XJU/')
-      var ctx = __webpack_require__('2GTP')
-      var anInstance = __webpack_require__('EXMj')
-      var forOf = __webpack_require__('oioR')
-      var $iterDefine = __webpack_require__('MPFp')
-      var step = __webpack_require__('UO39')
-      var setSpecies = __webpack_require__('TJWN')
-      var DESCRIPTORS = __webpack_require__('jmDH')
-      var fastKey = __webpack_require__('6/1s').fastKey
-      var validate = __webpack_require__('n3ko')
-      var SIZE = DESCRIPTORS ? '_s' : 'size'
-
-      var getEntry = function(that, key) {
-        // fast case
-        var index = fastKey(key)
-        var entry
-        if (index !== 'F') return that._i[index]
-        // frozen object case
-        for (entry = that._f; entry; entry = entry.n) {
-          if (entry.k == key) return entry
-        }
-      }
-
-      module.exports = {
-        getConstructor: function(wrapper, NAME, IS_MAP, ADDER) {
-          var C = wrapper(function(that, iterable) {
-            anInstance(that, C, NAME, '_i')
-            that._t = NAME // collection type
-            that._i = create(null) // index
-            that._f = undefined // first entry
-            that._l = undefined // last entry
-            that[SIZE] = 0 // size
-            if (iterable != undefined)
-              forOf(iterable, IS_MAP, that[ADDER], that)
-          })
-          redefineAll(C.prototype, {
-            // 23.1.3.1 Map.prototype.clear()
-            // 23.2.3.2 Set.prototype.clear()
-            clear: function clear() {
-              for (
-                var that = validate(this, NAME),
-                  data = that._i,
-                  entry = that._f;
-                entry;
-                entry = entry.n
-              ) {
-                entry.r = true
-                if (entry.p) entry.p = entry.p.n = undefined
-                delete data[entry.i]
-              }
-              that._f = that._l = undefined
-              that[SIZE] = 0
-            },
-            // 23.1.3.3 Map.prototype.delete(key)
-            // 23.2.3.4 Set.prototype.delete(value)
-            delete: function(key) {
-              var that = validate(this, NAME)
-              var entry = getEntry(that, key)
-              if (entry) {
-                var next = entry.n
-                var prev = entry.p
-                delete that._i[entry.i]
-                entry.r = true
-                if (prev) prev.n = next
-                if (next) next.p = prev
-                if (that._f == entry) that._f = next
-                if (that._l == entry) that._l = prev
-                that[SIZE]--
-              }
-              return !!entry
-            },
-            // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
-            // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
-            forEach: function forEach(callbackfn /* , that = undefined */) {
-              validate(this, NAME)
-              var f = ctx(
-                callbackfn,
-                arguments.length > 1 ? arguments[1] : undefined,
-                3
-              )
-              var entry
-              while ((entry = entry ? entry.n : this._f)) {
-                f(entry.v, entry.k, this)
-                // revert to the last existing entry
-                while (entry && entry.r) entry = entry.p
-              }
-            },
-            // 23.1.3.7 Map.prototype.has(key)
-            // 23.2.3.7 Set.prototype.has(value)
-            has: function has(key) {
-              return !!getEntry(validate(this, NAME), key)
-            },
-          })
-          if (DESCRIPTORS)
-            dP(C.prototype, 'size', {
-              get: function() {
-                return validate(this, NAME)[SIZE]
-              },
-            })
-          return C
-        },
-        def: function(that, key, value) {
-          var entry = getEntry(that, key)
-          var prev, index
-          // change existing entry
-          if (entry) {
-            entry.v = value
-            // create new entry
-          } else {
-            that._l = entry = {
-              i: (index = fastKey(key, true)), // <- index
-              k: key, // <- key
-              v: value, // <- value
-              p: (prev = that._l), // <- previous entry
-              n: undefined, // <- next entry
-              r: false, // <- removed
-            }
-            if (!that._f) that._f = entry
-            if (prev) prev.n = entry
-            that[SIZE]++
-            // add to index
-            if (index !== 'F') that._i[index] = entry
-          }
-          return that
-        },
-        getEntry: getEntry,
-        setStrong: function(C, NAME, IS_MAP) {
-          // add .keys, .values, .entries, [@@iterator]
-          // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
-          $iterDefine(
-            C,
-            NAME,
-            function(iterated, kind) {
-              this._t = validate(iterated, NAME) // target
-              this._k = kind // kind
-              this._l = undefined // previous
-            },
-            function() {
-              var that = this
-              var kind = that._k
-              var entry = that._l
-              // revert to the last existing entry
-              while (entry && entry.r) entry = entry.p
-              // get next entry
-              if (
-                !that._t ||
-                !(that._l = entry = entry ? entry.n : that._t._f)
-              ) {
-                // or finish the iteration
-                that._t = undefined
-                return step(1)
-              }
-              // return step by kind
-              if (kind == 'keys') return step(0, entry.k)
-              if (kind == 'values') return step(0, entry.v)
-              return step(0, [entry.k, entry.v])
-            },
-            IS_MAP ? 'entries' : 'values',
-            !IS_MAP,
-            true
-          )
-
-          // add [@@species], 23.1.2.2, 23.2.2.2
-          setSpecies(NAME)
-        },
-      }
-
-      /***/
-    },
-
-    /***/ XLbu: /***/ function(module, exports, __webpack_require__) {
-      // https://github.com/DavidBruant/Map-Set.prototype.toJSON
-      var $export = __webpack_require__('Y7ZC')
-
-      $export($export.P + $export.R, 'Map', {
-        toJSON: __webpack_require__('8iia')('Map'),
-      })
-
-      /***/
-    },
-
     /***/ ZDA2: /***/ function(module, exports, __webpack_require__) {
       var _typeof = __webpack_require__('iZP3')

@@ -1487,75 +1174,6 @@
       /***/
     },

-    /***/ dVTT: /***/ function(module, exports, __webpack_require__) {
-      // https://tc39.github.io/proposal-setmap-offrom/#sec-map.from
-      __webpack_require__('aPfg')('Map')
-
-      /***/
-    },
-
-    /***/ g33z: /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-
-      var strong = __webpack_require__('Wu5q')
-      var validate = __webpack_require__('n3ko')
-      var MAP = 'Map'
-
-      // 23.1 Map Objects
-      module.exports = __webpack_require__('raTm')(
-        MAP,
-        function(get) {
-          return function Map() {
-            return get(this, arguments.length > 0 ? arguments[0] : undefined)
-          }
-        },
-        {
-          // 23.1.3.6 Map.prototype.get(key)
-          get: function get(key) {
-            var entry = strong.getEntry(validate(this, MAP), key)
-            return entry && entry.v
-          },
-          // 23.1.3.9 Map.prototype.set(key, value)
-          set: function set(key, value) {
-            return strong.def(validate(this, MAP), key === 0 ? 0 : key, value)
-          },
-        },
-        strong,
-        true
-      )
-
-      /***/
-    },
-
-    /***/ qArv: /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-
-      var _Object$defineProperty = __webpack_require__('hfKm')
-
-      var __importStar =
-        (this && this.__importStar) ||
-        function(mod) {
-          if (mod && mod.__esModule) return mod
-          var result = {}
-          if (mod != null)
-            for (var k in mod) {
-              if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]
-            }
-          result['default'] = mod
-          return result
-        }
-
-      _Object$defineProperty(exports, '__esModule', {
-        value: true,
-      })
-
-      var React = __importStar(__webpack_require__('q1tI'))
-
-      exports.DataManagerContext = React.createContext(null)
-
-      /***/
-    },
-
     /***/ yLiY: /***/ function(module, exports, __webpack_require__) {
       'use strict'

@@ -1583,8 +1201,6 @@
     /***/ zmvN: /***/ function(module, exports, __webpack_require__) {
       'use strict'

-      var _regeneratorRuntime = __webpack_require__('ln6h')
-
       var _classCallCheck = __webpack_require__('/HRN')

       var _createClass = __webpack_require__('WaGi')
@@ -1594,10 +1210,6 @@
       exports.__esModule = true
       exports['default'] = void 0

-      var _asyncToGenerator2 = _interopRequireDefault(
-        __webpack_require__('+oT+')
-      )
-
       var _promise = _interopRequireDefault(__webpack_require__('eVuF'))

       var _mitt = _interopRequireDefault(__webpack_require__('dZ6Y'))
@@ -1617,6 +1229,18 @@
             'prefetch'
       var hasNoModule = 'noModule' in document.createElement('script')

+      function normalizeRoute(route) {
+        if (route[0] !== '/') {
+          throw new Error(
+            'Route name should start with a "/", got "' + route + '"'
+          )
+        }
+
+        route = route.replace(/\/index$/, '/')
+        if (route === '/') return route
+        return route.replace(/\/$/, '')
+      }
+
       function appendLink(href, rel, as) {
         return new _promise['default'](function(res, rej, link) {
           link = document.createElement('link')
@@ -1662,31 +1286,19 @@
             {
               key: 'getDependencies',
               value: function getDependencies(route) {
+                var _this = this
+
                 return this.promisedBuildManifest.then(function(man) {
                   return (
                     (man[route] &&
                       man[route].map(function(url) {
-                        return '/_next/' + encodeURI(url)
+                        return _this.assetPrefix + '/_next/' + encodeURI(url)
                       })) ||
                     []
                   )
                 })
               },
             },
-            {
-              key: 'normalizeRoute',
-              value: function normalizeRoute(route) {
-                if (route[0] !== '/') {
-                  throw new Error(
-                    'Route name should start with a "/", got "' + route + '"'
-                  )
-                }
-
-                route = route.replace(/\/index$/, '/')
-                if (route === '/') return route
-                return route.replace(/\/$/, '')
-              },
-            },
             {
               key: 'loadPage',
               value: function loadPage(route) {
@@ -1698,18 +1310,18 @@
             {
               key: 'loadPageScript',
               value: function loadPageScript(route) {
-                var _this3 = this
+                var _this2 = this

-                route = this.normalizeRoute(route)
+                route = normalizeRoute(route)
                 return new _promise['default'](function(resolve, reject) {
                   var fire = function fire(_ref) {
                     var error = _ref.error,
                       page = _ref.page,
                       mod = _ref.mod

-                    _this3.pageRegisterEvents.off(route, fire)
+                    _this2.pageRegisterEvents.off(route, fire)

-                    delete _this3.loadingRoutes[route]
+                    delete _this2.loadingRoutes[route]

                     if (error) {
                       reject(error)
@@ -1721,7 +1333,7 @@
                     }
                   } // If there's a cached version of the page, let's use it.

-                  var cachedPage = _this3.pageCache[route]
+                  var cachedPage = _this2.pageCache[route]

                   if (cachedPage) {
                     var error = cachedPage.error,
@@ -1736,7 +1348,7 @@
                     return
                   } // Register a listener to get the page

-                  _this3.pageRegisterEvents.on(route, fire) // If the page is loading via SSR, we need to wait for it
+                  _this2.pageRegisterEvents.on(route, fire) // If the page is loading via SSR, we need to wait for it
                   // rather downloading it again.

                   if (
@@ -1747,17 +1359,17 @@
                     return
                   }

-                  if (!_this3.loadingRoutes[route]) {
-                    _this3.loadingRoutes[route] = true
+                  if (!_this2.loadingRoutes[route]) {
+                    _this2.loadingRoutes[route] = true

                     if (true) {
-                      _this3.getDependencies(route).then(function(deps) {
+                      _this2.getDependencies(route).then(function(deps) {
                         deps.forEach(function(d) {
                           if (
                             /\.js$/.test(d) &&
                             !document.querySelector('script[src^="' + d + '"]')
                           ) {
-                            _this3.loadScript(d, route, false)
+                            _this2.loadScript(d, route, false)
                           }

                           if (
@@ -1773,7 +1385,7 @@
                           }
                         })

-                        _this3.loadRoute(route)
+                        _this2.loadRoute(route)
                       })
                     } else {
                     }
@@ -1784,45 +1396,21 @@
             {
               key: 'loadRoute',
               value: function loadRoute(route) {
-                var _this = this
-
-                return (0, _asyncToGenerator2['default'])(
-                  /*#__PURE__*/
-                  _regeneratorRuntime.mark(function _callee() {
-                    var scriptRoute, url
-                    return _regeneratorRuntime.wrap(function _callee$(
-                      _context
-                    ) {
-                      while (1) {
-                        switch ((_context.prev = _context.next)) {
-                          case 0:
-                            route = _this.normalizeRoute(route)
-                            scriptRoute =
-                              route === '/' ? '/index.js' : route + '.js'
-                            url =
-                              _this.assetPrefix +
-                              '/_next/static/' +
-                              encodeURIComponent(_this.buildId) +
-                              '/pages' +
-                              encodeURI(scriptRoute)
-
-                            _this.loadScript(url, route, true)
-
-                          case 4:
-                          case 'end':
-                            return _context.stop()
-                        }
-                      }
-                    },
-                    _callee)
-                  })
-                )()
+                route = normalizeRoute(route)
+                var scriptRoute = route === '/' ? '/index.js' : route + '.js'
+                var url =
+                  this.assetPrefix +
+                  '/_next/static/' +
+                  encodeURIComponent(this.buildId) +
+                  '/pages' +
+                  encodeURI(scriptRoute)
+                this.loadScript(url, route, true)
               },
             },
             {
               key: 'loadScript',
               value: function loadScript(url, route, isPage) {
-                var _this4 = this
+                var _this3 = this

                 var script = document.createElement('script')

@@ -1840,7 +1428,7 @@
                   var error = new Error('Error loading script ' + url)
                   error.code = 'PAGE_LOAD_ERROR'

-                  _this4.pageRegisterEvents.emit(route, {
+                  _this3.pageRegisterEvents.emit(route, {
                     error: error,
                   })
                 }
@@ -1851,7 +1439,7 @@
             {
               key: 'registerPage',
               value: function registerPage(route, regFn) {
-                var _this5 = this
+                var _this4 = this

                 var register = function register() {
                   try {
@@ -1860,15 +1448,15 @@
                       page: mod['default'] || mod,
                       mod: mod,
                     }
-                    _this5.pageCache[route] = pageData
+                    _this4.pageCache[route] = pageData

-                    _this5.pageRegisterEvents.emit(route, pageData)
+                    _this4.pageRegisterEvents.emit(route, pageData)
                   } catch (error) {
-                    _this5.pageCache[route] = {
+                    _this4.pageCache[route] = {
                       error: error,
                     }

-                    _this5.pageRegisterEvents.emit(route, {
+                    _this4.pageRegisterEvents.emit(route, {
                       error: error,
                     })
                   }
@@ -1884,110 +1472,73 @@
             {
               key: 'prefetch',
               value: function prefetch(route, isDependency) {
-                var _this2 = this
+                var _this5 = this

-                return (0, _asyncToGenerator2['default'])(
-                  /*#__PURE__*/
-                  _regeneratorRuntime.mark(function _callee2() {
-                    var cn, url, scriptRoute
-                    return _regeneratorRuntime.wrap(function _callee2$(
-                      _context2
-                    ) {
-                      while (1) {
-                        switch ((_context2.prev = _context2.next)) {
-                          case 0:
-                            if (!(cn = navigator.connection)) {
-                              _context2.next = 3
-                              break
-                            }
-
-                            if (!(cn.saveData || /2g/.test(cn.effectiveType))) {
-                              _context2.next = 3
-                              break
-                            }
-
-                            return _context2.abrupt('return')
-
-                          case 3:
-                            url = _this2.assetPrefix
-
-                            if (isDependency) {
-                              url += route
-                            } else {
-                              route = _this2.normalizeRoute(route)
-                              _this2.prefetched[route] = true
-                              scriptRoute =
-                                (route === '/' ? '/index' : route) + '.js'
-
-                              if (true && hasNoModule) {
-                                scriptRoute = scriptRoute.replace(
-                                  /\.js$/,
-                                  '.module.js'
-                                )
-                              }
-
-                              url +=
-                                '/_next/static/' +
-                                encodeURIComponent(_this2.buildId) +
-                                '/pages' +
-                                encodeURI(scriptRoute)
-                            }
-
-                            if (
-                              !document.querySelector(
-                                'link[rel="' +
-                                  relPrefetch +
-                                  '"][href^="' +
-                                  url +
-                                  '"], script[data-next-page="' +
-                                  route +
-                                  '"]'
-                              )
-                            ) {
-                              _context2.next = 7
-                              break
-                            }
-
-                            return _context2.abrupt('return')
-
-                          case 7:
-                            return _context2.abrupt(
-                              'return',
-                              _promise['default']
-                                .all([
-                                  appendLink(
-                                    url,
-                                    relPrefetch,
-                                    url.match(/\.css$/) ? 'style' : 'script'
-                                  ),
-                                  true &&
-                                    !isDependency &&
-                                    _this2
-                                      .getDependencies(route)
-                                      .then(function(urls) {
-                                        return _promise['default'].all(
-                                          urls.map(function(url) {
-                                            return _this2.prefetch(url, true)
-                                          })
-                                        )
-                                      }),
-                                ])
-                                .then(
-                                  // do not return any data
-                                  function() {}, // swallow prefetch errors
-                                  function() {}
-                                )
-                            )
+                // https://github.com/GoogleChromeLabs/quicklink/blob/453a661fa1fa940e2d2e044452398e38c67a98fb/src/index.mjs#L115-L118
+                // License: Apache 2.0
+                var cn

-                          case 8:
-                          case 'end':
-                            return _context2.stop()
-                        }
-                      }
-                    },
-                    _callee2)
-                  })
-                )()
+                if ((cn = navigator.connection)) {
+                  // Don't prefetch if using 2G or if Save-Data is enabled.
+                  if (cn.saveData || /2g/.test(cn.effectiveType))
+                    return _promise['default'].resolve()
+                }
+
+                var url
+
+                if (isDependency) {
+                  url = route
+                } else {
+                  route = normalizeRoute(route)
+                  this.prefetched[route] = true
+                  var scriptRoute = (route === '/' ? '/index' : route) + '.js'
+
+                  if (true && hasNoModule) {
+                    scriptRoute = scriptRoute.replace(/\.js$/, '.module.js')
+                  }
+
+                  url =
+                    this.assetPrefix +
+                    '/_next/static/' +
+                    encodeURIComponent(this.buildId) +
+                    '/pages' +
+                    encodeURI(scriptRoute)
+                }
+
+                return _promise['default']
+                  .all(
+                    document.querySelector(
+                      'link[rel="' +
+                        relPrefetch +
+                        '"][href^="' +
+                        url +
+                        '"], script[data-next-page="' +
+                        route +
+                        '"]'
+                    )
+                      ? []
+                      : [
+                          appendLink(
+                            url,
+                            relPrefetch,
+                            url.match(/\.css$/) ? 'style' : 'script'
+                          ),
+                          true &&
+                            !isDependency &&
+                            this.getDependencies(route).then(function(urls) {
+                              return _promise['default'].all(
+                                urls.map(function(url) {
+                                  return _this5.prefetch(url, true)
+                                })
+                              )
+                            }),
+                        ]
+                  )
+                  .then(
+                    // do not return any data
+                    function() {}, // swallow prefetch errors
+                    function() {}
+                  )
               },
             },
           ])
```
</details>
<details>
<summary>Diff for <strong>main-HASH.module.js</strong></summary>

```diff
@@ -69,66 +69,6 @@
       /***/
     },

-    /***/ '/h46': /***/ function(module, exports, __webpack_require__) {
-      // https://tc39.github.io/proposal-setmap-offrom/#sec-map.of
-      __webpack_require__('cHUd')('Map')
-
-      /***/
-    },
-
-    /***/ '0IRE': /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-
-      var _Map = __webpack_require__('LX0d')
-
-      var _Object$defineProperty = __webpack_require__('hfKm')
-
-      _Object$defineProperty(exports, '__esModule', {
-        value: true,
-      })
-
-      class DataManager {
-        constructor(data) {
-          this.data = new _Map(data)
-        }
-
-        getData() {
-          return this.data
-        }
-
-        get(key) {
-          return this.data.get(key)
-        }
-
-        set(key, value) {
-          this.data.set(key, value)
-        }
-
-        overwrite(data) {
-          this.data = new _Map(data)
-        }
-      }
-
-      exports.DataManager = DataManager
-
-      /***/
-    },
-
-    /***/ '8iia': /***/ function(module, exports, __webpack_require__) {
-      // https://github.com/DavidBruant/Map-Set.prototype.toJSON
-      var classof = __webpack_require__('QMMT')
-      var from = __webpack_require__('RRc/')
-      module.exports = function(NAME) {
-        return function toJSON() {
-          if (classof(this) != NAME)
-            throw TypeError(NAME + "#toJSON isn't generic")
-          return from(this)
-        }
-      }
-
-      /***/
-    },
-
     /***/ BMP1: /***/ function(module, exports, __webpack_require__) {
       'use strict'

@@ -310,7 +250,7 @@
       exports.__esModule = true
       exports.render = render
       exports.renderError = renderError
-      exports.default = exports.emitter = exports.ErrorComponent = exports.router = exports.dataManager = exports.version = void 0
+      exports.default = exports.emitter = exports.router = exports.version = void 0

       var _asyncToGenerator2 = _interopRequireDefault(
         __webpack_require__('+oT+')
@@ -342,12 +282,8 @@

       var _headManagerContext = __webpack_require__('FYa8')

-      var _dataManagerContext = __webpack_require__('qArv')
-
       var _routerContext = __webpack_require__('qOIg')

-      var _dataManager = __webpack_require__('0IRE')
-
       var _querystring = __webpack_require__('s4NR')

       var _isDynamic = __webpack_require__('/jkW')
@@ -361,7 +297,7 @@
         document.getElementById('__NEXT_DATA__').textContent
       )
       window.__NEXT_DATA__ = data
-      var version = '9.1.7'
+      var version = '9.1.8-canary.4'
       exports.version = version
       var {
         props,
@@ -373,9 +309,6 @@
         runtimeConfig,
         dynamicIds,
       } = data
-      var d = JSON.parse(window.__NEXT_DATA__.dataManager)
-      var dataManager = new _dataManager.DataManager(d)
-      exports.dataManager = dataManager
       var prefix = assetPrefix || '' // With dynamic assetPrefix it's no longer possible to set assetPrefix at the build time
       // So, this is how we do it in the client side at runtime

@@ -407,7 +340,6 @@
       var router
       exports.router = router
       var ErrorComponent
-      exports.ErrorComponent = ErrorComponent
       var Component
       var App, onPerfEntry

@@ -447,6 +379,7 @@
                 // client-side hydration. Your app should _never_ use this property.
                 // It may change at any time without notice.
                 _h: 1,
+                shallow: true,
               }
             )
           }
@@ -534,7 +467,6 @@
                     Component,
                     props,
                     err,
-                    emitter,
                   })
                 },
               }
@@ -548,7 +480,6 @@
               Component,
               props,
               err: initialErr,
-              emitter,
             }
             render(renderCtx)
             return emitter
@@ -603,9 +534,7 @@
           } // Make sure we log the error to the console, otherwise users can't track down issues.

           console.error(err)
-          exports.ErrorComponent = ErrorComponent = yield pageLoader.loadPage(
-            '/_error'
-          ) // In production we do a normal render with the `ErrorComponent` as component.
+          ErrorComponent = yield pageLoader.loadPage('/_error') // In production we do a normal render with the `ErrorComponent` as component.
           // If we've gotten here upon initial render, we can use the props from the server.
           // Otherwise, we need to call `getInitialProps` on `App` before mounting.

@@ -641,7 +570,7 @@

       function renderReactElement(reactEl, domEl) {
         // mark start of hydrate/render
-        if (_utils.SUPPORTS_PERFORMANCE_USER_TIMING) {
+        if (_utils.ST) {
           performance.mark('beforeRender')
         }

@@ -658,7 +587,7 @@
           }
         }

-        if (onPerfEntry && _utils.SUPPORTS_PERFORMANCE_USER_TIMING) {
+        if (onPerfEntry && _utils.ST) {
           if (!(PerformanceObserver in window)) {
             window.addEventListener('load', () => {
               performance.getEntriesByType('paint').forEach(onPerfEntry)
@@ -675,7 +604,7 @@
       }

       function markHydrateComplete() {
-        if (!_utils.SUPPORTS_PERFORMANCE_USER_TIMING) return
+        if (!_utils.ST) return
         performance.mark('afterHydrate') // mark end of hydration

         performance.measure(
@@ -694,7 +623,7 @@
       }

       function markRenderComplete() {
-        if (!_utils.SUPPORTS_PERFORMANCE_USER_TIMING) return
+        if (!_utils.ST) return
         performance.mark('afterRender') // mark end of render

         var navStartEntries = performance.getEntriesByName(
@@ -752,17 +681,11 @@
               value: (0, _router.makePublicRouterInstance)(router),
             },
             _react.default.createElement(
-              _dataManagerContext.DataManagerContext.Provider,
+              _headManagerContext.HeadManagerContext.Provider,
               {
-                value: dataManager,
+                value: headManager.updateHead,
               },
-              _react.default.createElement(
-                _headManagerContext.HeadManagerContext.Provider,
-                {
-                  value: headManager.updateHead,
-                },
-                children
-              )
+              children
             )
           )
         )
@@ -847,292 +770,6 @@
       /***/
     },

-    /***/ LX0d: /***/ function(module, exports, __webpack_require__) {
-      module.exports = __webpack_require__('UDep')
-
-      /***/
-    },
-
-    /***/ 'RRc/': /***/ function(module, exports, __webpack_require__) {
-      var forOf = __webpack_require__('oioR')
-
-      module.exports = function(iter, ITERATOR) {
-        var result = []
-        forOf(iter, false, result.push, result, ITERATOR)
-        return result
-      }
-
-      /***/
-    },
-
-    /***/ UDep: /***/ function(module, exports, __webpack_require__) {
-      __webpack_require__('wgeU')
-      __webpack_require__('FlQf')
-      __webpack_require__('bBy9')
-      __webpack_require__('g33z')
-      __webpack_require__('XLbu')
-      __webpack_require__('/h46')
-      __webpack_require__('dVTT')
-      module.exports = __webpack_require__('WEpk').Map
-
-      /***/
-    },
-
-    /***/ Wu5q: /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-
-      var dP = __webpack_require__('2faE').f
-      var create = __webpack_require__('oVml')
-      var redefineAll = __webpack_require__('XJU/')
-      var ctx = __webpack_require__('2GTP')
-      var anInstance = __webpack_require__('EXMj')
-      var forOf = __webpack_require__('oioR')
-      var $iterDefine = __webpack_require__('MPFp')
-      var step = __webpack_require__('UO39')
-      var setSpecies = __webpack_require__('TJWN')
-      var DESCRIPTORS = __webpack_require__('jmDH')
-      var fastKey = __webpack_require__('6/1s').fastKey
-      var validate = __webpack_require__('n3ko')
-      var SIZE = DESCRIPTORS ? '_s' : 'size'
-
-      var getEntry = function(that, key) {
-        // fast case
-        var index = fastKey(key)
-        var entry
-        if (index !== 'F') return that._i[index]
-        // frozen object case
-        for (entry = that._f; entry; entry = entry.n) {
-          if (entry.k == key) return entry
-        }
-      }
-
-      module.exports = {
-        getConstructor: function(wrapper, NAME, IS_MAP, ADDER) {
-          var C = wrapper(function(that, iterable) {
-            anInstance(that, C, NAME, '_i')
-            that._t = NAME // collection type
-            that._i = create(null) // index
-            that._f = undefined // first entry
-            that._l = undefined // last entry
-            that[SIZE] = 0 // size
-            if (iterable != undefined)
-              forOf(iterable, IS_MAP, that[ADDER], that)
-          })
-          redefineAll(C.prototype, {
-            // 23.1.3.1 Map.prototype.clear()
-            // 23.2.3.2 Set.prototype.clear()
-            clear: function clear() {
-              for (
-                var that = validate(this, NAME),
-                  data = that._i,
-                  entry = that._f;
-                entry;
-                entry = entry.n
-              ) {
-                entry.r = true
-                if (entry.p) entry.p = entry.p.n = undefined
-                delete data[entry.i]
-              }
-              that._f = that._l = undefined
-              that[SIZE] = 0
-            },
-            // 23.1.3.3 Map.prototype.delete(key)
-            // 23.2.3.4 Set.prototype.delete(value)
-            delete: function(key) {
-              var that = validate(this, NAME)
-              var entry = getEntry(that, key)
-              if (entry) {
-                var next = entry.n
-                var prev = entry.p
-                delete that._i[entry.i]
-                entry.r = true
-                if (prev) prev.n = next
-                if (next) next.p = prev
-                if (that._f == entry) that._f = next
-                if (that._l == entry) that._l = prev
-                that[SIZE]--
-              }
-              return !!entry
-            },
-            // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
-            // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
-            forEach: function forEach(callbackfn /* , that = undefined */) {
-              validate(this, NAME)
-              var f = ctx(
-                callbackfn,
-                arguments.length > 1 ? arguments[1] : undefined,
-                3
-              )
-              var entry
-              while ((entry = entry ? entry.n : this._f)) {
-                f(entry.v, entry.k, this)
-                // revert to the last existing entry
-                while (entry && entry.r) entry = entry.p
-              }
-            },
-            // 23.1.3.7 Map.prototype.has(key)
-            // 23.2.3.7 Set.prototype.has(value)
-            has: function has(key) {
-              return !!getEntry(validate(this, NAME), key)
-            },
-          })
-          if (DESCRIPTORS)
-            dP(C.prototype, 'size', {
-              get: function() {
-                return validate(this, NAME)[SIZE]
-              },
-            })
-          return C
-        },
-        def: function(that, key, value) {
-          var entry = getEntry(that, key)
-          var prev, index
-          // change existing entry
-          if (entry) {
-            entry.v = value
-            // create new entry
-          } else {
-            that._l = entry = {
-              i: (index = fastKey(key, true)), // <- index
-              k: key, // <- key
-              v: value, // <- value
-              p: (prev = that._l), // <- previous entry
-              n: undefined, // <- next entry
-              r: false, // <- removed
-            }
-            if (!that._f) that._f = entry
-            if (prev) prev.n = entry
-            that[SIZE]++
-            // add to index
-            if (index !== 'F') that._i[index] = entry
-          }
-          return that
-        },
-        getEntry: getEntry,
-        setStrong: function(C, NAME, IS_MAP) {
-          // add .keys, .values, .entries, [@@iterator]
-          // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
-          $iterDefine(
-            C,
-            NAME,
-            function(iterated, kind) {
-              this._t = validate(iterated, NAME) // target
-              this._k = kind // kind
-              this._l = undefined // previous
-            },
-            function() {
-              var that = this
-              var kind = that._k
-              var entry = that._l
-              // revert to the last existing entry
-              while (entry && entry.r) entry = entry.p
-              // get next entry
-              if (
-                !that._t ||
-                !(that._l = entry = entry ? entry.n : that._t._f)
-              ) {
-                // or finish the iteration
-                that._t = undefined
-                return step(1)
-              }
-              // return step by kind
-              if (kind == 'keys') return step(0, entry.k)
-              if (kind == 'values') return step(0, entry.v)
-              return step(0, [entry.k, entry.v])
-            },
-            IS_MAP ? 'entries' : 'values',
-            !IS_MAP,
-            true
-          )
-
-          // add [@@species], 23.1.2.2, 23.2.2.2
-          setSpecies(NAME)
-        },
-      }
-
-      /***/
-    },
-
-    /***/ XLbu: /***/ function(module, exports, __webpack_require__) {
-      // https://github.com/DavidBruant/Map-Set.prototype.toJSON
-      var $export = __webpack_require__('Y7ZC')
-
-      $export($export.P + $export.R, 'Map', {
-        toJSON: __webpack_require__('8iia')('Map'),
-      })
-
-      /***/
-    },
-
-    /***/ dVTT: /***/ function(module, exports, __webpack_require__) {
-      // https://tc39.github.io/proposal-setmap-offrom/#sec-map.from
-      __webpack_require__('aPfg')('Map')
-
-      /***/
-    },
-
-    /***/ g33z: /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-
-      var strong = __webpack_require__('Wu5q')
-      var validate = __webpack_require__('n3ko')
-      var MAP = 'Map'
-
-      // 23.1 Map Objects
-      module.exports = __webpack_require__('raTm')(
-        MAP,
-        function(get) {
-          return function Map() {
-            return get(this, arguments.length > 0 ? arguments[0] : undefined)
-          }
-        },
-        {
-          // 23.1.3.6 Map.prototype.get(key)
-          get: function get(key) {
-            var entry = strong.getEntry(validate(this, MAP), key)
-            return entry && entry.v
-          },
-          // 23.1.3.9 Map.prototype.set(key, value)
-          set: function set(key, value) {
-            return strong.def(validate(this, MAP), key === 0 ? 0 : key, value)
-          },
-        },
-        strong,
-        true
-      )
-
-      /***/
-    },
-
-    /***/ qArv: /***/ function(module, exports, __webpack_require__) {
-      'use strict'
-
-      var _Object$defineProperty = __webpack_require__('hfKm')
-
-      var __importStar =
-        (this && this.__importStar) ||
-        function(mod) {
-          if (mod && mod.__esModule) return mod
-          var result = {}
-          if (mod != null)
-            for (var k in mod) {
-              if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]
-            }
-          result['default'] = mod
-          return result
-        }
-
-      _Object$defineProperty(exports, '__esModule', {
-        value: true,
-      })
-
-      var React = __importStar(__webpack_require__('q1tI'))
-
-      exports.DataManagerContext = React.createContext(null)
-
-      /***/
-    },
-
     /***/ yLiY: /***/ function(module, exports, __webpack_require__) {
       'use strict'

@@ -1165,10 +802,6 @@
       exports.__esModule = true
       exports.default = void 0

-      var _asyncToGenerator2 = _interopRequireDefault(
-        __webpack_require__('+oT+')
-      )
-
       var _promise = _interopRequireDefault(__webpack_require__('eVuF'))

       var _mitt = _interopRequireDefault(__webpack_require__('dZ6Y'))
@@ -1188,6 +821,18 @@
             'prefetch'
       var hasNoModule = 'noModule' in document.createElement('script')

+      function normalizeRoute(route) {
+        if (route[0] !== '/') {
+          throw new Error(
+            'Route name should start with a "/", got "' + route + '"'
+          )
+        }
+
+        route = route.replace(/\/index$/, '/')
+        if (route === '/') return route
+        return route.replace(/\/$/, '')
+      }
+
       function appendLink(href, rel, as) {
         return new _promise.default((res, rej, link) => {
           link = document.createElement('link')
@@ -1227,29 +872,19 @@
           return this.promisedBuildManifest.then(
             man =>
               (man[route] &&
-                man[route].map(url => '/_next/' + encodeURI(url))) ||
+                man[route].map(
+                  url => this.assetPrefix + '/_next/' + encodeURI(url)
+                )) ||
               []
           )
         }

-        normalizeRoute(route) {
-          if (route[0] !== '/') {
-            throw new Error(
-              'Route name should start with a "/", got "' + route + '"'
-            )
-          }
-
-          route = route.replace(/\/index$/, '/')
-          if (route === '/') return route
-          return route.replace(/\/$/, '')
-        }
-
         loadPage(route) {
           return this.loadPageScript(route).then(v => v.page)
         }

         loadPageScript(route) {
-          route = this.normalizeRoute(route)
+          route = normalizeRoute(route)
           return new _promise.default((resolve, reject) => {
             var fire = _ref => {
               var { error, page, mod } = _ref
@@ -1322,20 +957,15 @@
         }

         loadRoute(route) {
-          var _this = this
-
-          return (0, _asyncToGenerator2.default)(function*() {
-            route = _this.normalizeRoute(route)
-            var scriptRoute = route === '/' ? '/index.js' : route + '.js'
-            var url =
-              _this.assetPrefix +
-              '/_next/static/' +
-              encodeURIComponent(_this.buildId) +
-              '/pages' +
-              encodeURI(scriptRoute)
-
-            _this.loadScript(url, route, true)
-          })()
+          route = normalizeRoute(route)
+          var scriptRoute = route === '/' ? '/index.js' : route + '.js'
+          var url =
+            this.assetPrefix +
+            '/_next/static/' +
+            encodeURIComponent(this.buildId) +
+            '/pages' +
+            encodeURI(scriptRoute)
+          this.loadScript(url, route, true)
         }

         loadScript(url, route, isPage) {
@@ -1390,39 +1020,39 @@
         }

         prefetch(route, isDependency) {
-          var _this2 = this
-
-          return (0, _asyncToGenerator2.default)(function*() {
-            // https://github.com/GoogleChromeLabs/quicklink/blob/453a661fa1fa940e2d2e044452398e38c67a98fb/src/index.mjs#L115-L118
-            // License: Apache 2.0
-            var cn
-
-            if ((cn = navigator.connection)) {
-              // Don't prefetch if using 2G or if Save-Data is enabled.
-              if (cn.saveData || /2g/.test(cn.effectiveType)) return
-            }
-
-            var url = _this2.assetPrefix
+          // https://github.com/GoogleChromeLabs/quicklink/blob/453a661fa1fa940e2d2e044452398e38c67a98fb/src/index.mjs#L115-L118
+          // License: Apache 2.0
+          var cn
+
+          if ((cn = navigator.connection)) {
+            // Don't prefetch if using 2G or if Save-Data is enabled.
+            if (cn.saveData || /2g/.test(cn.effectiveType))
+              return _promise.default.resolve()
+          }

-            if (isDependency) {
-              url += route
-            } else {
-              route = _this2.normalizeRoute(route)
-              _this2.prefetched[route] = true
-              var scriptRoute = (route === '/' ? '/index' : route) + '.js'
+          var url

-              if (true && hasNoModule) {
-                scriptRoute = scriptRoute.replace(/\.js$/, '.module.js')
-              }
+          if (isDependency) {
+            url = route
+          } else {
+            route = normalizeRoute(route)
+            this.prefetched[route] = true
+            var scriptRoute = (route === '/' ? '/index' : route) + '.js'

-              url +=
-                '/_next/static/' +
-                encodeURIComponent(_this2.buildId) +
-                '/pages' +
-                encodeURI(scriptRoute)
+            if (true && hasNoModule) {
+              scriptRoute = scriptRoute.replace(/\.js$/, '.module.js')
             }

-            if (
+            url =
+              this.assetPrefix +
+              '/_next/static/' +
+              encodeURIComponent(this.buildId) +
+              '/pages' +
+              encodeURI(scriptRoute)
+          }
+
+          return _promise.default
+            .all(
               document.querySelector(
                 'link[rel="' +
                   relPrefetch +
@@ -1432,33 +1062,27 @@
                   route +
                   '"]'
               )
-            ) {
-              return
-            }
-
-            return _promise.default
-              .all([
-                appendLink(
-                  url,
-                  relPrefetch,
-                  url.match(/\.css$/) ? 'style' : 'script'
-                ),
-                true &&
-                  !isDependency &&
-                  _this2
-                    .getDependencies(route)
-                    .then(urls =>
-                      _promise.default.all(
-                        urls.map(url => _this2.prefetch(url, true))
-                      )
+                ? []
+                : [
+                    appendLink(
+                      url,
+                      relPrefetch,
+                      url.match(/\.css$/) ? 'style' : 'script'
                     ),
-              ])
-              .then(
-                // do not return any data
-                () => {}, // swallow prefetch errors
-                () => {}
-              )
-          })()
+                    true &&
+                      !isDependency &&
+                      this.getDependencies(route).then(urls =>
+                        _promise.default.all(
+                          urls.map(url => this.prefetch(url, true))
+                        )
+                      ),
+                  ]
+            )
+            .then(
+              // do not return any data
+              () => {}, // swallow prefetch errors
+              () => {}
+            )
         }
       }
```
</details>
<details>
<summary>Diff for <strong>index.html</strong></summary>

```diff
@@ -27,7 +27,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
+      href="/_next/static/chunks/framework.5bb7f30f859f5f31359f.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -39,13 +39,13 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.08c4064758778ec3689a.module.js"
+      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.bc6579cf6308df6d2e33.module.js"
       as="script"
       crossorigin="anonymous"
     />
     <link
       rel="preload"
-      href="/_next/static/runtime/main-6c919dd5a10cd6022375.module.js"
+      href="/_next/static/runtime/main-bb25f92a2ba9f714493c.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -53,7 +53,7 @@

Hello world 👋

```
</details>
<details>
<summary>Diff for <strong>link.html</strong></summary>

```diff
@@ -27,7 +27,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
+      href="/_next/static/chunks/framework.5bb7f30f859f5f31359f.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -39,13 +39,13 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.08c4064758778ec3689a.module.js"
+      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.bc6579cf6308df6d2e33.module.js"
       as="script"
       crossorigin="anonymous"
     />
     <link
       rel="preload"
-      href="/_next/static/runtime/main-6c919dd5a10cd6022375.module.js"
+      href="/_next/static/runtime/main-bb25f92a2ba9f714493c.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -58,7 +58,7 @@

```
</details>
<details>
<summary>Diff for <strong>withRouter.html</strong></summary>

```diff
@@ -27,7 +27,7 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/framework.9c9aa574c484a7d0240e.module.js"
+      href="/_next/static/chunks/framework.5bb7f30f859f5f31359f.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -39,13 +39,13 @@
     />
     <link
       rel="preload"
-      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.08c4064758778ec3689a.module.js"
+      href="/_next/static/chunks/de003c3a9d308750aa009870a5926f9b18ab31f4.bc6579cf6308df6d2e33.module.js"
       as="script"
       crossorigin="anonymous"
     />
     <link
       rel="preload"
-      href="/_next/static/runtime/main-6c919dd5a10cd6022375.module.js"
+      href="/_next/static/runtime/main-bb25f92a2ba9f714493c.module.js"
       as="script"
       crossorigin="anonymous"
     />
@@ -53,7 +53,7 @@

I use withRouter

```

Serverless Mode (Decrease detected ✓)

General Overall decrease ✓

|  | zeit/next.js canary v9.1.7 | zeit/next.js refs/tags/v9.1.8-canary.4 | Change |
| - | - | - | - |
| buildDuration | 13.8s | 13.6s | -261ms |
| nodeModulesSize | 48.9 MB | 48.9 MB | -17.4 kB |

Client Bundles (main, webpack, commons) Overall decrease ✓

|  | zeit/next.js canary v9.1.7 | zeit/next.js refs/tags/v9.1.8-canary.4 | Change |
| - | - | - | - |
| main-HASH.js gzip | 6.43 kB | 5.13 kB | -1.3 kB |
| webpack-HASH.js gzip | 746 B | 746 B | ✓ |
| 4952ddcd88e7..54d3.js gzip | 4.68 kB | 4.68 kB | ✓ |
| commons.HASH.js gzip | 4.06 kB | 4.06 kB | ✓ |
| de003c3a9d30..6ef5.js gzip | 13.8 kB | N/A | N/A |
| framework.HASH.js gzip | 39.5 kB | 39.1 kB | -311 B |
| de003c3a9d30..4cf7.js gzip | N/A | 13.7 kB | N/A |
| Overall change | 69.2 kB | 67.5 kB | -1.62 kB |

Client Bundles (main, webpack, commons) Modern Overall decrease ✓

|  | zeit/next.js canary v9.1.7 | zeit/next.js refs/tags/v9.1.8-canary.4 | Change |
| - | - | - | - |
| main-HASH.module.js gzip | 5.41 kB | 4.19 kB | -1.22 kB |
| webpack-HASH..dule.js gzip | 746 B | 746 B | ✓ |
| 4952ddcd88e7..dule.js gzip | 5.56 kB | 5.56 kB | ✓ |
| de003c3a9d30..dule.js gzip | 12.6 kB | N/A | N/A |
| framework.HA..dule.js gzip | 39.4 kB | 39.1 kB | -310 B |
| de003c3a9d30..dule.js gzip | N/A | 12.5 kB | N/A |
| Overall change | 63.7 kB | 62.1 kB | -1.53 kB |

Legacy Client Bundles (polyfills)

|  | zeit/next.js canary v9.1.7 | zeit/next.js refs/tags/v9.1.8-canary.4 | Change |
| - | - | - | - |
| polyfills-HASH.js gzip | 4.76 kB | 4.76 kB | ✓ |
| Overall change | 4.76 kB | 4.76 kB | ✓ |

Client Pages Overall decrease ✓

|  | zeit/next.js canary v9.1.7 | zeit/next.js refs/tags/v9.1.8-canary.4 | Change |
| - | - | - | - |
| _app.js gzip | 1.33 kB | 1.33 kB | ✓ |
| _error.js gzip | 4.07 kB | 4.07 kB | ✓ |
| hooks.js gzip | 779 B | 779 B | ✓ |
| index.js gzip | 222 B | 222 B | ✓ |
| link.js gzip | 2.93 kB | 2.9 kB | -27 B |
| routerDirect.js gzip | 283 B | 283 B | ✓ |
| withRouter.js gzip | 282 B | 282 B | ✓ |
| Overall change | 9.89 kB | 9.87 kB | -27 B |

Client Pages Modern Overall decrease ✓

|  | zeit/next.js canary v9.1.7 | zeit/next.js refs/tags/v9.1.8-canary.4 | Change |
| - | - | - | - |
| _app.module.js gzip | 757 B | 757 B | ✓ |
| _error.module.js gzip | 3.06 kB | 3.06 kB | ✓ |
| hooks.module.js gzip | 371 B | 371 B | ✓ |
| index.module.js gzip | 212 B | 212 B | ✓ |
| link.module.js gzip | 2.49 kB | 2.47 kB | -23 B |
| routerDirect..dule.js gzip | 273 B | 273 B | ✓ |
| withRouter.m..dule.js gzip | 272 B | 272 B | ✓ |
| Overall change | 7.43 kB | 7.41 kB | -23 B |

Client Build Manifests

|  | zeit/next.js canary v9.1.7 | zeit/next.js refs/tags/v9.1.8-canary.4 | Change |
| - | - | - | - |
| _buildManifest.js gzip | 61 B | 61 B | ✓ |
| _buildManife..dule.js gzip | 61 B | 61 B | ✓ |
| Overall change | 122 B | 122 B | ✓ |

Serverless bundles Overall decrease ✓

|  | zeit/next.js canary v9.1.7 | zeit/next.js refs/tags/v9.1.8-canary.4 | Change |
| - | - | - | - |
| _error.js gzip | 78.9 kB | 77.7 kB | -1.14 kB |
| hooks.html gzip | 1.07 kB | 1.05 kB | -17 B |
| index.js gzip | 79.1 kB | 78 kB | -1.18 kB |
| link.js gzip | 81.3 kB | 80.3 kB | -958 B |
| routerDirect.js gzip | 79.2 kB | 78 kB | -1.17 kB |
| withRouter.js gzip | 79.3 kB | 78.1 kB | -1.23 kB |
| Overall change | 399 kB | 393 kB | -5.7 kB |


Thanks for four your feedback. I will take a look and try to fix it as soon as possible


![Difference between blocks](https://raw.githubusercontent.com/jaqster/shark-tank/37da75ed46479d13c7d238e56d0c5221e90b12a3/.makecode/blocksdiff.png)


lantonov! The asmfish guy!


> I'll send new version when your translations are ready....

Can you send me the new version for testing before you release it?


Created multidev environment [sfgov#pr-434](https://dashboard.pantheon.io/sites/91d50373-c4cf-40e4-a646-cb73e16a140c#pr-434).

[![Visit Site](https://raw.githubusercontent.com/pantheon-systems/ci-drops-8/0.1.0/data/img/visit-site-36.png)](https://pr-434-sfgov.pantheonsite.io/)


Oops, closes #31


This will return the device back to zedboot mode after paving, you may want to call this command separately.


Successfully deployed to following URLs:

* https://bracket-app-jdvr35uqp.now.sh
* https://bracketapp.now.sh
* https://bracket-app.quillan131518.now.sh
* https://bracket-app-git-master.quillan131518.now.sh


Successfully deployed to following URLs:

* https://correctcode-front-deszmbnzi.now.sh
* https://correctcode-front.now.sh
* https://www.correctcode.dev
* https://correctcode.dev
* https://correctcode-front.tmqps78.now.sh
* https://correctcode-front-git-develop.tmqps78.now.sh


TeamCity Bvcms / Build [Build 3342](https://builds.tpsdb.com/viewLog.html?buildId=11135&buildTypeId=Bvcms_Build) outcome was **SUCCESS**
Summary: Tests passed: 211 Build time: 00:24:49


Successfully deployed to following URLs:

* https://posy-client-onidtez7y.now.sh
* https://posy-client.kaylajaograham.now.sh
* https://posy-client-git-master.kaylajaograham.now.sh


Successfully deployed to following URLs:

* https://brokanxyz-219mkda7l.now.sh
* https://brokan.xyz
* https://brokanxyz.brokanxyz.now.sh
* https://brokanxyz-git-master.brokanxyz.now.sh


asqs


Also running into the issue @bbhuston ran into. I tried to use the previous s3 bucket as well which throws a does not exist error (unsurprisingly). Is there someway we can fix this?


![Difference between blocks](https://raw.githubusercontent.com/jaqster/shark-tank/3af3b5019a0fef81c5c42de535fa7deaa26b668d/.makecode/blocksdiff.png)


Successfully deployed to following URLs:

* https://blog-eebkturew.now.sh
* https://blog-theta-neon.now.sh
* https://blog.lynvv.xyz
* https://lynvv.xyz
* https://blog.lynweklm.now.sh
* https://blog-git-master.lynweklm.now.sh


Successfully deployed to following URLs:

* https://kitokiosgeles-poh3eio18.now.sh
* https://kitokiosgeles.tadasan.now.sh
* https://kitokiosgeles-git-master.tadasan.now.sh


Might be a bit on the releases.  Please see #735


Successfully deployed to following URLs:

* https://nateradebaughreact-datetime-8btttlsbn.now.sh
* https://nateradebaugh-datetime.now.sh
* https://react-datetime.now.sh
* https://react-datetime.naterad.com
* https://nateradebaugh-react-datetime.nateradebaugh.now.sh
* https://nateradebaugh-react-datetime-git-master.nateradebaugh.now.sh


Successfully deployed to following URLs:

* https://monorepo-dfhmi33r1.now.sh
* https://storybookjs.now.sh
* https://storybookjs-next.now.sh
* https://monorepo.storybook.now.sh
* https://monorepo-git-next.storybook.now.sh


Successfully deployed to following URLs:

* https://mscguide-analysis-ipv6sv8od.now.sh
* https://mscguide-analysis.now.sh
* https://mscguide-analysis.asd5530025.now.sh
* https://mscguide-analysis-git-master.asd5530025.now.sh


Before Clearing a VertexArray and then adding buffers would bug


Successfully deployed to following URLs:

* https://darkfolio-14blz3qqc.now.sh
* https://hellovam.now.sh
* https://darkfolio.vamzen.now.sh
* https://darkfolio-git-master.vamzen.now.sh


This commit has been deployed to DigitalOcean Spaces for easy reviewing.

| [kubernetes-tool](https://community-tools.sfo2.digitaloceanspaces.com/commits/kubernetes-tool/2781b55bc55a75f8147f1bb75b18f1ecad3958dc/index.html) |
|---|


Successfully deployed to following URLs:

* https://portfolio-gzss374vh.now.sh
* https://portfolio.drepram.com
* https://portfolio.drepram.now.sh
* https://portfolio-git-master.drepram.now.sh


Successfully deployed to following URLs:

* https://paulkinlanme-ntwitquro.now.sh
* https://paul.kinlan.me
* https://paulkinlanme.kinlan.now.sh
* https://paulkinlanme-git-main.kinlan.now.sh


Successfully deployed to following URLs:

* https://ebox-fz8mcrctv.now.sh
* https://ebox.now.sh
* https://ebox.eleazareramos.now.sh
* https://ebox-git-master.eleazareramos.now.sh


Successfully deployed to following URLs:

* https://themanga-club-27ig9ey8e.now.sh
* https://themanga-club.now.sh
* https://themanga-club.ajarouih.now.sh
* https://themanga-club-git-master.ajarouih.now.sh


Merged as 2cfd0e2bf17650071f176233d047799b56591577


Successfully deployed to following URLs:

* https://interface-lrl148ja7.now.sh
* https://interface.avantgarde-finance.now.sh
* https://interface-git-master.avantgarde-finance.now.sh


Sorry for my repeating comments.
Let me comment. for the commit message, "arch64" in "Reimplement wait script for arch64" is wrong. it is "aarch64". "aa".


Successfully deployed to following URLs:

* https://okansblog-aqnyc6btg.now.sh
* https://okansblog.now.sh
* https://okansblog.okandvn.now.sh
* https://okansblog-git-master.okandvn.now.sh


Successfully deployed to following URLs:

* https://cinemaddict-react-app-b3so3e0qp.now.sh
* https://cinemaddict-react-app.now.sh
* https://cinemaddict-react-app.zhukovaxenia.now.sh
* https://cinemaddict-react-app-git-master.zhukovaxenia.now.sh


Remove also: DropUserUsingSystemUsersCollectionOperation and FindUsersUsingSystemUsersCollectionOperation since they are not used anymore


Successfully deployed to following URLs:

* https://zenunu-qym7fjxqr.now.sh
* https://zenunu.now.sh
* https://zenunu.dtox-consulting.now.sh
* https://zenunu-git-master.dtox-consulting.now.sh


10진수를 2로 나누면서 나온 나머지를 누적 시키면서 구함
2진수의 첫 시작 자리가 0일 경우에는 N%2==0이더라도 count가 1 증가하면 안됨
start라는 변수를 주어 N을 2로 나눌 때 1일 경우 부터(start == 1) 시작함
N을 2로 나눌 때 0일 경우 count가 1 증가


Successfully deployed to following URLs:

* https://okansblog-bfc5j63u4.now.sh
* https://okansblog.now.sh
* https://okansblog.okandvn.now.sh
* https://okansblog-git-master.okandvn.now.sh


Successfully deployed to following URLs:

* https://cinemaddict-react-app-fk28v9164.now.sh
* https://cinemaddict-react-app.now.sh
* https://cinemaddict-react-app.zhukovaxenia.now.sh
* https://cinemaddict-react-app-git-master.zhukovaxenia.now.sh


Successfully deployed to following URLs:

* https://iteamse-poc-egq4xb2mf.now.sh
* https://iteamse-poc-git-master.iteam.now.sh


See also: https://github.com/mongodb/mongo-csharp-driver/blob/master/src/MongoDB.Driver.Legacy/FeatureId.cs#L66-L70


Successfully deployed to following URLs:

* https://interface-bbqktkb64.now.sh
* https://interface.avantgarde-finance.now.sh
* https://interface-git-master.avantgarde-finance.now.sh


Deployment failed with the following error:

~~~
You defined 1 build that did not match any source files (please ensure they are NOT defined in .nowignore):
~~~


Successfully deployed to following URLs:

* https://himoznik-dzkrogr1v.now.sh
* https://himoznik.now.sh
* https://himoznik.sacred-wolf-on.now.sh
* https://himoznik-git-master.sacred-wolf-on.now.sh


Why this change? Unless I'm missing something, this now makes it impossible to specify custom scalar types.


added a link to a web page


Successfully deployed to following URLs:

* https://comparae-ui-bebqqk0cb.now.sh
* https://ui.comparae.com.br
* https://comparae-ui.comparaedevs.now.sh
* https://comparae-ui-git-master.comparaedevs.now.sh


Successfully deployed to following URLs:

* https://dutzigithubio-cbt2b1zzq.now.sh
* https://dutzi.party
* https://dutzigithubio.dutzi.now.sh
* https://dutzigithubio-git-master.dutzi.now.sh


mkdir


Please take a look in `unsigned_flag` variable, since only number we can return are unsigned numbers


We've been using a fork of the upstream validator: https://github.com/mbta/transitfeed/
We'd like to merge the changes upstream, but it's not currently a priority for the team.


Successfully deployed to following URLs:

* https://paulkinlanme-c85ocx3no.now.sh
* https://paul.kinlan.me
* https://paulkinlanme.kinlan.now.sh
* https://paulkinlanme-git-main.kinlan.now.sh


For what is this variable relevant ?


Yes i should change to qx.Promise plus some promise defined stuff,


@ylixir What does `nix-info` or `nix eval --raw nixpkgs.lib.nixpkgsVersion` say?


Happy to go ahead


Seems macOS users should use `pinentry_mac`?


[David Taylor posted](https://review.discourse.org/t/turn-off-csp-for-tests/8105/3):

IIRC, changing site settings in qunit tests will only affect the client. CSP is set on the server, so I don't think this will have any effect? :thinking:


nah, absolutely not properly :P see my shaders branch and merge it, i did a little workaround to make it working


Why do we need this function ?


Successfully deployed to following URLs:

* https://todo-9v3ipkj6j.now.sh
* https://todo-ten-phi.now.sh
* https://todo.vikiboss.now.sh
* https://todo-git-master.vikiboss.now.sh


Det var inte "fel av dig" - det är vanliga grejer som man märker inte, speciellt som nybörjare. Precis därför har man andra att slänga ett öga på koden. Var inte rädd att skriva "fel" kod. :)


Collaborator: Review for this commit was created. [Link to review](http://2e6be167.eu.ngrok.io/ui#review:id=836)


Also you can add stylecop analyzer to enforce consistency rules. At least then I will nitpick less 😄


Successfully deployed to following URLs:

* https://project-management-tool-lv5j48f3o.now.sh
* https://project-management-tool.now.sh
* https://project-management-tool.webistomin.now.sh
* https://project-management-tool-git-master.webistomin.now.sh


Aqui creamos las misiones #7


The 4 rules all start with number `1.`


Successfully deployed to following URLs:

* https://sui-components-c80430z7x.now.sh
* https://sui-components.now.sh
* https://suicomponents.now.sh
* https://sui-components.schibstedspain.now.sh
* https://sui-components-git-master.schibstedspain.now.sh


Successfully deployed to following URLs:

* https://nateradebaughreact-datetime-gw3tl1u65.now.sh
* https://nateradebaugh-datetime.now.sh
* https://react-datetime.now.sh
* https://react-datetime.naterad.com
* https://nateradebaugh-react-datetime.nateradebaugh.now.sh
* https://nateradebaugh-react-datetime-git-master.nateradebaugh.now.sh


first commit


<!-- PMABOT:SOB --><!-- PMABOT:SOB:INVALID -->
This commit has an invalid Signed-Off-By line, please use your full name for legal compliance reasons.
Please check [Developer's Certificate of Origin](https://github.com/phpmyadmin/phpmyadmin/blob/master/DCO)
Here is a valid example: `Signed-off-by: Jane Smith <jane.smith@example.org>`


<!-- PMABOT:TAB -->
This commit is using tab character for indentation instead of spaces, what is mandated by phpMyAdmin. Please check our [Developer guidelines](https://github.com/phpmyadmin/phpmyadmin/wiki/Developer_guidelines#Indentation) for more information.

Offending files: phpstan-baseline.neon


It does for cross platform support, because different platforms may define `struct sockaddr_in`  differently, but OSAL is not trying to redefine all the address types, just to provide a generic container for them (binary blob).  The objective is to be sure that the generic container is big enough to hold the platform-specific definition.


> Fixes
> - Table form was accepting too many decimals
> - Money widget wasn't displaying the right number
> - small styles fixes

I've been trying to do atomic commits recently. So here, you have at least 3 different changes if you realise later on that the money widget problem hasn't been solved, you can't simply revert this change and do it right as you would also lose the style fixes and the table form would start accepting numbers with 23 decimal places.

It's hard to know when to commit. Even with atomic commits, you'd make one commit for "implement the edit policy functionality" and then later on, if you decide to change the colour of the button, so you make a tiny commit that changes one line of CSS. You could `fixup` that second, tiny commit into the first but, that's not ideal after the first commit has been pushed (and pulled onto a teammates computer).

That was a bit of a ramble, sorry!


@GrissomRobotics Also, can you grant me push access to this repo?


Successfully deployed to following URLs:

* https://nolajs-3ochesx62.now.sh
* https://nolajs.now.sh
* https://nolajs.sscaff1.now.sh
* https://nolajs-git-master.sscaff1.now.sh


Lots of TODOs!

want to try writing a shader that takes the controlpoints only, with number of frames,  and calculates the spline path etc. on the GPU, currently done in QSpline object on CPU

higher on the priority list is stabilizing this code by refactoring as GL4+core compliant and getting rid of the last glBegin() - glEnd() pair in DisplayWidget::drawLookatVector() < this should be in the shader ;)


also just another note to your article in an user clone an older version before the new license he is still bound to the old license also all contributions made under the old license stays under the old license.

If you want to change that you will have to make every contributor of the repo released before the update license agree to the new license terms.


Successfully deployed to following URLs:

* https://yo7dev-8kjs6je0f.now.sh
* https://yo7.dev
* https://yo7dev.yo7.now.sh
* https://yo7dev-git-master.yo7.now.sh