Browse Source

api endpoints for users lists, tests for some components

Rafał Pitoń 9 years ago
parent
commit
3a11b75091

+ 4 - 4
frontend/src/components/user-status.js

@@ -60,17 +60,17 @@ export class StatusLabel extends React.Component {
   getHelp() {
   getHelp() {
     if (this.props.status.is_banned) {
     if (this.props.status.is_banned) {
       if (this.props.status.banned_until) {
       if (this.props.status.banned_until) {
-        return interpolate(gettext("%(username)s is hiding banned until %(ban_expires)s"), {
+        return interpolate(gettext("%(username)s is banned until %(ban_expires)s"), {
           username: this.props.user.username,
           username: this.props.user.username,
           ban_expires: this.props.status.banned_until.format('LL, LT')
           ban_expires: this.props.status.banned_until.format('LL, LT')
         }, true);
         }, true);
       } else {
       } else {
-        return interpolate(gettext("%(username)s is hiding banned"), {
+        return interpolate(gettext("%(username)s is banned"), {
           username: this.props.user.username
           username: this.props.user.username
         }, true);
         }, true);
       }
       }
     } else if (this.props.status.is_hidden) {
     } else if (this.props.status.is_hidden) {
-      return interpolate(gettext("%(username)s is hiding activity"), {
+      return interpolate(gettext("%(username)s is hiding presence"), {
         username: this.props.user.username
         username: this.props.user.username
       }, true);
       }, true);
     } else if (this.props.status.is_online_hidden) {
     } else if (this.props.status.is_online_hidden) {
@@ -98,7 +98,7 @@ export class StatusLabel extends React.Component {
     if (this.props.status.is_banned) {
     if (this.props.status.is_banned) {
       return gettext("Banned");
       return gettext("Banned");
     } else if (this.props.status.is_hidden) {
     } else if (this.props.status.is_hidden) {
-      return gettext("Hiding activity");
+      return gettext("Hidden");
     } else if (this.props.status.is_online_hidden) {
     } else if (this.props.status.is_online_hidden) {
       return gettext("Online (hidden)");
       return gettext("Online (hidden)");
     } else if (this.props.status.is_offline_hidden) {
     } else if (this.props.status.is_offline_hidden) {

+ 4 - 1
frontend/src/components/users/active-posters.js

@@ -5,8 +5,9 @@ import Status, { StatusIcon, StatusLabel } from 'misago/components/user-status';
 import misago from 'misago/index';
 import misago from 'misago/index';
 import { dehydrate } from 'misago/reducers/users';
 import { dehydrate } from 'misago/reducers/users';
 import ajax from 'misago/services/ajax';
 import ajax from 'misago/services/ajax';
-import title from 'misago/services/page-title';
+import snackbar from 'misago/services/snackbar';
 import store from 'misago/services/store';
 import store from 'misago/services/store';
+import title from 'misago/services/page-title';
 import * as random from 'misago/utils/random'; // jshint ignore:line
 import * as random from 'misago/utils/random'; // jshint ignore:line
 
 
 export class ActivePoster extends React.Component {
 export class ActivePoster extends React.Component {
@@ -281,6 +282,8 @@ export default class extends React.Component {
 
 
           trackedPeriod: data.tracked_period,
           trackedPeriod: data.tracked_period,
           count: data.count
           count: data.count
+        }, (rejection) => {
+          snackbar.apiError(rejection);
         });
         });
 
 
         store.dispatch(dehydrate(data.results));
         store.dispatch(dehydrate(data.results));

+ 1 - 1
frontend/src/reducers/username-history.js

@@ -51,7 +51,7 @@ export default function username(state=[], action=null) {
           });
           });
         }
         }
 
 
-        return Object.assign({}, item);
+        return item;
       });
       });
 
 
     case UPDATE_USERNAME:
     case UPDATE_USERNAME:

+ 22 - 7
frontend/src/reducers/users.js

@@ -11,6 +11,17 @@ export function dehydrate(items) {
   };
   };
 }
 }
 
 
+export function dehydrateStatus(status) {
+  if (status) {
+    return Object.assign({}, status, {
+      last_click: status.last_click ? moment(status.last_click) : null,
+      banned_until: status.banned_until ? moment(status.banned_until) : null
+    });
+  } else {
+    return null;
+  }
+}
+
 export function updateAvatar(user, avatarHash) {
 export function updateAvatar(user, avatarHash) {
   return {
   return {
     type: UPDATE_AVATAR,
     type: UPDATE_AVATAR,
@@ -32,19 +43,23 @@ export default function user(state=[], action=null) {
   switch (action.type) {
   switch (action.type) {
     case DEHYDRATE_RESULT:
     case DEHYDRATE_RESULT:
       return action.items.map(function(item) {
       return action.items.map(function(item) {
-        let status = item.status || null;
-        if (status) {
-          status = Object.assign({}, status, {
-            last_click: status.last_click ? moment(status.last_click) : null,
-            banned_until: status.banned_until ? moment(status.banned_until) : null
-          });
-        }
+        let status = dehydrateStatus(item.status);
 
 
         return Object.assign({}, item, {
         return Object.assign({}, item, {
           status
           status
         });
         });
       });
       });
 
 
+    case UPDATE_AVATAR:
+      return state.map(function(item) {
+        item = Object.assign({}, item);
+        if (item.id === action.userId) {
+          item.avatar_hash = action.avatarHash;
+        }
+
+        return item;
+      });
+
     default:
     default:
       return state;
       return state;
   }
   }

+ 2 - 2
frontend/tests/components/options/sign-in-credentials.js

@@ -144,7 +144,7 @@ describe("Change Password Form", function() {
       SETTINGS: {
       SETTINGS: {
         password_length_min: 4
         password_length_min: 4
       }
       }
-    }
+    };
   });
   });
 
 
   afterEach(function() {
   afterEach(function() {
@@ -305,7 +305,7 @@ describe("Change Sign In Credentials Root", function() {
       SETTINGS: {
       SETTINGS: {
         password_length_min: 4
         password_length_min: 4
       }
       }
-    }
+    };
   });
   });
 
 
   it("renders", function(done) {
   it("renders", function(done) {

+ 361 - 0
frontend/tests/components/user-status.js

@@ -0,0 +1,361 @@
+import assert from 'assert';
+import moment from 'moment'; // jshint ignore:line
+import React from 'react'; // jshint ignore:line
+import UserStatus, { StatusIcon, StatusLabel } from 'misago/components/user-status'; // jshint ignore:line
+import * as testUtils from 'misago/utils/test-utils';
+
+let status = {
+  is_hidden: false,
+  is_online_hidden: false,
+  is_offline_hidden: false,
+  is_online: false,
+  is_offline: false,
+  last_click: moment().subtract(7, 'days'),
+
+  is_banned: false,
+  banned_until: moment().add(7, 'days')
+};
+
+/* jshint ignore:start */
+let user = {
+  username: 'Boberson'
+};
+/* jshint ignore:end */
+
+describe("User Status", function() {
+  afterEach(function() {
+    testUtils.unmountComponents();
+  });
+
+  it('renders for offline user', function() {
+    /* jshint ignore:start */
+    let testStatus = Object.assign({}, status, {
+      is_offline: true
+    });
+
+    testUtils.render(
+      <UserStatus status={testStatus}>
+        Some stuff
+      </UserStatus>
+    );
+    /* jshint ignore:end */
+
+    let element = $('#test-mount .user-status');
+    assert.ok(element.hasClass('user-offline'),
+      "component renders with valid class");
+    assert.equal(element.text().trim(), "Some stuff",
+      "component renders its children");
+  });
+
+  it('renders for offline (hidden) user', function() {
+    /* jshint ignore:start */
+    let testStatus = Object.assign({}, status, {
+      is_offline_hidden: true
+    });
+
+    testUtils.render(
+      <UserStatus status={testStatus}>
+        Some stuff
+      </UserStatus>
+    );
+    /* jshint ignore:end */
+
+    let element = $('#test-mount .user-status');
+    assert.ok(element.hasClass('user-offline'),
+      "component renders with valid class");
+    assert.equal(element.text().trim(), "Some stuff",
+      "component renders its children");
+  });
+
+  it('renders for online user', function() {
+    /* jshint ignore:start */
+    let testStatus = Object.assign({}, status, {
+      is_online: true
+    });
+
+    testUtils.render(
+      <UserStatus status={testStatus}>
+        Some stuff
+      </UserStatus>
+    );
+    /* jshint ignore:end */
+
+    let element = $('#test-mount .user-status');
+    assert.ok(element.hasClass('user-online'),
+      "component renders with valid class");
+    assert.equal(element.text().trim(), "Some stuff",
+      "component renders its children");
+  });
+
+  it('renders for online (hidden) user', function() {
+    /* jshint ignore:start */
+    let testStatus = Object.assign({}, status, {
+      is_online_hidden: true
+    });
+
+    testUtils.render(
+      <UserStatus status={testStatus}>
+        Some stuff
+      </UserStatus>
+    );
+    /* jshint ignore:end */
+
+    let element = $('#test-mount .user-status');
+    assert.ok(element.hasClass('user-online'),
+      "component renders with valid class");
+    assert.equal(element.text().trim(), "Some stuff",
+      "component renders its children");
+  });
+
+  it('renders for hidden user', function() {
+    /* jshint ignore:start */
+    let testStatus = Object.assign({}, status, {
+      is_hidden: true
+    });
+
+    testUtils.render(
+      <UserStatus status={testStatus}>
+        Some stuff
+      </UserStatus>
+    );
+    /* jshint ignore:end */
+
+    let element = $('#test-mount .user-status');
+    assert.ok(element.hasClass('user-offline'),
+      "component renders with valid class");
+    assert.equal(element.text().trim(), "Some stuff",
+      "component renders its children");
+  });
+
+  it('renders for banned user', function() {
+    /* jshint ignore:start */
+    let testStatus = Object.assign({}, status, {
+      is_banned: true
+    });
+
+    testUtils.render(
+      <UserStatus status={testStatus}>
+        Some stuff
+      </UserStatus>
+    );
+    /* jshint ignore:end */
+
+    let element = $('#test-mount .user-status');
+    assert.ok(element.hasClass('user-banned'),
+      "component renders with valid class");
+    assert.equal(element.text().trim(), "Some stuff",
+      "component renders its children");
+  });
+});
+
+describe("User Status Icon", function() {
+  afterEach(function() {
+    testUtils.unmountComponents();
+  });
+
+  it('renders for offline user', function() {
+    /* jshint ignore:start */
+    let testStatus = Object.assign({}, status, {
+      is_offline: true
+    });
+
+    testUtils.render(<StatusIcon status={testStatus} />);
+    /* jshint ignore:end */
+
+    let element = $('#test-mount .status-icon');
+    assert.equal(element.text().trim(), 'panorama_fish_eye',
+      "component renders with valid icon");
+  });
+
+  it('renders for offline (hidden) user', function() {
+    /* jshint ignore:start */
+    let testStatus = Object.assign({}, status, {
+      is_offline_hidden: true
+    });
+
+    testUtils.render(<StatusIcon status={testStatus} />);
+    /* jshint ignore:end */
+
+    let element = $('#test-mount .status-icon');
+    assert.equal(element.text().trim(), 'label_outline',
+      "component renders with valid icon");
+  });
+
+  it('renders for online user', function() {
+    /* jshint ignore:start */
+    let testStatus = Object.assign({}, status, {
+      is_online: true
+    });
+
+    testUtils.render(<StatusIcon status={testStatus} />);
+    /* jshint ignore:end */
+
+    let element = $('#test-mount .status-icon');
+    assert.equal(element.text().trim(), 'lens',
+      "component renders with valid icon");
+  });
+
+  it('renders for online (hidden) user', function() {
+    /* jshint ignore:start */
+    let testStatus = Object.assign({}, status, {
+      is_online_hidden: true
+    });
+
+    testUtils.render(<StatusIcon status={testStatus} />);
+    /* jshint ignore:end */
+
+    let element = $('#test-mount .status-icon');
+    assert.equal(element.text().trim(), 'label',
+      "component renders with valid icon");
+  });
+
+  it('renders for hidden user', function() {
+    /* jshint ignore:start */
+    let testStatus = Object.assign({}, status, {
+      is_hidden: true
+    });
+
+    testUtils.render(<StatusIcon status={testStatus} />);
+    /* jshint ignore:end */
+
+    let element = $('#test-mount .status-icon');
+    assert.equal(element.text().trim(), 'help_outline',
+      "component renders with valid icon");
+  });
+
+  it('renders for banned user', function() {
+    /* jshint ignore:start */
+    let testStatus = Object.assign({}, status, {
+      is_banned: true
+    });
+
+    testUtils.render(<StatusIcon status={testStatus} />);
+    /* jshint ignore:end */
+
+    let element = $('#test-mount .status-icon');
+    assert.equal(element.text().trim(), 'remove_circle_outline',
+      "component renders with valid icon");
+  });
+});
+
+describe("User Status Label", function() {
+  afterEach(function() {
+    testUtils.unmountComponents();
+  });
+
+  it('renders for offline user', function() {
+    /* jshint ignore:start */
+    let testStatus = Object.assign({}, status, {
+      is_offline: true
+    });
+
+    testUtils.render(<StatusLabel user={user} status={testStatus} />);
+    /* jshint ignore:end */
+
+    let element = $('#test-mount .status-label');
+    assert.equal(element.text().trim(), gettext("Offline"),
+      "component renders with valid label");
+    assert.equal(element.attr('title'),
+      "Boberson was last seen " + status.last_click.fromNow(),
+      "component renders with valid help");
+  });
+
+  it('renders for offline (hidden) user', function() {
+    /* jshint ignore:start */
+    let testStatus = Object.assign({}, status, {
+      is_offline_hidden: true
+    });
+
+    testUtils.render(<StatusLabel user={user} status={testStatus} />);
+    /* jshint ignore:end */
+
+    let element = $('#test-mount .status-label');
+    assert.equal(element.text().trim(), gettext("Offline (hidden)"),
+      "component renders with valid label");
+    assert.equal(element.attr('title'),
+      "Boberson was last seen " + status.last_click.fromNow() + " (hidden)",
+      "component renders with valid status.help");
+  });
+
+  it('renders for online user', function() {
+    /* jshint ignore:start */
+    let testStatus = Object.assign({}, status, {
+      is_online: true
+    });
+
+    testUtils.render(<StatusLabel user={user} status={testStatus} />);
+    /* jshint ignore:end */
+
+    let element = $('#test-mount .status-label');
+    assert.equal(element.text().trim(), gettext("Online"),
+      "component renders with valid label");
+    assert.equal(element.attr('title'), "Boberson is online",
+      "component renders with valid help");
+  });
+
+  it('renders for online (hidden) user', function() {
+    /* jshint ignore:start */
+    let testStatus = Object.assign({}, status, {
+      is_online_hidden: true
+    });
+
+    testUtils.render(<StatusLabel user={user} status={testStatus} />);
+    /* jshint ignore:end */
+
+    let element = $('#test-mount .status-label');
+    assert.equal(element.text().trim(), gettext("Online (hidden)"),
+      "component renders with valid label");
+    assert.equal(element.attr('title'), "Boberson is online (hidden)",
+      "component renders with valid help");
+  });
+
+  it('renders for hidden user', function() {
+    /* jshint ignore:start */
+    let testStatus = Object.assign({}, status, {
+      is_hidden: true
+    });
+
+    testUtils.render(<StatusLabel user={user} status={testStatus} />);
+    /* jshint ignore:end */
+
+    let element = $('#test-mount .status-label');
+    assert.equal(element.text().trim(), gettext("Hidden"),
+      "component renders with valid label");
+    assert.equal(element.attr('title'), "Boberson is hiding presence",
+      "component renders with valid help");
+  });
+
+  it('renders for banned user', function() {
+    /* jshint ignore:start */
+    let testStatus = Object.assign({}, status, {
+      is_banned: true
+    });
+
+    testUtils.render(<StatusLabel user={user} status={testStatus} />);
+    /* jshint ignore:end */
+
+    let element = $('#test-mount .status-label');
+    assert.equal(element.text().trim(), gettext("Banned"),
+      "component renders with valid label");
+    assert.equal(element.attr('title'),
+      "Boberson is banned until " + status.banned_until.format('LL, LT'),
+      "component renders with valid help");
+  });
+
+  it('renders for permabanned user', function() {
+    /* jshint ignore:start */
+    let testStatus = Object.assign({}, status, {
+      is_banned: true,
+      banned_until: null
+    });
+
+    testUtils.render(<StatusLabel user={user} status={testStatus} />);
+    /* jshint ignore:end */
+
+    let element = $('#test-mount .status-label');
+    assert.equal(element.text().trim(), gettext("Banned"),
+      "component renders with valid label");
+    assert.equal(element.attr('title'), "Boberson is banned",
+      "component renders with valid help");
+  });
+});

+ 77 - 0
frontend/tests/users.js

@@ -0,0 +1,77 @@
+import moment from 'moment';
+import assert from 'assert';
+import reducer, { updateAvatar, dehydrate, dehydrateStatus } from 'misago/reducers/users';
+
+describe("Users Reducer", function() {
+  it("dehydrates result", function() {
+    let timestamp = moment().format();
+    let state = reducer([], dehydrate([
+      {
+        something: 'ok',
+        status: null
+      },
+      {
+        something: 'okie',
+        status: {
+          last_click: timestamp,
+          banned_until: timestamp
+        }
+      },
+    ]));
+
+    assert.equal(state[0].status, null, "reducer left empty status unchanged");
+    assert.equal(state[0].something, 'ok', "other keys were unconverted");
+
+    assert.equal(state[1].status.last_click.format(), timestamp,
+      "reducer deserialized user's status");
+    assert.equal(state[1].something, 'okie', "other keys were unconverted");
+  });
+
+  it("updates avatar", function() {
+    let state = [
+      {
+        id: 123,
+        status: null,
+        avatar_hash: 'aabbccdd'
+      }
+    ];
+
+    assert.deepEqual(reducer(state, updateAvatar({
+      id: 123
+    }, '11223344')), [
+      {
+        id: 123,
+        status: null,
+        avatar_hash: '11223344'
+      }
+    ], "reducer updates user avatar");
+
+    assert.deepEqual(reducer(state, updateAvatar({
+      id: 321
+    }, '11223344')), [
+      {
+        id: 123,
+        status: null,
+        avatar_hash: 'aabbccdd'
+      }
+    ], "reducer validates user id");
+  });
+});
+
+describe("Dehydrate User Status", function() {
+  it("dehydrates status", function() {
+    let timestamp = moment().format();
+    let status = dehydrateStatus({
+      some_key: true,
+      last_click: timestamp,
+      banned_until: null
+    });
+
+    assert.equal(status.some_key, true, "non-special key was preserved");
+    assert.equal(status.last_click.format(), timestamp,
+      "last click key was hydrated");
+    assert.equal(status.banned_until, null, "ban date was hydrated");
+
+    assert.equal(dehydrateStatus(null), null, "null state was handled");
+  });
+});

+ 3 - 3
misago/static/misago/js/misago.js

@@ -2,7 +2,7 @@
 setState:y["default"](O,"setState is deprecated; use location.key to save state instead"),registerTransitionHook:y["default"](N,"registerTransitionHook is deprecated; use listenBefore instead"),unregisterTransitionHook:y["default"](j,"unregisterTransitionHook is deprecated; use the callback returned from listenBefore instead"),pushState:y["default"](P,"pushState is deprecated; use push instead"),replaceState:y["default"](C,"replaceState is deprecated; use replace instead")}}n.__esModule=!0;var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},u=e("deep-equal"),l=a(u),c=e("./AsyncUtils"),d=e("./Actions"),f=e("./createLocation"),p=a(f),m=e("./runTransitionHook"),h=a(m),v=e("./parsePath"),g=a(v),b=e("./deprecate"),y=a(b),_=6;n["default"]=o,t.exports=n["default"]},{"./Actions":33,"./AsyncUtils":34,"./createLocation":41,"./deprecate":42,"./parsePath":44,"./runTransitionHook":45,"deep-equal":30}],41:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){var e=arguments.length<=0||void 0===arguments[0]?"/":arguments[0],t=arguments.length<=1||void 0===arguments[1]?o.POP:arguments[1],n=arguments.length<=2||void 0===arguments[2]?null:arguments[2],a=arguments.length<=3||void 0===arguments[3]?null:arguments[3];"string"==typeof e&&(e=u["default"](e)),"object"==typeof t&&(e=s({},e,{state:t}),t=n||o.POP,n=a);var r=e.pathname||"/",i=e.search||"",l=e.hash||"",c=e.state||null;return{pathname:r,search:i,hash:l,state:c,action:t,key:n}}n.__esModule=!0;var s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},o=e("./Actions"),i=e("./parsePath"),u=a(i);n["default"]=r,t.exports=n["default"]},{"./Actions":33,"./parsePath":44}],42:[function(e,t,n){"use strict";function a(e){return e}n.__esModule=!0,n["default"]=a,t.exports=n["default"]},{}],43:[function(e,t,n){"use strict";function a(e){var t=e.match(/^https?:\/\/[^\/]*/);return null==t?e:e.substring(t[0].length)}n.__esModule=!0,n["default"]=a,t.exports=n["default"]},{}],44:[function(e,t,n){(function(a){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function s(e){var t=l["default"](e),n="",r="";"production"!==a.env.NODE_ENV?i["default"](e===t,'A path must be pathname + search + hash only, not a fully qualified URL like "%s"',e):void 0;var s=t.indexOf("#");-1!==s&&(r=t.substring(s),t=t.substring(0,s));var o=t.indexOf("?");return-1!==o&&(n=t.substring(o),t=t.substring(0,o)),""===t&&(t="/"),{pathname:t,search:n,hash:r}}n.__esModule=!0;var o=e("warning"),i=r(o),u=e("./extractPath"),l=r(u);n["default"]=s,t.exports=n["default"]}).call(this,e("_process"))},{"./extractPath":43,_process:1,warning:47}],45:[function(e,t,n){(function(a){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function s(e,t,n){var r=e(t,n);e.length<2?n(r):"production"!==a.env.NODE_ENV?i["default"](void 0===r,'You should not "return" in a transition hook with a callback argument; call the callback instead'):void 0}n.__esModule=!0;var o=e("warning"),i=r(o);n["default"]=s,t.exports=n["default"]}).call(this,e("_process"))},{_process:1,warning:47}],46:[function(e,t,n){"use strict";var a=function(e,t,n,a,r,s,o,i){if(!e){var u;if(void 0===t)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,a,r,s,o,i],c=0;u=new Error(t.replace(/%s/g,function(){return l[c++]})),u.name="Invariant Violation"}throw u.framesToPop=1,u}};t.exports=a},{}],47:[function(e,t,n){"use strict";var a=function(){};t.exports=a},{}],48:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return{user:e.auth.user,signedIn:e.auth.signedIn,signedOut:e.auth.signedOut}}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.select=i;var l=e("react"),c=a(l),d=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),u(t,[{key:"refresh",value:function(){window.location.reload()}},{key:"getMessage",value:function(){return this.props.signedIn?interpolate(gettext("You have signed in as %(username)s. Please refresh the page before continuing."),{username:this.props.signedIn.username},!0):this.props.signedOut?interpolate(gettext("%(username)s, you have been signed out. Please refresh the page before continuing."),{username:this.props.user.username},!0):void 0}},{key:"getClassName",value:function(){return this.props.signedIn||this.props.signedOut?"auth-message show":"auth-message"}},{key:"render",value:function(){return c["default"].createElement("div",{className:this.getClassName()},c["default"].createElement("div",{className:"container"},c["default"].createElement("p",{className:"lead"},this.getMessage()),c["default"].createElement("p",null,c["default"].createElement("button",{type:"button",className:"btn btn-default",onClick:this.refresh},gettext("Reload page"))," ",c["default"].createElement("span",{className:"hidden-xs hidden-sm text-muted"},gettext("or press F5 key.")))))}}]),t}(c["default"].Component);n["default"]=d},{react:"react"}],49:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=$("base").attr("href")+"user-avatar/",d=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"getSrc",value:function(){var e=this.props.size||100,t=c;return t+=this.props.user&&this.props.user.id?this.props.user.avatar_hash+"/"+e+"/"+this.props.user.id+".png":e+".png"}},{key:"render",value:function(){return l["default"].createElement("img",{src:this.getSrc(),className:this.props.className||"user-avatar",title:gettext("User avatar")})}}]),t}(l["default"].Component);n["default"]=d},{react:"react"}],50:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("moment"),l=a(u),c=e("react"),d=a(c),f=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"getReasonMessage",value:function(){return this.props.message.html?d["default"].createElement("div",{className:"lead",dangerouslySetInnerHTML:{__html:this.props.message.html}}):d["default"].createElement("p",{className:"lead"},this.props.message.plain)}},{key:"getExpirationMessage",value:function(){return this.props.expires?this.props.expires.isAfter((0,l["default"])())?interpolate(gettext("This ban expires %(expires_on)s."),{expires_on:this.props.expires.fromNow()},!0):gettext("This ban has expired."):gettext("This ban is permanent.")}},{key:"render",value:function(){return d["default"].createElement("div",{className:"page page-error page-error-banned"},d["default"].createElement("div",{className:"container"},d["default"].createElement("div",{className:"message-panel"},d["default"].createElement("div",{className:"message-icon"},d["default"].createElement("span",{className:"material-icon"},"highlight_off")),d["default"].createElement("div",{className:"message-body"},this.getReasonMessage(),d["default"].createElement("p",{className:"message-footnote"},this.getExpirationMessage())))))}}]),t}(d["default"].Component);n["default"]=f},{moment:"moment",react:"react"}],51:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("./loader"),d=a(c),f=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"render",value:function(){var e="btn "+this.props.className,t=this.props.disabled;return this.props.loading&&(e+=" btn-loading",t=!0),l["default"].createElement("button",{type:this.props.onClick?"button":"submit",className:e,disabled:t,onClick:this.props.onClick},this.props.children,this.props.loading?l["default"].createElement(d["default"],null):null)}}]),t}(l["default"].Component);n["default"]=f,f.defaultProps={className:"btn-default",type:"submit",loading:!1,disabled:!1,onClick:null}},{"./loader":60,react:"react"}],52:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("../avatar"),d=(a(c),e("../button")),f=a(d),p=e("../../services/ajax"),m=a(p),h=e("../../services/snackbar"),v=a(h),g=$("base").attr("href")+"user-avatar",b=function(e){function t(e){r(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.cropAvatar=function(){if(n.state.isLoading)return!1;n.setState({isLoading:!0});var e=n.props.upload?"crop_tmp":"crop_org",t=$(".crop-form");m["default"].post(n.props.user.api_url.avatar,{avatar:e,crop:{offset:t.cropit("offset"),zoom:t.cropit("zoom")}}).then(function(e){n.props.onComplete(e.avatar_hash,e.options),v["default"].success(e.detail)},function(e){400===e.status?(v["default"].error(e.detail),n.setState({isLoading:!1})):n.props.showError(e)})},n.state={isLoading:!1},n}return o(t,e),i(t,[{key:"getAvatarSize",value:function(){return this.props.upload?this.props.options.crop_tmp.size:this.props.options.crop_org.size}},{key:"getAvatarSecret",value:function(){return this.props.upload?this.props.options.crop_tmp.secret:this.props.options.crop_org.secret}},{key:"getAvatarHash",value:function(){return this.props.upload||this.props.user.avatar_hash}},{key:"getImagePath",value:function(){return[g,this.getAvatarSecret()+":"+this.getAvatarHash(),this.props.user.id+".png"].join("/")}},{key:"componentDidMount",value:function(){var e=this,t=$(".crop-form");t.width(this.getAvatarSize()),t.cropit({width:this.getAvatarSize(),height:this.getAvatarSize(),imageState:{src:this.getImagePath()},onImageLoaded:function(){if(e.props.upload){var n=t.cropit("zoom"),a=t.cropit("imageSize");if(a.width>a.height){var r=a.width*n,s=(r-e.getAvatarSize())/-2;t.cropit("offset",{x:s,y:0})}else if(a.width<a.height){var o=a.height*n,i=(o-e.getAvatarSize())/-2;t.cropit("offset",{x:0,y:i})}}else{var u=e.props.options.crop_org.crop;u&&(t.cropit("zoom",u.zoom),t.cropit("offset",{x:u.x,y:u.y}))}}})}},{key:"componentWillUnmount",value:function(){$(".crop-form").cropit("disable")}},{key:"render",value:function(){return l["default"].createElement("div",null,l["default"].createElement("div",{className:"modal-body modal-avatar-crop"},l["default"].createElement("div",{className:"crop-form"},l["default"].createElement("div",{className:"cropit-image-preview"}),l["default"].createElement("input",{type:"range",className:"cropit-image-zoom-input"}))),l["default"].createElement("div",{className:"modal-footer"},l["default"].createElement("div",{className:"col-md-6 col-md-offset-3"},l["default"].createElement(f["default"],{onClick:this.cropAvatar,loading:this.state.isLoading,className:"btn-primary btn-block"},this.props.upload?gettext("Set avatar"):gettext("Crop image")),l["default"].createElement(f["default"],{onClick:this.props.showIndex,disabled:this.state.isLoading,className:"btn-default btn-block"},gettext("Cancel")))))}}]),t}(l["default"].Component);n["default"]=b},{"../../services/ajax":91,"../../services/snackbar":99,"../avatar":49,"../button":51,react:"react"}],53:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Gallery=n.GalleryItem=void 0;var u=e("react"),l=a(u),c=e("../button"),d=a(c),f=e("../../index"),p=a(f),m=e("../../services/ajax"),h=a(m),v=e("../../services/snackbar"),g=a(v),b=e("../../utils/batch"),y=a(b),_=n.GalleryItem=function(e){function t(){var e,n,a,o;r(this,t);for(var i=arguments.length,u=Array(i),l=0;i>l;l++)u[l]=arguments[l];return n=a=s(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.select=function(){a.props.select(a.props.image)},o=n,s(a,o)}return o(t,e),i(t,[{key:"getClassName",value:function(){return this.props.selection===this.props.image?this.props.disabled?"btn btn-avatar btn-disabled avatar-selected":"btn btn-avatar avatar-selected":this.props.disabled?"btn btn-avatar btn-disabled":"btn btn-avatar"}},{key:"render",value:function(){return l["default"].createElement("button",{type:"button",className:this.getClassName(),disabled:this.props.disabled,onClick:this.select},l["default"].createElement("img",{src:p["default"].get("MEDIA_URL")+this.props.image}))}}]),t}(l["default"].Component),w=n.Gallery=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"render",value:function(){var e=this;return l["default"].createElement("div",{className:"avatars-gallery"},l["default"].createElement("h3",null,this.props.name),l["default"].createElement("div",{className:"avatars-gallery-images"},(0,y["default"])(this.props.images,4,null).map(function(t,n){return l["default"].createElement("div",{className:"row",key:n},t.map(function(t,n){return l["default"].createElement("div",{className:"col-xs-3",key:n},t?l["default"].createElement(_,{image:t,disabled:e.props.disabled,select:e.props.select,selection:e.props.selection}):l["default"].createElement("div",{className:"blank-avatar"}))}))})))}}]),t}(l["default"].Component),E=function(e){function t(e){r(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.select=function(e){n.setState({selection:e})},n.save=function(){return n.state.isLoading?!1:(n.setState({isLoading:!0}),void h["default"].post(n.props.user.api_url.avatar,{avatar:"galleries",image:n.state.selection}).then(function(e){n.setState({isLoading:!1}),g["default"].success(e.detail),n.props.onComplete(e.avatar_hash,e.options)},function(e){400===e.status?(g["default"].error(e.detail),n.setState({isLoading:!1})):n.props.showError(e)}))},n.state={selection:null,isLoading:!1},n}return o(t,e),i(t,[{key:"render",value:function(){var e=this;return l["default"].createElement("div",null,l["default"].createElement("div",{className:"modal-body modal-avatar-gallery"},this.props.options.galleries.map(function(t,n){return l["default"].createElement(w,{name:t.name,images:t.images,selection:e.state.selection,disabled:e.state.isLoading,select:e.select,key:n})})),l["default"].createElement("div",{className:"modal-footer"},l["default"].createElement("div",{className:"row"},l["default"].createElement("div",{className:"col-md-6 col-md-offset-3"},l["default"].createElement(d["default"],{onClick:this.save,loading:this.state.isLoading,disabled:!this.state.selection,className:"btn-primary btn-block"},this.state.selection?gettext("Save choice"):gettext("Select avatar")),l["default"].createElement(d["default"],{onClick:this.props.showIndex,disabled:this.state.isLoading,className:"btn-default btn-block"},gettext("Cancel"))))))}}]),t}(l["default"].Component);n["default"]=E},{"../../index":85,"../../services/ajax":91,"../../services/snackbar":99,"../../utils/batch":103,"../button":51,react:"react"}],54:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("../avatar"),d=a(c),f=e("../button"),p=a(f),m=e("../loader"),h=a(m),v=e("../../services/ajax"),g=a(v),b=e("../../services/snackbar"),y=a(b),_=function(e){function t(e){r(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.setGravatar=function(){n.callApi("gravatar")},n.setGenerated=function(){n.callApi("generated")},n.state={isLoading:!1},n}return o(t,e),i(t,[{key:"callApi",value:function(e){var t=this;return this.state.isLoading?!1:(this.setState({isLoading:!0}),void g["default"].post(this.props.user.api_url.avatar,{avatar:e}).then(function(e){t.setState({isLoading:!1}),y["default"].success(e.detail),t.props.onComplete(e.avatar_hash,e.options)},function(e){400===e.status?(y["default"].error(e.detail),t.setState({isLoading:!1})):t.props.showError(e)}))}},{key:"getGravatarButton",value:function(){return this.props.options.gravatar?l["default"].createElement(p["default"],{onClick:this.setGravatar,disabled:this.state.isLoading,className:"btn-default btn-block btn-avatar-gravatar"},gettext("Download my Gravatar")):null}},{key:"getCropButton",value:function(){return this.props.options.crop_org?l["default"].createElement(p["default"],{onClick:this.props.showCrop,disabled:this.state.isLoading,className:"btn-default btn-block btn-avatar-crop"},gettext("Re-crop uploaded image")):null}},{key:"getUploadButton",value:function(){return this.props.options.upload?l["default"].createElement(p["default"],{onClick:this.props.showUpload,disabled:this.state.isLoading,className:"btn-default btn-block btn-avatar-upload"},gettext("Upload new image")):null}},{key:"getGalleryButton",value:function(){return this.props.options.galleries?l["default"].createElement(p["default"],{onClick:this.props.showGallery,disabled:this.state.isLoading,className:"btn-default btn-block btn-avatar-gallery"},gettext("Pick avatar from gallery")):null}},{key:"getAvatarPreview",value:function(){return this.state.isLoading?l["default"].createElement("div",{className:"avatar-preview preview-loading"},l["default"].createElement(d["default"],{user:this.props.user,size:"200"}),l["default"].createElement(h["default"],null)):l["default"].createElement("div",{className:"avatar-preview"},l["default"].createElement(d["default"],{user:this.props.user,size:"200"}))}},{key:"render",value:function(){return l["default"].createElement("div",{className:"modal-body modal-avatar-index"},l["default"].createElement("div",{className:"row"},l["default"].createElement("div",{className:"col-md-5"},this.getAvatarPreview()),l["default"].createElement("div",{className:"col-md-7"},this.getGravatarButton(),l["default"].createElement(p["default"],{onClick:this.setGenerated,disabled:this.state.isLoading,className:"btn-default btn-block btn-avatar-generate"},gettext("Generate my individual avatar")),this.getCropButton(),this.getUploadButton(),this.getGalleryButton())))}}]),t}(l["default"].Component);n["default"]=_},{"../../services/ajax":91,"../../services/snackbar":99,"../avatar":49,"../button":51,"../loader":60,react:"react"}],55:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return{user:e.auth.user}}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.ChangeAvatarError=void 0,n.select=i;var l=e("react"),c=a(l),d=e("./index"),f=a(d),p=e("./crop"),m=a(p),h=e("./upload"),v=a(h),g=e("./gallery"),b=a(g),y=e("../modal-loader"),_=a(y),w=e("../../reducers/users"),E=e("../../services/ajax"),k=a(E),O=e("../../services/store"),x=a(O),N=n.ChangeAvatarError=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),u(t,[{key:"getErrorReason",value:function(){return this.props.reason?c["default"].createElement("p",{dangerouslySetInnerHTML:{__html:this.props.reason}}):null}},{key:"render",value:function(){return c["default"].createElement("div",{className:"modal-body"},c["default"].createElement("div",{className:"message-icon"},c["default"].createElement("span",{className:"material-icon"},"remove_circle_outline")),c["default"].createElement("div",{className:"message-body"},c["default"].createElement("p",{className:"lead"},this.props.message),this.getErrorReason()))}}]),t}(c["default"].Component),j=function(e){function t(){var e,n,a,o;r(this,t);for(var i=arguments.length,u=Array(i),l=0;i>l;l++)u[l]=arguments[l];return n=a=s(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.showError=function(e){a.setState({error:e})},a.showIndex=function(){a.setState({component:f["default"]})},a.showUpload=function(){a.setState({component:v["default"]})},a.showCrop=function(){a.setState({component:m["default"]})},a.showGallery=function(){a.setState({component:b["default"]})},a.completeFlow=function(e,t){x["default"].dispatch((0,w.updateAvatar)(a.props.user,e)),a.setState({component:f["default"],options:t})},o=n,s(a,o)}return o(t,e),u(t,[{key:"componentDidMount",value:function(){var e=this;k["default"].get(this.props.user.api_url.avatar).then(function(t){e.setState({component:f["default"],options:t,error:null})},function(t){e.showError(t)})}},{key:"getBody",value:function(){return this.state?this.state.error?c["default"].createElement(N,{message:this.state.error.detail,reason:this.state.error.reason}):c["default"].createElement(this.state.component,{options:this.state.options,user:this.props.user,onComplete:this.completeFlow,showError:this.showError,showIndex:this.showIndex,showCrop:this.showCrop,showUpload:this.showUpload,showGallery:this.showGallery}):c["default"].createElement(_["default"],null)}},{key:"getClassName",value:function(){return this.state&&this.state.error?"modal-dialog modal-message modal-change-avatar":"modal-dialog modal-change-avatar"}},{key:"render",value:function(){return c["default"].createElement("div",{className:this.getClassName(),role:"document"},c["default"].createElement("div",{className:"modal-content"},c["default"].createElement("div",{className:"modal-header"},c["default"].createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":gettext("Close")},c["default"].createElement("span",{"aria-hidden":"true"},"×")),c["default"].createElement("h4",{className:"modal-title"},gettext("Change your avatar"))),this.getBody()))}}]),t}(c["default"].Component);n["default"]=j},{"../../reducers/users":90,"../../services/ajax":91,"../../services/store":100,"../modal-loader":61,"./crop":52,"./gallery":53,"./index":54,"./upload":56,react:"react"}],56:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("./crop"),d=a(c),f=e("../button"),p=a(f),m=e("../../services/ajax"),h=a(m),v=e("../../services/snackbar"),g=a(v),b=e("../../utils/file-size"),y=a(b),_=function(e){function t(e){r(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.pickFile=function(){document.getElementById("avatar-hidden-upload").click()},n.uploadFile=function(){var e=document.getElementById("avatar-hidden-upload").files[0],t=n.validateFile(e);if(t)return void g["default"].error(t);n.setState({image:e,preview:URL.createObjectURL(e),progress:0});var a=new FormData;a.append("avatar","upload"),a.append("image",e),h["default"].upload(n.props.user.api_url.avatar,a,function(e){n.setState({progress:e})}).then(function(e){n.setState({options:e.options,uploaded:e.detail}),g["default"].info(gettext("Your image has been uploaded and you may now crop it."))},function(e){400===e.status?(g["default"].error(e.detail),n.setState({isLoading:!1,image:null,progress:0})):n.props.showError(e)})},n.state={image:null,preview:null,progress:0,uploaded:null},n}return o(t,e),i(t,[{key:"validateFile",value:function(e){if(e.size>this.props.options.upload.limit)return interpolate(gettext("Selected file is too big. (%(filesize)s)"),{filesize:(0,y["default"])(e.size)},!0);var t=gettext("Selected file type is not supported.");if(-1===this.props.options.upload.allowed_mime_types.indexOf(e.type))return t;var n=!1,a=e.name.toLowerCase();return this.props.options.upload.allowed_extensions.map(function(e){a.substr(-1*e.length)===e&&(n=!0)}),n?!1:t}},{key:"getUploadRequirements",value:function(e){var t=e.allowed_extensions.map(function(e){return e.substr(1)});return interpolate(gettext("%(files)s files smaller than %(limit)s"),{files:t.join(", "),limit:(0,y["default"])(e.limit)},!0)}},{key:"getUploadButton",value:function(){return l["default"].createElement("div",{className:"modal-body modal-avatar-upload"},l["default"].createElement(p["default"],{className:"btn-pick-file",onClick:this.pickFile},l["default"].createElement("div",{className:"material-icon"},"input"),gettext("Select file")),l["default"].createElement("p",{className:"text-muted"},this.getUploadRequirements(this.props.options.upload)))}},{key:"getUploadProgressLabel",value:function(){return interpolate(gettext("%(progress)s % complete"),{progress:this.state.progress},!0)}},{key:"getUploadProgress",value:function(){return l["default"].createElement("div",{className:"modal-body modal-avatar-upload"},l["default"].createElement("div",{className:"upload-progress"},l["default"].createElement("img",{src:this.state.preview}),l["default"].createElement("div",{className:"progress"},l["default"].createElement("div",{className:"progress-bar",role:"progressbar","aria-valuenow":"{this.state.progress}","aria-valuemin":"0","aria-valuemax":"100",style:{
 setState:y["default"](O,"setState is deprecated; use location.key to save state instead"),registerTransitionHook:y["default"](N,"registerTransitionHook is deprecated; use listenBefore instead"),unregisterTransitionHook:y["default"](j,"unregisterTransitionHook is deprecated; use the callback returned from listenBefore instead"),pushState:y["default"](P,"pushState is deprecated; use push instead"),replaceState:y["default"](C,"replaceState is deprecated; use replace instead")}}n.__esModule=!0;var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},u=e("deep-equal"),l=a(u),c=e("./AsyncUtils"),d=e("./Actions"),f=e("./createLocation"),p=a(f),m=e("./runTransitionHook"),h=a(m),v=e("./parsePath"),g=a(v),b=e("./deprecate"),y=a(b),_=6;n["default"]=o,t.exports=n["default"]},{"./Actions":33,"./AsyncUtils":34,"./createLocation":41,"./deprecate":42,"./parsePath":44,"./runTransitionHook":45,"deep-equal":30}],41:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){var e=arguments.length<=0||void 0===arguments[0]?"/":arguments[0],t=arguments.length<=1||void 0===arguments[1]?o.POP:arguments[1],n=arguments.length<=2||void 0===arguments[2]?null:arguments[2],a=arguments.length<=3||void 0===arguments[3]?null:arguments[3];"string"==typeof e&&(e=u["default"](e)),"object"==typeof t&&(e=s({},e,{state:t}),t=n||o.POP,n=a);var r=e.pathname||"/",i=e.search||"",l=e.hash||"",c=e.state||null;return{pathname:r,search:i,hash:l,state:c,action:t,key:n}}n.__esModule=!0;var s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},o=e("./Actions"),i=e("./parsePath"),u=a(i);n["default"]=r,t.exports=n["default"]},{"./Actions":33,"./parsePath":44}],42:[function(e,t,n){"use strict";function a(e){return e}n.__esModule=!0,n["default"]=a,t.exports=n["default"]},{}],43:[function(e,t,n){"use strict";function a(e){var t=e.match(/^https?:\/\/[^\/]*/);return null==t?e:e.substring(t[0].length)}n.__esModule=!0,n["default"]=a,t.exports=n["default"]},{}],44:[function(e,t,n){(function(a){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function s(e){var t=l["default"](e),n="",r="";"production"!==a.env.NODE_ENV?i["default"](e===t,'A path must be pathname + search + hash only, not a fully qualified URL like "%s"',e):void 0;var s=t.indexOf("#");-1!==s&&(r=t.substring(s),t=t.substring(0,s));var o=t.indexOf("?");return-1!==o&&(n=t.substring(o),t=t.substring(0,o)),""===t&&(t="/"),{pathname:t,search:n,hash:r}}n.__esModule=!0;var o=e("warning"),i=r(o),u=e("./extractPath"),l=r(u);n["default"]=s,t.exports=n["default"]}).call(this,e("_process"))},{"./extractPath":43,_process:1,warning:47}],45:[function(e,t,n){(function(a){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function s(e,t,n){var r=e(t,n);e.length<2?n(r):"production"!==a.env.NODE_ENV?i["default"](void 0===r,'You should not "return" in a transition hook with a callback argument; call the callback instead'):void 0}n.__esModule=!0;var o=e("warning"),i=r(o);n["default"]=s,t.exports=n["default"]}).call(this,e("_process"))},{_process:1,warning:47}],46:[function(e,t,n){"use strict";var a=function(e,t,n,a,r,s,o,i){if(!e){var u;if(void 0===t)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,a,r,s,o,i],c=0;u=new Error(t.replace(/%s/g,function(){return l[c++]})),u.name="Invariant Violation"}throw u.framesToPop=1,u}};t.exports=a},{}],47:[function(e,t,n){"use strict";var a=function(){};t.exports=a},{}],48:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return{user:e.auth.user,signedIn:e.auth.signedIn,signedOut:e.auth.signedOut}}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.select=i;var l=e("react"),c=a(l),d=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),u(t,[{key:"refresh",value:function(){window.location.reload()}},{key:"getMessage",value:function(){return this.props.signedIn?interpolate(gettext("You have signed in as %(username)s. Please refresh the page before continuing."),{username:this.props.signedIn.username},!0):this.props.signedOut?interpolate(gettext("%(username)s, you have been signed out. Please refresh the page before continuing."),{username:this.props.user.username},!0):void 0}},{key:"getClassName",value:function(){return this.props.signedIn||this.props.signedOut?"auth-message show":"auth-message"}},{key:"render",value:function(){return c["default"].createElement("div",{className:this.getClassName()},c["default"].createElement("div",{className:"container"},c["default"].createElement("p",{className:"lead"},this.getMessage()),c["default"].createElement("p",null,c["default"].createElement("button",{type:"button",className:"btn btn-default",onClick:this.refresh},gettext("Reload page"))," ",c["default"].createElement("span",{className:"hidden-xs hidden-sm text-muted"},gettext("or press F5 key.")))))}}]),t}(c["default"].Component);n["default"]=d},{react:"react"}],49:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=$("base").attr("href")+"user-avatar/",d=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"getSrc",value:function(){var e=this.props.size||100,t=c;return t+=this.props.user&&this.props.user.id?this.props.user.avatar_hash+"/"+e+"/"+this.props.user.id+".png":e+".png"}},{key:"render",value:function(){return l["default"].createElement("img",{src:this.getSrc(),className:this.props.className||"user-avatar",title:gettext("User avatar")})}}]),t}(l["default"].Component);n["default"]=d},{react:"react"}],50:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("moment"),l=a(u),c=e("react"),d=a(c),f=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"getReasonMessage",value:function(){return this.props.message.html?d["default"].createElement("div",{className:"lead",dangerouslySetInnerHTML:{__html:this.props.message.html}}):d["default"].createElement("p",{className:"lead"},this.props.message.plain)}},{key:"getExpirationMessage",value:function(){return this.props.expires?this.props.expires.isAfter((0,l["default"])())?interpolate(gettext("This ban expires %(expires_on)s."),{expires_on:this.props.expires.fromNow()},!0):gettext("This ban has expired."):gettext("This ban is permanent.")}},{key:"render",value:function(){return d["default"].createElement("div",{className:"page page-error page-error-banned"},d["default"].createElement("div",{className:"container"},d["default"].createElement("div",{className:"message-panel"},d["default"].createElement("div",{className:"message-icon"},d["default"].createElement("span",{className:"material-icon"},"highlight_off")),d["default"].createElement("div",{className:"message-body"},this.getReasonMessage(),d["default"].createElement("p",{className:"message-footnote"},this.getExpirationMessage())))))}}]),t}(d["default"].Component);n["default"]=f},{moment:"moment",react:"react"}],51:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("./loader"),d=a(c),f=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"render",value:function(){var e="btn "+this.props.className,t=this.props.disabled;return this.props.loading&&(e+=" btn-loading",t=!0),l["default"].createElement("button",{type:this.props.onClick?"button":"submit",className:e,disabled:t,onClick:this.props.onClick},this.props.children,this.props.loading?l["default"].createElement(d["default"],null):null)}}]),t}(l["default"].Component);n["default"]=f,f.defaultProps={className:"btn-default",type:"submit",loading:!1,disabled:!1,onClick:null}},{"./loader":60,react:"react"}],52:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("../avatar"),d=(a(c),e("../button")),f=a(d),p=e("../../services/ajax"),m=a(p),h=e("../../services/snackbar"),v=a(h),g=$("base").attr("href")+"user-avatar",b=function(e){function t(e){r(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.cropAvatar=function(){if(n.state.isLoading)return!1;n.setState({isLoading:!0});var e=n.props.upload?"crop_tmp":"crop_org",t=$(".crop-form");m["default"].post(n.props.user.api_url.avatar,{avatar:e,crop:{offset:t.cropit("offset"),zoom:t.cropit("zoom")}}).then(function(e){n.props.onComplete(e.avatar_hash,e.options),v["default"].success(e.detail)},function(e){400===e.status?(v["default"].error(e.detail),n.setState({isLoading:!1})):n.props.showError(e)})},n.state={isLoading:!1},n}return o(t,e),i(t,[{key:"getAvatarSize",value:function(){return this.props.upload?this.props.options.crop_tmp.size:this.props.options.crop_org.size}},{key:"getAvatarSecret",value:function(){return this.props.upload?this.props.options.crop_tmp.secret:this.props.options.crop_org.secret}},{key:"getAvatarHash",value:function(){return this.props.upload||this.props.user.avatar_hash}},{key:"getImagePath",value:function(){return[g,this.getAvatarSecret()+":"+this.getAvatarHash(),this.props.user.id+".png"].join("/")}},{key:"componentDidMount",value:function(){var e=this,t=$(".crop-form");t.width(this.getAvatarSize()),t.cropit({width:this.getAvatarSize(),height:this.getAvatarSize(),imageState:{src:this.getImagePath()},onImageLoaded:function(){if(e.props.upload){var n=t.cropit("zoom"),a=t.cropit("imageSize");if(a.width>a.height){var r=a.width*n,s=(r-e.getAvatarSize())/-2;t.cropit("offset",{x:s,y:0})}else if(a.width<a.height){var o=a.height*n,i=(o-e.getAvatarSize())/-2;t.cropit("offset",{x:0,y:i})}}else{var u=e.props.options.crop_org.crop;u&&(t.cropit("zoom",u.zoom),t.cropit("offset",{x:u.x,y:u.y}))}}})}},{key:"componentWillUnmount",value:function(){$(".crop-form").cropit("disable")}},{key:"render",value:function(){return l["default"].createElement("div",null,l["default"].createElement("div",{className:"modal-body modal-avatar-crop"},l["default"].createElement("div",{className:"crop-form"},l["default"].createElement("div",{className:"cropit-image-preview"}),l["default"].createElement("input",{type:"range",className:"cropit-image-zoom-input"}))),l["default"].createElement("div",{className:"modal-footer"},l["default"].createElement("div",{className:"col-md-6 col-md-offset-3"},l["default"].createElement(f["default"],{onClick:this.cropAvatar,loading:this.state.isLoading,className:"btn-primary btn-block"},this.props.upload?gettext("Set avatar"):gettext("Crop image")),l["default"].createElement(f["default"],{onClick:this.props.showIndex,disabled:this.state.isLoading,className:"btn-default btn-block"},gettext("Cancel")))))}}]),t}(l["default"].Component);n["default"]=b},{"../../services/ajax":91,"../../services/snackbar":99,"../avatar":49,"../button":51,react:"react"}],53:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Gallery=n.GalleryItem=void 0;var u=e("react"),l=a(u),c=e("../button"),d=a(c),f=e("../../index"),p=a(f),m=e("../../services/ajax"),h=a(m),v=e("../../services/snackbar"),g=a(v),b=e("../../utils/batch"),y=a(b),_=n.GalleryItem=function(e){function t(){var e,n,a,o;r(this,t);for(var i=arguments.length,u=Array(i),l=0;i>l;l++)u[l]=arguments[l];return n=a=s(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.select=function(){a.props.select(a.props.image)},o=n,s(a,o)}return o(t,e),i(t,[{key:"getClassName",value:function(){return this.props.selection===this.props.image?this.props.disabled?"btn btn-avatar btn-disabled avatar-selected":"btn btn-avatar avatar-selected":this.props.disabled?"btn btn-avatar btn-disabled":"btn btn-avatar"}},{key:"render",value:function(){return l["default"].createElement("button",{type:"button",className:this.getClassName(),disabled:this.props.disabled,onClick:this.select},l["default"].createElement("img",{src:p["default"].get("MEDIA_URL")+this.props.image}))}}]),t}(l["default"].Component),w=n.Gallery=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"render",value:function(){var e=this;return l["default"].createElement("div",{className:"avatars-gallery"},l["default"].createElement("h3",null,this.props.name),l["default"].createElement("div",{className:"avatars-gallery-images"},(0,y["default"])(this.props.images,4,null).map(function(t,n){return l["default"].createElement("div",{className:"row",key:n},t.map(function(t,n){return l["default"].createElement("div",{className:"col-xs-3",key:n},t?l["default"].createElement(_,{image:t,disabled:e.props.disabled,select:e.props.select,selection:e.props.selection}):l["default"].createElement("div",{className:"blank-avatar"}))}))})))}}]),t}(l["default"].Component),E=function(e){function t(e){r(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.select=function(e){n.setState({selection:e})},n.save=function(){return n.state.isLoading?!1:(n.setState({isLoading:!0}),void h["default"].post(n.props.user.api_url.avatar,{avatar:"galleries",image:n.state.selection}).then(function(e){n.setState({isLoading:!1}),g["default"].success(e.detail),n.props.onComplete(e.avatar_hash,e.options)},function(e){400===e.status?(g["default"].error(e.detail),n.setState({isLoading:!1})):n.props.showError(e)}))},n.state={selection:null,isLoading:!1},n}return o(t,e),i(t,[{key:"render",value:function(){var e=this;return l["default"].createElement("div",null,l["default"].createElement("div",{className:"modal-body modal-avatar-gallery"},this.props.options.galleries.map(function(t,n){return l["default"].createElement(w,{name:t.name,images:t.images,selection:e.state.selection,disabled:e.state.isLoading,select:e.select,key:n})})),l["default"].createElement("div",{className:"modal-footer"},l["default"].createElement("div",{className:"row"},l["default"].createElement("div",{className:"col-md-6 col-md-offset-3"},l["default"].createElement(d["default"],{onClick:this.save,loading:this.state.isLoading,disabled:!this.state.selection,className:"btn-primary btn-block"},this.state.selection?gettext("Save choice"):gettext("Select avatar")),l["default"].createElement(d["default"],{onClick:this.props.showIndex,disabled:this.state.isLoading,className:"btn-default btn-block"},gettext("Cancel"))))))}}]),t}(l["default"].Component);n["default"]=E},{"../../index":85,"../../services/ajax":91,"../../services/snackbar":99,"../../utils/batch":103,"../button":51,react:"react"}],54:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("../avatar"),d=a(c),f=e("../button"),p=a(f),m=e("../loader"),h=a(m),v=e("../../services/ajax"),g=a(v),b=e("../../services/snackbar"),y=a(b),_=function(e){function t(e){r(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.setGravatar=function(){n.callApi("gravatar")},n.setGenerated=function(){n.callApi("generated")},n.state={isLoading:!1},n}return o(t,e),i(t,[{key:"callApi",value:function(e){var t=this;return this.state.isLoading?!1:(this.setState({isLoading:!0}),void g["default"].post(this.props.user.api_url.avatar,{avatar:e}).then(function(e){t.setState({isLoading:!1}),y["default"].success(e.detail),t.props.onComplete(e.avatar_hash,e.options)},function(e){400===e.status?(y["default"].error(e.detail),t.setState({isLoading:!1})):t.props.showError(e)}))}},{key:"getGravatarButton",value:function(){return this.props.options.gravatar?l["default"].createElement(p["default"],{onClick:this.setGravatar,disabled:this.state.isLoading,className:"btn-default btn-block btn-avatar-gravatar"},gettext("Download my Gravatar")):null}},{key:"getCropButton",value:function(){return this.props.options.crop_org?l["default"].createElement(p["default"],{onClick:this.props.showCrop,disabled:this.state.isLoading,className:"btn-default btn-block btn-avatar-crop"},gettext("Re-crop uploaded image")):null}},{key:"getUploadButton",value:function(){return this.props.options.upload?l["default"].createElement(p["default"],{onClick:this.props.showUpload,disabled:this.state.isLoading,className:"btn-default btn-block btn-avatar-upload"},gettext("Upload new image")):null}},{key:"getGalleryButton",value:function(){return this.props.options.galleries?l["default"].createElement(p["default"],{onClick:this.props.showGallery,disabled:this.state.isLoading,className:"btn-default btn-block btn-avatar-gallery"},gettext("Pick avatar from gallery")):null}},{key:"getAvatarPreview",value:function(){return this.state.isLoading?l["default"].createElement("div",{className:"avatar-preview preview-loading"},l["default"].createElement(d["default"],{user:this.props.user,size:"200"}),l["default"].createElement(h["default"],null)):l["default"].createElement("div",{className:"avatar-preview"},l["default"].createElement(d["default"],{user:this.props.user,size:"200"}))}},{key:"render",value:function(){return l["default"].createElement("div",{className:"modal-body modal-avatar-index"},l["default"].createElement("div",{className:"row"},l["default"].createElement("div",{className:"col-md-5"},this.getAvatarPreview()),l["default"].createElement("div",{className:"col-md-7"},this.getGravatarButton(),l["default"].createElement(p["default"],{onClick:this.setGenerated,disabled:this.state.isLoading,className:"btn-default btn-block btn-avatar-generate"},gettext("Generate my individual avatar")),this.getCropButton(),this.getUploadButton(),this.getGalleryButton())))}}]),t}(l["default"].Component);n["default"]=_},{"../../services/ajax":91,"../../services/snackbar":99,"../avatar":49,"../button":51,"../loader":60,react:"react"}],55:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return{user:e.auth.user}}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.ChangeAvatarError=void 0,n.select=i;var l=e("react"),c=a(l),d=e("./index"),f=a(d),p=e("./crop"),m=a(p),h=e("./upload"),v=a(h),g=e("./gallery"),b=a(g),y=e("../modal-loader"),_=a(y),w=e("../../reducers/users"),E=e("../../services/ajax"),k=a(E),O=e("../../services/store"),x=a(O),N=n.ChangeAvatarError=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),u(t,[{key:"getErrorReason",value:function(){return this.props.reason?c["default"].createElement("p",{dangerouslySetInnerHTML:{__html:this.props.reason}}):null}},{key:"render",value:function(){return c["default"].createElement("div",{className:"modal-body"},c["default"].createElement("div",{className:"message-icon"},c["default"].createElement("span",{className:"material-icon"},"remove_circle_outline")),c["default"].createElement("div",{className:"message-body"},c["default"].createElement("p",{className:"lead"},this.props.message),this.getErrorReason()))}}]),t}(c["default"].Component),j=function(e){function t(){var e,n,a,o;r(this,t);for(var i=arguments.length,u=Array(i),l=0;i>l;l++)u[l]=arguments[l];return n=a=s(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.showError=function(e){a.setState({error:e})},a.showIndex=function(){a.setState({component:f["default"]})},a.showUpload=function(){a.setState({component:v["default"]})},a.showCrop=function(){a.setState({component:m["default"]})},a.showGallery=function(){a.setState({component:b["default"]})},a.completeFlow=function(e,t){x["default"].dispatch((0,w.updateAvatar)(a.props.user,e)),a.setState({component:f["default"],options:t})},o=n,s(a,o)}return o(t,e),u(t,[{key:"componentDidMount",value:function(){var e=this;k["default"].get(this.props.user.api_url.avatar).then(function(t){e.setState({component:f["default"],options:t,error:null})},function(t){e.showError(t)})}},{key:"getBody",value:function(){return this.state?this.state.error?c["default"].createElement(N,{message:this.state.error.detail,reason:this.state.error.reason}):c["default"].createElement(this.state.component,{options:this.state.options,user:this.props.user,onComplete:this.completeFlow,showError:this.showError,showIndex:this.showIndex,showCrop:this.showCrop,showUpload:this.showUpload,showGallery:this.showGallery}):c["default"].createElement(_["default"],null)}},{key:"getClassName",value:function(){return this.state&&this.state.error?"modal-dialog modal-message modal-change-avatar":"modal-dialog modal-change-avatar"}},{key:"render",value:function(){return c["default"].createElement("div",{className:this.getClassName(),role:"document"},c["default"].createElement("div",{className:"modal-content"},c["default"].createElement("div",{className:"modal-header"},c["default"].createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":gettext("Close")},c["default"].createElement("span",{"aria-hidden":"true"},"×")),c["default"].createElement("h4",{className:"modal-title"},gettext("Change your avatar"))),this.getBody()))}}]),t}(c["default"].Component);n["default"]=j},{"../../reducers/users":90,"../../services/ajax":91,"../../services/store":100,"../modal-loader":61,"./crop":52,"./gallery":53,"./index":54,"./upload":56,react:"react"}],56:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("./crop"),d=a(c),f=e("../button"),p=a(f),m=e("../../services/ajax"),h=a(m),v=e("../../services/snackbar"),g=a(v),b=e("../../utils/file-size"),y=a(b),_=function(e){function t(e){r(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.pickFile=function(){document.getElementById("avatar-hidden-upload").click()},n.uploadFile=function(){var e=document.getElementById("avatar-hidden-upload").files[0],t=n.validateFile(e);if(t)return void g["default"].error(t);n.setState({image:e,preview:URL.createObjectURL(e),progress:0});var a=new FormData;a.append("avatar","upload"),a.append("image",e),h["default"].upload(n.props.user.api_url.avatar,a,function(e){n.setState({progress:e})}).then(function(e){n.setState({options:e.options,uploaded:e.detail}),g["default"].info(gettext("Your image has been uploaded and you may now crop it."))},function(e){400===e.status?(g["default"].error(e.detail),n.setState({isLoading:!1,image:null,progress:0})):n.props.showError(e)})},n.state={image:null,preview:null,progress:0,uploaded:null},n}return o(t,e),i(t,[{key:"validateFile",value:function(e){if(e.size>this.props.options.upload.limit)return interpolate(gettext("Selected file is too big. (%(filesize)s)"),{filesize:(0,y["default"])(e.size)},!0);var t=gettext("Selected file type is not supported.");if(-1===this.props.options.upload.allowed_mime_types.indexOf(e.type))return t;var n=!1,a=e.name.toLowerCase();return this.props.options.upload.allowed_extensions.map(function(e){a.substr(-1*e.length)===e&&(n=!0)}),n?!1:t}},{key:"getUploadRequirements",value:function(e){var t=e.allowed_extensions.map(function(e){return e.substr(1)});return interpolate(gettext("%(files)s files smaller than %(limit)s"),{files:t.join(", "),limit:(0,y["default"])(e.limit)},!0)}},{key:"getUploadButton",value:function(){return l["default"].createElement("div",{className:"modal-body modal-avatar-upload"},l["default"].createElement(p["default"],{className:"btn-pick-file",onClick:this.pickFile},l["default"].createElement("div",{className:"material-icon"},"input"),gettext("Select file")),l["default"].createElement("p",{className:"text-muted"},this.getUploadRequirements(this.props.options.upload)))}},{key:"getUploadProgressLabel",value:function(){return interpolate(gettext("%(progress)s % complete"),{progress:this.state.progress},!0)}},{key:"getUploadProgress",value:function(){return l["default"].createElement("div",{className:"modal-body modal-avatar-upload"},l["default"].createElement("div",{className:"upload-progress"},l["default"].createElement("img",{src:this.state.preview}),l["default"].createElement("div",{className:"progress"},l["default"].createElement("div",{className:"progress-bar",role:"progressbar","aria-valuenow":"{this.state.progress}","aria-valuemin":"0","aria-valuemax":"100",style:{
 width:this.state.progress+"%"}},l["default"].createElement("span",{className:"sr-only"},this.getUploadProgressLabel())))))}},{key:"renderUpload",value:function(){return l["default"].createElement("div",null,l["default"].createElement("input",{type:"file",id:"avatar-hidden-upload",className:"hidden-file-upload",onChange:this.uploadFile}),this.state.image?this.getUploadProgress():this.getUploadButton(),l["default"].createElement("div",{className:"modal-footer"},l["default"].createElement("div",{className:"col-md-6 col-md-offset-3"},l["default"].createElement(p["default"],{onClick:this.props.showIndex,disabled:!!this.state.image,className:"btn-default btn-block"},gettext("Cancel")))))}},{key:"renderCrop",value:function(){return l["default"].createElement(d["default"],{options:this.state.options,user:this.props.user,upload:this.state.uploaded,onComplete:this.props.onComplete,showError:this.props.showError,showIndex:this.props.showIndex})}},{key:"render",value:function(){return this.state.uploaded?this.renderCrop():this.renderUpload()}}]),t}(l["default"].Component);n["default"]=_},{"../../services/ajax":91,"../../services/snackbar":99,"../../utils/file-size":104,"../button":51,"./crop":52,react:"react"}],57:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"isValidated",value:function(){return"undefined"!=typeof this.props.validation}},{key:"getClassName",value:function(){var e="form-group";return this.isValidated()&&(e+=" has-feedback",e+=null===this.props.validation?" has-success":" has-error"),e}},{key:"getFeedback",value:function(){var e=this;return this.props.validation?l["default"].createElement("div",{className:"help-block errors"},this.props.validation.map(function(t,n){return l["default"].createElement("p",{key:e.props["for"]+"FeedbackItem"+n},t)})):null}},{key:"getFeedbackIcon",value:function(){return this.isValidated()?l["default"].createElement("span",{className:"material-icon form-control-feedback","aria-hidden":"true",key:this.props["for"]+"FeedbackIcon"},this.props.validation?"clear":"check"):null}},{key:"getFeedbackDescription",value:function(){return this.isValidated()?l["default"].createElement("span",{id:this.props["for"]+"_status",className:"sr-only"},this.props.validation?gettext("(error)"):gettext("(success)")):null}},{key:"getHelpText",value:function(){return this.props.helpText?l["default"].createElement("p",{className:"help-block"},this.props.helpText):null}},{key:"render",value:function(){return l["default"].createElement("div",{className:this.getClassName()},l["default"].createElement("label",{className:"control-label "+(this.props.labelClass||""),htmlFor:this.props["for"]||""},this.props.label+":"),l["default"].createElement("div",{className:this.props.controlClass||""},this.props.children,this.getFeedbackIcon(),this.getFeedbackDescription(),this.getFeedback(),this.getHelpText(),this.props.extra||null))}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],58:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var l=e("react"),c=a(l),d=e("../utils/validators"),f=(0,d.required)(),p=function(e){function t(){var e,n,a,i;s(this,t);for(var u=arguments.length,l=Array(u),c=0;u>c;c++)l[c]=arguments[c];return n=a=o(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(l))),a.bindInput=function(e){return function(t){var n=r({},e,t.target.value),s=a.state.errors||{};s[e]=a.validateField(e,n[e]),n.errors=s,a.setState(n)}},a.handleSubmit=function(e){if(e.preventDefault(),!a.state.isLoading&&a.clean()){a.setState({isLoading:!0});var t=a.send();t?t.then(function(e){a.setState({isLoading:!1}),a.handleSuccess(e)},function(e){a.setState({isLoading:!1}),a.handleError(e)}):a.setState({isLoading:!1})}},i=n,o(a,i)}return i(t,e),u(t,[{key:"validate",value:function(){var e={};if(!this.state.validators)return e;var t={required:this.state.validators.required||this.state.validators,optional:this.state.validators.optional||{}},n=[];for(var a in t.required)t.required.hasOwnProperty(a)&&t.required[a]&&n.push(a);for(var a in t.optional)t.optional.hasOwnProperty(a)&&t.optional[a]&&n.push(a);for(var r in n){var a=n[r],s=this.validateField(a,this.state[a]);null===s?e[a]=null:s&&(e[a]=s)}return e}},{key:"isValid",value:function(){var e=this.validate();for(var t in e)if(e.hasOwnProperty(t)&&null!==e[t])return!1;return!0}},{key:"validateField",value:function(e,t){var n=[];if(!this.state.validators)return n;var a={required:(this.state.validators.required||this.state.validators)[e],optional:(this.state.validators.optional||{})[e]},r=f(t)||!1;if(a.required){if(r)n=[r];else for(var s in a.required){var o=a.required[s](t);o&&n.push(o)}return n.length?n:null}if(r===!1&&a.optional){for(var s in a.optional){var o=a.optional[s](t);o&&n.push(o)}return n.length?n:null}return!1}},{key:"clean",value:function(){return!0}},{key:"send",value:function(){return null}},{key:"handleSuccess",value:function(e){}},{key:"handleError",value:function(e){}}]),t}(c["default"].Component);n["default"]=p},{"../utils/validators":109,react:"react"}],59:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"isActive",value:function(){return this.props.path?0===document.location.pathname.indexOf(this.props.path):!1}},{key:"getClassName",value:function(){return this.isActive()?(this.props.className||"")+" "+(this.props.activeClassName||"active"):this.props.className||""}},{key:"render",value:function(){return l["default"].createElement("li",{className:this.getClassName()},this.props.children)}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],60:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"render",value:function(){return l["default"].createElement("div",{className:this.props.className||"loader"},l["default"].createElement("div",{className:"loader-spinning-wheel"}))}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],61:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("./loader"),d=a(c),f=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"render",value:function(){return l["default"].createElement("div",{className:"modal-body modal-loader"},l["default"].createElement(d["default"],null))}}]),t}(l["default"].Component);n["default"]=f},{"./loader":60,react:"react"}],62:[function(e,t,n){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.UsernameHistory=n.ChangeUsernameLoading=n.NoChangesLeft=n.ChangeUsername=void 0;var l=e("moment"),c=r(l),d=e("react"),f=r(d),p=e("../avatar"),m=r(p),h=e("../button"),v=r(h),g=e("../form"),b=r(g),y=e("../form-group"),_=r(y),w=e("../loader"),E=r(w),k=e("../../index"),O=r(k),x=e("../../reducers/username-history"),N=e("../../reducers/users"),j=e("../../services/ajax"),P=r(j),C=e("../../services/page-title"),S=r(C),M=e("../../services/snackbar"),T=r(M),L=e("../../services/store"),A=r(L),R=e("../../utils/random"),I=a(R),U=e("../../utils/validators"),z=a(U),D=n.ChangeUsername=function(e){function t(e){s(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.state={username:"",validators:{username:[z.usernameContent(),z.usernameMinLength({username_length_min:e.options.length_min}),z.usernameMaxLength({username_length_max:e.options.length_max})]},isLoading:!1},n}return i(t,e),u(t,[{key:"getHelpText",value:function(){var e=[];if(this.props.options.changes_left>0){var t=ngettext("You can change your username %(changes_left)s more time.","You can change your username %(changes_left)s more times.",this.props.options.changes_left);e.push(interpolate(t,{changes_left:this.props.options.changes_left},!0))}if(this.props.user.acl.name_changes_expire>0){var t=ngettext("Used changes redeem after %(name_changes_expire)s day.","Used changes redeem after %(name_changes_expire)s days.",this.props.user.acl.name_changes_expire);e.push(interpolate(t,{name_changes_expire:this.props.user.acl.name_changes_expire},!0))}return e.length?e.join(" "):null}},{key:"clean",value:function(){var e=this.validate();return e.username?(T["default"].error(e.username[0]),!1):this.state.username.trim()===this.props.user.username?(T["default"].info(gettext("Your new username is same as current one.")),!1):!0}},{key:"send",value:function(){return P["default"].post(this.props.user.api_url.username,{username:this.state.username})}},{key:"handleSuccess",value:function(e){this.setState({username:""}),this.props.complete(e.username,e.slug,e.options)}},{key:"handleError",value:function(e){T["default"].apiError(e)}},{key:"render",value:function(){return f["default"].createElement("form",{onSubmit:this.handleSubmit,className:"form-horizontal"},f["default"].createElement("div",{className:"panel panel-default panel-form"},f["default"].createElement("div",{className:"panel-heading"},f["default"].createElement("h3",{className:"panel-title"},gettext("Change username"))),f["default"].createElement("div",{className:"panel-body"},f["default"].createElement(_["default"],{label:gettext("New username"),"for":"id_username",labelClass:"col-sm-4",controlClass:"col-sm-8",helpText:this.getHelpText()},f["default"].createElement("input",{type:"text",id:"id_username",className:"form-control",disabled:this.state.isLoading,onChange:this.bindInput("username"),value:this.state.username}))),f["default"].createElement("div",{className:"panel-footer"},f["default"].createElement("div",{className:"row"},f["default"].createElement("div",{className:"col-sm-8 col-sm-offset-4"},f["default"].createElement(v["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Change username")))))))}}]),t}(b["default"]),H=n.NoChangesLeft=function(e){function t(){return s(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"getHelpText",value:function(){return this.props.options.next_on?interpolate(gettext("You will be able to change your username %(next_change)s."),{next_change:this.props.options.next_on.fromNow()},!0):gettext("You have used up available name changes.")}},{key:"render",value:function(){return f["default"].createElement("div",{className:"panel panel-default panel-form"},f["default"].createElement("div",{className:"panel-heading"},f["default"].createElement("h3",{className:"panel-title"},gettext("Change username"))),f["default"].createElement("div",{className:"panel-body panel-message-body"},f["default"].createElement("div",{className:"message-icon"},f["default"].createElement("span",{className:"material-icon"},"info_outline")),f["default"].createElement("div",{className:"message-body"},f["default"].createElement("p",{className:"lead"},gettext("You can't change your username at the moment.")),f["default"].createElement("p",{className:"help-block"},this.getHelpText()))))}}]),t}(f["default"].Component),B=n.ChangeUsernameLoading=function(e){function t(){return s(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"render",value:function(){return f["default"].createElement("div",{className:"panel panel-default panel-form"},f["default"].createElement("div",{className:"panel-heading"},f["default"].createElement("h3",{className:"panel-title"},gettext("Change username"))),f["default"].createElement("div",{className:"panel-body panel-body-loading"},f["default"].createElement(E["default"],{className:"loader loader-spaced"})))}}]),t}(f["default"].Component),G=n.UsernameHistory=function(e){function t(){return s(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"renderUserAvatar",value:function(e){return e.changed_by?f["default"].createElement("a",{href:e.changed_by.absolute_url,className:"user-avatar"},f["default"].createElement(m["default"],{user:e.changed_by,size:"100"})):f["default"].createElement("span",{className:"user-avatar"},f["default"].createElement(m["default"],{size:"100"}))}},{key:"renderUsername",value:function(e){return e.changed_by?f["default"].createElement("a",{href:e.changed_by.absolute_url,className:"item-title"},e.changed_by.username):f["default"].createElement("span",{className:"item-title"},e.changed_by_username)}},{key:"renderHistory",value:function(){var e=this;return f["default"].createElement("div",{className:"username-history ui-ready"},f["default"].createElement("ul",{className:"list-group"},this.props.changes.map(function(t){return f["default"].createElement("li",{className:"list-group-item",key:t.id},f["default"].createElement("div",{className:"username-change-avatar"},e.renderUserAvatar(t)),f["default"].createElement("div",{className:"username-change-author"},e.renderUsername(t)),f["default"].createElement("div",{className:"username-change"},t.old_username,f["default"].createElement("span",{className:"material-icon"},"arrow_forward"),t.new_username),f["default"].createElement("div",{className:"username-change-date"},f["default"].createElement("abbr",{title:t.changed_on.format("LLL")},t.changed_on.fromNow())))})))}},{key:"renderEmptyHistory",value:function(){return f["default"].createElement("div",{className:"username-history ui-ready"},f["default"].createElement("ul",{className:"list-group"},f["default"].createElement("li",{className:"list-group-item empty-message"},gettext("No name changes have been recorded for your account."))))}},{key:"renderHistoryPreview",value:function(){return f["default"].createElement("div",{className:"username-history ui-preview"},f["default"].createElement("ul",{className:"list-group"},I.range(3,5).map(function(e){return f["default"].createElement("li",{className:"list-group-item",key:e},f["default"].createElement("div",{className:"username-change-avatar"},f["default"].createElement("span",{className:"user-avatar"},f["default"].createElement(m["default"],{size:"100"}))),f["default"].createElement("div",{className:"username-change-author"},f["default"].createElement("span",{className:"ui-preview-text",style:{width:I["int"](30,100)+"px"}}," ")),f["default"].createElement("div",{className:"username-change"},f["default"].createElement("span",{className:"ui-preview-text",style:{width:I["int"](30,50)+"px"}}," "),f["default"].createElement("span",{className:"material-icon"},"arrow_forward"),f["default"].createElement("span",{className:"ui-preview-text",style:{width:I["int"](30,50)+"px"}}," ")),f["default"].createElement("div",{className:"username-change-date"},f["default"].createElement("span",{className:"ui-preview-text",style:{width:I["int"](50,100)+"px"}}," ")))})))}},{key:"render",value:function(){return this.props.isLoaded?this.props.changes.length?this.renderHistory():this.renderEmptyHistory():this.renderHistoryPreview()}}]),t}(f["default"].Component),q=function(e){function t(e){s(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.onComplete=function(e,t,a){n.setState({options:a}),A["default"].dispatch((0,x.addNameChange)({username:e,slug:t},n.props.user,n.props.user)),A["default"].dispatch((0,N.updateUsername)(n.props.user,e,t)),T["default"].success(gettext("Your username has been changed successfully."))},n.state={isLoaded:!1,options:null},n}return i(t,e),u(t,[{key:"componentDidMount",value:function(){var e=this;S["default"].set({title:gettext("Change username"),parent:gettext("Change your options")}),Promise.all([P["default"].get(this.props.user.api_url.username),P["default"].get(O["default"].get("USERNAME_CHANGES_API"),{user:this.props.user.id})]).then(function(t){e.setState({isLoaded:!0,options:{changes_left:t[0].changes_left,length_min:t[0].length_min,length_max:t[0].length_max,next_on:t[0].next_on?(0,c["default"])(t[0].next_on):null}}),A["default"].dispatch((0,x.dehydrate)(t[1].results))})}},{key:"getChangeForm",value:function(){return this.state.isLoaded?this.state.options.changes_left>0?f["default"].createElement(D,{user:this.props.user,options:this.state.options,complete:this.onComplete}):f["default"].createElement(H,{options:this.state.options}):f["default"].createElement(B,null)}},{key:"render",value:function(){return f["default"].createElement("div",null,this.getChangeForm(),f["default"].createElement(G,{isLoaded:this.state.isLoaded,changes:this.props["username-history"]}))}}]),t}(f["default"].Component);n["default"]=q},{"../../index":85,"../../reducers/username-history":89,"../../reducers/users":90,"../../services/ajax":91,"../../services/page-title":98,"../../services/snackbar":99,"../../services/store":100,"../../utils/random":107,"../../utils/validators":109,"../avatar":49,"../button":51,"../form":58,"../form-group":57,"../loader":60,moment:"moment",react:"react"}],63:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("../button"),d=a(c),f=e("../form"),p=a(f),m=e("../form-group"),h=a(m),v=e("../select"),g=a(v),b=e("../yes-no-switch"),y=a(b),_=e("../../reducers/auth"),w=e("../../services/ajax"),E=a(w),k=e("../../services/page-title"),O=a(k),x=e("../../services/snackbar"),N=a(x),j=e("../../services/store"),P=a(j),C=function(e){function t(e){r(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.state={isLoading:!1,is_hiding_presence:e.user.is_hiding_presence,limits_private_thread_invites_to:e.user.limits_private_thread_invites_to,subscribe_to_started_threads:e.user.subscribe_to_started_threads,subscribe_to_replied_threads:e.user.subscribe_to_replied_threads,errors:{}},n.privateThreadInvitesChoices=[{value:0,icon:"help_outline",label:gettext("Everybody")},{value:1,icon:"done_all",label:gettext("Users I follow")},{value:2,icon:"highlight_off",label:gettext("Nobody")}],n.subscribeToChoices=[{value:0,icon:"bookmark_border",label:gettext("No")},{value:1,icon:"bookmark",label:gettext("Bookmark")},{value:2,icon:"mail",label:gettext("Bookmark with e-mail notification")}],n}return o(t,e),i(t,[{key:"send",value:function(){return E["default"].post(this.props.user.api_url.options,{is_hiding_presence:this.state.is_hiding_presence,limits_private_thread_invites_to:this.state.limits_private_thread_invites_to,subscribe_to_started_threads:this.state.subscribe_to_started_threads,subscribe_to_replied_threads:this.state.subscribe_to_replied_threads})}},{key:"handleSuccess",value:function(){P["default"].dispatch((0,_.patchUser)({is_hiding_presence:this.state.is_hiding_presence,limits_private_thread_invites_to:this.state.limits_private_thread_invites_to,subscribe_to_started_threads:this.state.subscribe_to_started_threads,subscribe_to_replied_threads:this.state.subscribe_to_replied_threads})),N["default"].success(gettext("Your forum options have been changed."))}},{key:"handleError",value:function(e){400===e.status?N["default"].error(gettext("Please reload page and try again.")):N["default"].apiError(e)}},{key:"componentDidMount",value:function(){O["default"].set({title:gettext("Forum options"),parent:gettext("Change your options")})}},{key:"render",value:function(){return l["default"].createElement("form",{onSubmit:this.handleSubmit,className:"form-horizontal"},l["default"].createElement("div",{className:"panel panel-default panel-form"},l["default"].createElement("div",{className:"panel-heading"},l["default"].createElement("h3",{className:"panel-title"},gettext("Change forum options"))),l["default"].createElement("div",{className:"panel-body"},l["default"].createElement("fieldset",null,l["default"].createElement("legend",null,gettext("Privacy settings")),l["default"].createElement(h["default"],{label:gettext("Hide my presence"),helpText:gettext("If you hide your presence, only members with permission to see hidden users will see when you are online."),"for":"id_is_hiding_presence",labelClass:"col-sm-4",controlClass:"col-sm-8"},l["default"].createElement(y["default"],{id:"id_is_hiding_presence",disabled:this.state.isLoading,iconOn:"visibility",iconOff:"visibility_off",labelOn:gettext("Show my presence to other users"),labelOff:gettext("Hide my presence from other users"),onChange:this.bindInput("is_hiding_presence"),value:this.state.is_hiding_presence})),l["default"].createElement(h["default"],{label:gettext("Private thread invitations"),"for":"id_limits_private_thread_invites_to",labelClass:"col-sm-4",controlClass:"col-sm-8"},l["default"].createElement(g["default"],{id:"id_limits_private_thread_invites_to",disabled:this.state.isLoading,onChange:this.bindInput("limits_private_thread_invites_to"),value:this.state.limits_private_thread_invites_to,choices:this.privateThreadInvitesChoices}))),l["default"].createElement("fieldset",null,l["default"].createElement("legend",null,gettext("Automatic subscriptions")),l["default"].createElement(h["default"],{label:gettext("Threads I start"),"for":"id_subscribe_to_started_threads",labelClass:"col-sm-4",controlClass:"col-sm-8"},l["default"].createElement(g["default"],{id:"id_subscribe_to_started_threads",disabled:this.state.isLoading,onChange:this.bindInput("subscribe_to_started_threads"),value:this.state.subscribe_to_started_threads,choices:this.subscribeToChoices})),l["default"].createElement(h["default"],{label:gettext("Threads I reply to"),"for":"id_subscribe_to_replied_threads",labelClass:"col-sm-4",controlClass:"col-sm-8"},l["default"].createElement(g["default"],{id:"id_subscribe_to_replied_threads",disabled:this.state.isLoading,onChange:this.bindInput("subscribe_to_replied_threads"),value:this.state.subscribe_to_replied_threads,choices:this.subscribeToChoices})))),l["default"].createElement("div",{className:"panel-footer"},l["default"].createElement("div",{className:"row"},l["default"].createElement("div",{className:"col-sm-8 col-sm-offset-4"},l["default"].createElement(d["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Save changes")))))))}}]),t}(p["default"]);n["default"]=C},{"../../reducers/auth":86,"../../services/ajax":91,"../../services/page-title":98,"../../services/snackbar":99,"../../services/store":100,"../button":51,"../form":58,"../form-group":57,"../select":73,"../yes-no-switch":84,react:"react"}],64:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.CompactNav=n.SideNav=void 0;var u=e("react"),l=a(u),c=e("react-router"),d=e("../li"),f=a(d),p=e("../../index");a(p),n.SideNav=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"render",value:function(){var e=this;return l["default"].createElement("div",{className:"list-group nav-side"},this.props.options.map(function(t){return l["default"].createElement(c.Link,{to:e.props.baseUrl+t.component+"/",className:"list-group-item",activeClassName:"active",key:t.component},l["default"].createElement("span",{className:"material-icon"},t.icon),t.name)}))}}]),t}(l["default"].Component),n.CompactNav=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"render",value:function(){var e=this;return l["default"].createElement("ul",{className:"dropdown-menu",role:"menu"},this.props.options.map(function(t){return l["default"].createElement(f["default"],{path:e.props.baseUrl+t.component+"/",key:t.component},l["default"].createElement(c.Link,{to:e.props.baseUrl+t.component+"/"},l["default"].createElement("span",{className:"material-icon"},t.icon),t.name))}))}}]),t}(l["default"].Component)},{"../../index":85,"../li":59,react:"react","react-router":"react-router"}],65:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return{tick:e.tick.tick,user:e.auth.user,"username-history":e["username-history"]}}function u(){return[{path:w["default"].get("USERCP_URL")+"forum-options/",component:(0,f.connect)(i)(h["default"])},{path:w["default"].get("USERCP_URL")+"change-username/",component:(0,f.connect)(i)(g["default"])
 width:this.state.progress+"%"}},l["default"].createElement("span",{className:"sr-only"},this.getUploadProgressLabel())))))}},{key:"renderUpload",value:function(){return l["default"].createElement("div",null,l["default"].createElement("input",{type:"file",id:"avatar-hidden-upload",className:"hidden-file-upload",onChange:this.uploadFile}),this.state.image?this.getUploadProgress():this.getUploadButton(),l["default"].createElement("div",{className:"modal-footer"},l["default"].createElement("div",{className:"col-md-6 col-md-offset-3"},l["default"].createElement(p["default"],{onClick:this.props.showIndex,disabled:!!this.state.image,className:"btn-default btn-block"},gettext("Cancel")))))}},{key:"renderCrop",value:function(){return l["default"].createElement(d["default"],{options:this.state.options,user:this.props.user,upload:this.state.uploaded,onComplete:this.props.onComplete,showError:this.props.showError,showIndex:this.props.showIndex})}},{key:"render",value:function(){return this.state.uploaded?this.renderCrop():this.renderUpload()}}]),t}(l["default"].Component);n["default"]=_},{"../../services/ajax":91,"../../services/snackbar":99,"../../utils/file-size":104,"../button":51,"./crop":52,react:"react"}],57:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"isValidated",value:function(){return"undefined"!=typeof this.props.validation}},{key:"getClassName",value:function(){var e="form-group";return this.isValidated()&&(e+=" has-feedback",e+=null===this.props.validation?" has-success":" has-error"),e}},{key:"getFeedback",value:function(){var e=this;return this.props.validation?l["default"].createElement("div",{className:"help-block errors"},this.props.validation.map(function(t,n){return l["default"].createElement("p",{key:e.props["for"]+"FeedbackItem"+n},t)})):null}},{key:"getFeedbackIcon",value:function(){return this.isValidated()?l["default"].createElement("span",{className:"material-icon form-control-feedback","aria-hidden":"true",key:this.props["for"]+"FeedbackIcon"},this.props.validation?"clear":"check"):null}},{key:"getFeedbackDescription",value:function(){return this.isValidated()?l["default"].createElement("span",{id:this.props["for"]+"_status",className:"sr-only"},this.props.validation?gettext("(error)"):gettext("(success)")):null}},{key:"getHelpText",value:function(){return this.props.helpText?l["default"].createElement("p",{className:"help-block"},this.props.helpText):null}},{key:"render",value:function(){return l["default"].createElement("div",{className:this.getClassName()},l["default"].createElement("label",{className:"control-label "+(this.props.labelClass||""),htmlFor:this.props["for"]||""},this.props.label+":"),l["default"].createElement("div",{className:this.props.controlClass||""},this.props.children,this.getFeedbackIcon(),this.getFeedbackDescription(),this.getFeedback(),this.getHelpText(),this.props.extra||null))}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],58:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var l=e("react"),c=a(l),d=e("../utils/validators"),f=(0,d.required)(),p=function(e){function t(){var e,n,a,i;s(this,t);for(var u=arguments.length,l=Array(u),c=0;u>c;c++)l[c]=arguments[c];return n=a=o(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(l))),a.bindInput=function(e){return function(t){var n=r({},e,t.target.value),s=a.state.errors||{};s[e]=a.validateField(e,n[e]),n.errors=s,a.setState(n)}},a.handleSubmit=function(e){if(e.preventDefault(),!a.state.isLoading&&a.clean()){a.setState({isLoading:!0});var t=a.send();t?t.then(function(e){a.setState({isLoading:!1}),a.handleSuccess(e)},function(e){a.setState({isLoading:!1}),a.handleError(e)}):a.setState({isLoading:!1})}},i=n,o(a,i)}return i(t,e),u(t,[{key:"validate",value:function(){var e={};if(!this.state.validators)return e;var t={required:this.state.validators.required||this.state.validators,optional:this.state.validators.optional||{}},n=[];for(var a in t.required)t.required.hasOwnProperty(a)&&t.required[a]&&n.push(a);for(var a in t.optional)t.optional.hasOwnProperty(a)&&t.optional[a]&&n.push(a);for(var r in n){var a=n[r],s=this.validateField(a,this.state[a]);null===s?e[a]=null:s&&(e[a]=s)}return e}},{key:"isValid",value:function(){var e=this.validate();for(var t in e)if(e.hasOwnProperty(t)&&null!==e[t])return!1;return!0}},{key:"validateField",value:function(e,t){var n=[];if(!this.state.validators)return n;var a={required:(this.state.validators.required||this.state.validators)[e],optional:(this.state.validators.optional||{})[e]},r=f(t)||!1;if(a.required){if(r)n=[r];else for(var s in a.required){var o=a.required[s](t);o&&n.push(o)}return n.length?n:null}if(r===!1&&a.optional){for(var s in a.optional){var o=a.optional[s](t);o&&n.push(o)}return n.length?n:null}return!1}},{key:"clean",value:function(){return!0}},{key:"send",value:function(){return null}},{key:"handleSuccess",value:function(e){}},{key:"handleError",value:function(e){}}]),t}(c["default"].Component);n["default"]=p},{"../utils/validators":109,react:"react"}],59:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"isActive",value:function(){return this.props.path?0===document.location.pathname.indexOf(this.props.path):!1}},{key:"getClassName",value:function(){return this.isActive()?(this.props.className||"")+" "+(this.props.activeClassName||"active"):this.props.className||""}},{key:"render",value:function(){return l["default"].createElement("li",{className:this.getClassName()},this.props.children)}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],60:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"render",value:function(){return l["default"].createElement("div",{className:this.props.className||"loader"},l["default"].createElement("div",{className:"loader-spinning-wheel"}))}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],61:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("./loader"),d=a(c),f=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"render",value:function(){return l["default"].createElement("div",{className:"modal-body modal-loader"},l["default"].createElement(d["default"],null))}}]),t}(l["default"].Component);n["default"]=f},{"./loader":60,react:"react"}],62:[function(e,t,n){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.UsernameHistory=n.ChangeUsernameLoading=n.NoChangesLeft=n.ChangeUsername=void 0;var l=e("moment"),c=r(l),d=e("react"),f=r(d),p=e("../avatar"),m=r(p),h=e("../button"),v=r(h),g=e("../form"),b=r(g),y=e("../form-group"),_=r(y),w=e("../loader"),E=r(w),k=e("../../index"),O=r(k),x=e("../../reducers/username-history"),N=e("../../reducers/users"),j=e("../../services/ajax"),P=r(j),C=e("../../services/page-title"),S=r(C),M=e("../../services/snackbar"),T=r(M),L=e("../../services/store"),A=r(L),R=e("../../utils/random"),I=a(R),U=e("../../utils/validators"),z=a(U),D=n.ChangeUsername=function(e){function t(e){s(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.state={username:"",validators:{username:[z.usernameContent(),z.usernameMinLength({username_length_min:e.options.length_min}),z.usernameMaxLength({username_length_max:e.options.length_max})]},isLoading:!1},n}return i(t,e),u(t,[{key:"getHelpText",value:function(){var e=[];if(this.props.options.changes_left>0){var t=ngettext("You can change your username %(changes_left)s more time.","You can change your username %(changes_left)s more times.",this.props.options.changes_left);e.push(interpolate(t,{changes_left:this.props.options.changes_left},!0))}if(this.props.user.acl.name_changes_expire>0){var t=ngettext("Used changes redeem after %(name_changes_expire)s day.","Used changes redeem after %(name_changes_expire)s days.",this.props.user.acl.name_changes_expire);e.push(interpolate(t,{name_changes_expire:this.props.user.acl.name_changes_expire},!0))}return e.length?e.join(" "):null}},{key:"clean",value:function(){var e=this.validate();return e.username?(T["default"].error(e.username[0]),!1):this.state.username.trim()===this.props.user.username?(T["default"].info(gettext("Your new username is same as current one.")),!1):!0}},{key:"send",value:function(){return P["default"].post(this.props.user.api_url.username,{username:this.state.username})}},{key:"handleSuccess",value:function(e){this.setState({username:""}),this.props.complete(e.username,e.slug,e.options)}},{key:"handleError",value:function(e){T["default"].apiError(e)}},{key:"render",value:function(){return f["default"].createElement("form",{onSubmit:this.handleSubmit,className:"form-horizontal"},f["default"].createElement("div",{className:"panel panel-default panel-form"},f["default"].createElement("div",{className:"panel-heading"},f["default"].createElement("h3",{className:"panel-title"},gettext("Change username"))),f["default"].createElement("div",{className:"panel-body"},f["default"].createElement(_["default"],{label:gettext("New username"),"for":"id_username",labelClass:"col-sm-4",controlClass:"col-sm-8",helpText:this.getHelpText()},f["default"].createElement("input",{type:"text",id:"id_username",className:"form-control",disabled:this.state.isLoading,onChange:this.bindInput("username"),value:this.state.username}))),f["default"].createElement("div",{className:"panel-footer"},f["default"].createElement("div",{className:"row"},f["default"].createElement("div",{className:"col-sm-8 col-sm-offset-4"},f["default"].createElement(v["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Change username")))))))}}]),t}(b["default"]),H=n.NoChangesLeft=function(e){function t(){return s(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"getHelpText",value:function(){return this.props.options.next_on?interpolate(gettext("You will be able to change your username %(next_change)s."),{next_change:this.props.options.next_on.fromNow()},!0):gettext("You have used up available name changes.")}},{key:"render",value:function(){return f["default"].createElement("div",{className:"panel panel-default panel-form"},f["default"].createElement("div",{className:"panel-heading"},f["default"].createElement("h3",{className:"panel-title"},gettext("Change username"))),f["default"].createElement("div",{className:"panel-body panel-message-body"},f["default"].createElement("div",{className:"message-icon"},f["default"].createElement("span",{className:"material-icon"},"info_outline")),f["default"].createElement("div",{className:"message-body"},f["default"].createElement("p",{className:"lead"},gettext("You can't change your username at the moment.")),f["default"].createElement("p",{className:"help-block"},this.getHelpText()))))}}]),t}(f["default"].Component),B=n.ChangeUsernameLoading=function(e){function t(){return s(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"render",value:function(){return f["default"].createElement("div",{className:"panel panel-default panel-form"},f["default"].createElement("div",{className:"panel-heading"},f["default"].createElement("h3",{className:"panel-title"},gettext("Change username"))),f["default"].createElement("div",{className:"panel-body panel-body-loading"},f["default"].createElement(E["default"],{className:"loader loader-spaced"})))}}]),t}(f["default"].Component),G=n.UsernameHistory=function(e){function t(){return s(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"renderUserAvatar",value:function(e){return e.changed_by?f["default"].createElement("a",{href:e.changed_by.absolute_url,className:"user-avatar"},f["default"].createElement(m["default"],{user:e.changed_by,size:"100"})):f["default"].createElement("span",{className:"user-avatar"},f["default"].createElement(m["default"],{size:"100"}))}},{key:"renderUsername",value:function(e){return e.changed_by?f["default"].createElement("a",{href:e.changed_by.absolute_url,className:"item-title"},e.changed_by.username):f["default"].createElement("span",{className:"item-title"},e.changed_by_username)}},{key:"renderHistory",value:function(){var e=this;return f["default"].createElement("div",{className:"username-history ui-ready"},f["default"].createElement("ul",{className:"list-group"},this.props.changes.map(function(t){return f["default"].createElement("li",{className:"list-group-item",key:t.id},f["default"].createElement("div",{className:"username-change-avatar"},e.renderUserAvatar(t)),f["default"].createElement("div",{className:"username-change-author"},e.renderUsername(t)),f["default"].createElement("div",{className:"username-change"},t.old_username,f["default"].createElement("span",{className:"material-icon"},"arrow_forward"),t.new_username),f["default"].createElement("div",{className:"username-change-date"},f["default"].createElement("abbr",{title:t.changed_on.format("LLL")},t.changed_on.fromNow())))})))}},{key:"renderEmptyHistory",value:function(){return f["default"].createElement("div",{className:"username-history ui-ready"},f["default"].createElement("ul",{className:"list-group"},f["default"].createElement("li",{className:"list-group-item empty-message"},gettext("No name changes have been recorded for your account."))))}},{key:"renderHistoryPreview",value:function(){return f["default"].createElement("div",{className:"username-history ui-preview"},f["default"].createElement("ul",{className:"list-group"},I.range(3,5).map(function(e){return f["default"].createElement("li",{className:"list-group-item",key:e},f["default"].createElement("div",{className:"username-change-avatar"},f["default"].createElement("span",{className:"user-avatar"},f["default"].createElement(m["default"],{size:"100"}))),f["default"].createElement("div",{className:"username-change-author"},f["default"].createElement("span",{className:"ui-preview-text",style:{width:I["int"](30,100)+"px"}}," ")),f["default"].createElement("div",{className:"username-change"},f["default"].createElement("span",{className:"ui-preview-text",style:{width:I["int"](30,50)+"px"}}," "),f["default"].createElement("span",{className:"material-icon"},"arrow_forward"),f["default"].createElement("span",{className:"ui-preview-text",style:{width:I["int"](30,50)+"px"}}," ")),f["default"].createElement("div",{className:"username-change-date"},f["default"].createElement("span",{className:"ui-preview-text",style:{width:I["int"](50,100)+"px"}}," ")))})))}},{key:"render",value:function(){return this.props.isLoaded?this.props.changes.length?this.renderHistory():this.renderEmptyHistory():this.renderHistoryPreview()}}]),t}(f["default"].Component),q=function(e){function t(e){s(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.onComplete=function(e,t,a){n.setState({options:a}),A["default"].dispatch((0,x.addNameChange)({username:e,slug:t},n.props.user,n.props.user)),A["default"].dispatch((0,N.updateUsername)(n.props.user,e,t)),T["default"].success(gettext("Your username has been changed successfully."))},n.state={isLoaded:!1,options:null},n}return i(t,e),u(t,[{key:"componentDidMount",value:function(){var e=this;S["default"].set({title:gettext("Change username"),parent:gettext("Change your options")}),Promise.all([P["default"].get(this.props.user.api_url.username),P["default"].get(O["default"].get("USERNAME_CHANGES_API"),{user:this.props.user.id})]).then(function(t){e.setState({isLoaded:!0,options:{changes_left:t[0].changes_left,length_min:t[0].length_min,length_max:t[0].length_max,next_on:t[0].next_on?(0,c["default"])(t[0].next_on):null}}),A["default"].dispatch((0,x.dehydrate)(t[1].results))})}},{key:"getChangeForm",value:function(){return this.state.isLoaded?this.state.options.changes_left>0?f["default"].createElement(D,{user:this.props.user,options:this.state.options,complete:this.onComplete}):f["default"].createElement(H,{options:this.state.options}):f["default"].createElement(B,null)}},{key:"render",value:function(){return f["default"].createElement("div",null,this.getChangeForm(),f["default"].createElement(G,{isLoaded:this.state.isLoaded,changes:this.props["username-history"]}))}}]),t}(f["default"].Component);n["default"]=q},{"../../index":85,"../../reducers/username-history":89,"../../reducers/users":90,"../../services/ajax":91,"../../services/page-title":98,"../../services/snackbar":99,"../../services/store":100,"../../utils/random":107,"../../utils/validators":109,"../avatar":49,"../button":51,"../form":58,"../form-group":57,"../loader":60,moment:"moment",react:"react"}],63:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("../button"),d=a(c),f=e("../form"),p=a(f),m=e("../form-group"),h=a(m),v=e("../select"),g=a(v),b=e("../yes-no-switch"),y=a(b),_=e("../../reducers/auth"),w=e("../../services/ajax"),E=a(w),k=e("../../services/page-title"),O=a(k),x=e("../../services/snackbar"),N=a(x),j=e("../../services/store"),P=a(j),C=function(e){function t(e){r(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.state={isLoading:!1,is_hiding_presence:e.user.is_hiding_presence,limits_private_thread_invites_to:e.user.limits_private_thread_invites_to,subscribe_to_started_threads:e.user.subscribe_to_started_threads,subscribe_to_replied_threads:e.user.subscribe_to_replied_threads,errors:{}},n.privateThreadInvitesChoices=[{value:0,icon:"help_outline",label:gettext("Everybody")},{value:1,icon:"done_all",label:gettext("Users I follow")},{value:2,icon:"highlight_off",label:gettext("Nobody")}],n.subscribeToChoices=[{value:0,icon:"bookmark_border",label:gettext("No")},{value:1,icon:"bookmark",label:gettext("Bookmark")},{value:2,icon:"mail",label:gettext("Bookmark with e-mail notification")}],n}return o(t,e),i(t,[{key:"send",value:function(){return E["default"].post(this.props.user.api_url.options,{is_hiding_presence:this.state.is_hiding_presence,limits_private_thread_invites_to:this.state.limits_private_thread_invites_to,subscribe_to_started_threads:this.state.subscribe_to_started_threads,subscribe_to_replied_threads:this.state.subscribe_to_replied_threads})}},{key:"handleSuccess",value:function(){P["default"].dispatch((0,_.patchUser)({is_hiding_presence:this.state.is_hiding_presence,limits_private_thread_invites_to:this.state.limits_private_thread_invites_to,subscribe_to_started_threads:this.state.subscribe_to_started_threads,subscribe_to_replied_threads:this.state.subscribe_to_replied_threads})),N["default"].success(gettext("Your forum options have been changed."))}},{key:"handleError",value:function(e){400===e.status?N["default"].error(gettext("Please reload page and try again.")):N["default"].apiError(e)}},{key:"componentDidMount",value:function(){O["default"].set({title:gettext("Forum options"),parent:gettext("Change your options")})}},{key:"render",value:function(){return l["default"].createElement("form",{onSubmit:this.handleSubmit,className:"form-horizontal"},l["default"].createElement("div",{className:"panel panel-default panel-form"},l["default"].createElement("div",{className:"panel-heading"},l["default"].createElement("h3",{className:"panel-title"},gettext("Change forum options"))),l["default"].createElement("div",{className:"panel-body"},l["default"].createElement("fieldset",null,l["default"].createElement("legend",null,gettext("Privacy settings")),l["default"].createElement(h["default"],{label:gettext("Hide my presence"),helpText:gettext("If you hide your presence, only members with permission to see hidden users will see when you are online."),"for":"id_is_hiding_presence",labelClass:"col-sm-4",controlClass:"col-sm-8"},l["default"].createElement(y["default"],{id:"id_is_hiding_presence",disabled:this.state.isLoading,iconOn:"visibility",iconOff:"visibility_off",labelOn:gettext("Show my presence to other users"),labelOff:gettext("Hide my presence from other users"),onChange:this.bindInput("is_hiding_presence"),value:this.state.is_hiding_presence})),l["default"].createElement(h["default"],{label:gettext("Private thread invitations"),"for":"id_limits_private_thread_invites_to",labelClass:"col-sm-4",controlClass:"col-sm-8"},l["default"].createElement(g["default"],{id:"id_limits_private_thread_invites_to",disabled:this.state.isLoading,onChange:this.bindInput("limits_private_thread_invites_to"),value:this.state.limits_private_thread_invites_to,choices:this.privateThreadInvitesChoices}))),l["default"].createElement("fieldset",null,l["default"].createElement("legend",null,gettext("Automatic subscriptions")),l["default"].createElement(h["default"],{label:gettext("Threads I start"),"for":"id_subscribe_to_started_threads",labelClass:"col-sm-4",controlClass:"col-sm-8"},l["default"].createElement(g["default"],{id:"id_subscribe_to_started_threads",disabled:this.state.isLoading,onChange:this.bindInput("subscribe_to_started_threads"),value:this.state.subscribe_to_started_threads,choices:this.subscribeToChoices})),l["default"].createElement(h["default"],{label:gettext("Threads I reply to"),"for":"id_subscribe_to_replied_threads",labelClass:"col-sm-4",controlClass:"col-sm-8"},l["default"].createElement(g["default"],{id:"id_subscribe_to_replied_threads",disabled:this.state.isLoading,onChange:this.bindInput("subscribe_to_replied_threads"),value:this.state.subscribe_to_replied_threads,choices:this.subscribeToChoices})))),l["default"].createElement("div",{className:"panel-footer"},l["default"].createElement("div",{className:"row"},l["default"].createElement("div",{className:"col-sm-8 col-sm-offset-4"},l["default"].createElement(d["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Save changes")))))))}}]),t}(p["default"]);n["default"]=C},{"../../reducers/auth":86,"../../services/ajax":91,"../../services/page-title":98,"../../services/snackbar":99,"../../services/store":100,"../button":51,"../form":58,"../form-group":57,"../select":73,"../yes-no-switch":84,react:"react"}],64:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.CompactNav=n.SideNav=void 0;var u=e("react"),l=a(u),c=e("react-router"),d=e("../li"),f=a(d),p=e("../../index");a(p),n.SideNav=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"render",value:function(){var e=this;return l["default"].createElement("div",{className:"list-group nav-side"},this.props.options.map(function(t){return l["default"].createElement(c.Link,{to:e.props.baseUrl+t.component+"/",className:"list-group-item",activeClassName:"active",key:t.component},l["default"].createElement("span",{className:"material-icon"},t.icon),t.name)}))}}]),t}(l["default"].Component),n.CompactNav=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"render",value:function(){var e=this;return l["default"].createElement("ul",{className:"dropdown-menu",role:"menu"},this.props.options.map(function(t){return l["default"].createElement(f["default"],{path:e.props.baseUrl+t.component+"/",key:t.component},l["default"].createElement(c.Link,{to:e.props.baseUrl+t.component+"/"},l["default"].createElement("span",{className:"material-icon"},t.icon),t.name))}))}}]),t}(l["default"].Component)},{"../../index":85,"../li":59,react:"react","react-router":"react-router"}],65:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return{tick:e.tick.tick,user:e.auth.user,"username-history":e["username-history"]}}function u(){return[{path:w["default"].get("USERCP_URL")+"forum-options/",component:(0,f.connect)(i)(h["default"])},{path:w["default"].get("USERCP_URL")+"change-username/",component:(0,f.connect)(i)(g["default"])
 },{path:w["default"].get("USERCP_URL")+"sign-in-credentials/",component:(0,f.connect)(i)(y["default"])}]}var l=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.select=i,n.paths=u;var c=e("react"),d=a(c),f=e("react-redux"),p=e("./navs"),m=e("./forum-options"),h=a(m),v=e("./change-username"),g=a(v),b=e("./sign-in-credentials"),y=a(b),_=e("../../index"),w=a(_),E=function(e){function t(e){r(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.toggleNav=function(){n.state.dropdown?n.setState({dropdown:!1}):n.setState({dropdown:!0})},n.state={dropdown:!1},n}return o(t,e),l(t,[{key:"getToggleNavClassName",value:function(){return this.state.dropdown?"btn btn-default btn-icon open":"btn btn-default btn-icon"}},{key:"getCompactNavClassName",value:function(){return this.state.dropdown?"compact-nav open":"compact-nav"}},{key:"render",value:function(){return d["default"].createElement("div",{className:"page page-options"},d["default"].createElement("div",{className:"page-header"},d["default"].createElement("div",{className:"container"},d["default"].createElement("h1",{className:"pull-left"},gettext("Change your options")),d["default"].createElement("button",{className:"btn btn-default btn-icon btn-dropdown-toggle hidden-md hidden-lg",type:"button",onClick:this.toggleNav,"aria-haspopup":"true","aria-expanded":this.state.dropdown?"true":"false"},d["default"].createElement("i",{className:"material-icon"},"menu")))),d["default"].createElement("div",{className:this.getCompactNavClassName()},d["default"].createElement(p.CompactNav,{options:w["default"].get("USER_OPTIONS"),baseUrl:w["default"].get("USERCP_URL")})),d["default"].createElement("div",{className:"container"},d["default"].createElement("div",{className:"row"},d["default"].createElement("div",{className:"col-md-3 hidden-xs hidden-sm"},d["default"].createElement(p.SideNav,{options:w["default"].get("USER_OPTIONS"),baseUrl:w["default"].get("USERCP_URL")})),d["default"].createElement("div",{className:"col-md-9"},this.props.children))))}}]),t}(d["default"].Component);n["default"]=E},{"../../index":85,"./change-username":62,"./forum-options":63,"./navs":64,"./sign-in-credentials":66,react:"react","react-redux":"react-redux"}],66:[function(e,t,n){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.ChangePassword=n.ChangeEmail=void 0;var l=e("react"),c=r(l),d=e("../button"),f=r(d),p=e("../form"),m=r(p),h=e("../form-group"),v=r(h),g=e("../../index"),b=r(g),y=e("../../services/ajax"),_=r(y),w=e("../../services/page-title"),E=r(w),k=e("../../services/snackbar"),O=r(k),x=e("../../utils/validators"),N=a(x),j=n.ChangeEmail=function(e){function t(e){s(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.state={new_email:"",password:"",validators:{new_email:[N.email()],password:[]},isLoading:!1},n}return i(t,e),u(t,[{key:"clean",value:function(){var e=this.validate(),t=[this.state.new_email.trim().length,this.state.password.trim().length];return-1!==t.indexOf(0)?(O["default"].error(gettext("Fill out all fields.")),!1):e.new_email?(O["default"].error(e.new_email[0]),!1):!0}},{key:"send",value:function(){return _["default"].post(this.props.user.api_url.change_email,{new_email:this.state.new_email,password:this.state.password})}},{key:"handleSuccess",value:function(e){this.setState({new_email:"",password:""}),O["default"].success(e.detail)}},{key:"handleError",value:function(e){400===e.status?e.new_email?O["default"].error(e.new_email):O["default"].error(e.password):O["default"].apiError(e)}},{key:"render",value:function(){return c["default"].createElement("form",{onSubmit:this.handleSubmit,className:"form-horizontal"},c["default"].createElement("input",{type:"type",style:{display:"none"}}),c["default"].createElement("input",{type:"password",style:{display:"none"}}),c["default"].createElement("div",{className:"panel panel-default panel-form"},c["default"].createElement("div",{className:"panel-heading"},c["default"].createElement("h3",{className:"panel-title"},gettext("Change e-mail address"))),c["default"].createElement("div",{className:"panel-body"},c["default"].createElement(v["default"],{label:gettext("New e-mail"),"for":"id_new_email",labelClass:"col-sm-4",controlClass:"col-sm-8"},c["default"].createElement("input",{type:"text",id:"id_new_email",className:"form-control",disabled:this.state.isLoading,onChange:this.bindInput("new_email"),value:this.state.new_email})),c["default"].createElement("hr",null),c["default"].createElement(v["default"],{label:gettext("Your current password"),"for":"id_password",labelClass:"col-sm-4",controlClass:"col-sm-8"},c["default"].createElement("input",{type:"password",id:"id_password",className:"form-control",disabled:this.state.isLoading,onChange:this.bindInput("password"),value:this.state.password}))),c["default"].createElement("div",{className:"panel-footer"},c["default"].createElement("div",{className:"row"},c["default"].createElement("div",{className:"col-sm-8 col-sm-offset-4"},c["default"].createElement(f["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Change e-mail")))))))}}]),t}(m["default"]),P=n.ChangePassword=function(e){function t(e){s(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.state={new_password:"",repeat_password:"",password:"",validators:{new_password:[N.passwordMinLength(b["default"].get("SETTINGS"))],repeat_password:[],password:[]},isLoading:!1},n}return i(t,e),u(t,[{key:"clean",value:function(){var e=this.validate(),t=[this.state.new_password.trim().length,this.state.repeat_password.trim().length,this.state.password.trim().length];return-1!==t.indexOf(0)?(O["default"].error(gettext("Fill out all fields.")),!1):e.new_password?(O["default"].error(e.new_password[0]),!1):this.state.new_password.trim()!==this.state.repeat_password.trim()?(O["default"].error(gettext("New passwords are different.")),!1):!0}},{key:"send",value:function(){return _["default"].post(this.props.user.api_url.change_password,{new_password:this.state.new_password,password:this.state.password})}},{key:"handleSuccess",value:function(e){this.setState({new_password:"",repeat_password:"",password:""}),O["default"].success(e.detail)}},{key:"handleError",value:function(e){400===e.status?e.new_password?O["default"].error(e.new_password):O["default"].error(e.password):O["default"].apiError(e)}},{key:"render",value:function(){return c["default"].createElement("form",{onSubmit:this.handleSubmit,className:"form-horizontal"},c["default"].createElement("input",{type:"type",style:{display:"none"}}),c["default"].createElement("input",{type:"password",style:{display:"none"}}),c["default"].createElement("div",{className:"panel panel-default panel-form"},c["default"].createElement("div",{className:"panel-heading"},c["default"].createElement("h3",{className:"panel-title"},gettext("Change password"))),c["default"].createElement("div",{className:"panel-body"},c["default"].createElement(v["default"],{label:gettext("New password"),"for":"id_new_password",labelClass:"col-sm-4",controlClass:"col-sm-8"},c["default"].createElement("input",{type:"password",id:"id_new_password",className:"form-control",disabled:this.state.isLoading,onChange:this.bindInput("new_password"),value:this.state.new_password})),c["default"].createElement(v["default"],{label:gettext("Repeat password"),"for":"id_repeat_password",labelClass:"col-sm-4",controlClass:"col-sm-8"},c["default"].createElement("input",{type:"password",id:"id_repeat_password",className:"form-control",disabled:this.state.isLoading,onChange:this.bindInput("repeat_password"),value:this.state.repeat_password})),c["default"].createElement("hr",null),c["default"].createElement(v["default"],{label:gettext("Your current password"),"for":"id_password",labelClass:"col-sm-4",controlClass:"col-sm-8"},c["default"].createElement("input",{type:"password",id:"id_password",className:"form-control",disabled:this.state.isLoading,onChange:this.bindInput("password"),value:this.state.password}))),c["default"].createElement("div",{className:"panel-footer"},c["default"].createElement("div",{className:"row"},c["default"].createElement("div",{className:"col-sm-8 col-sm-offset-4"},c["default"].createElement(f["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Change password")))))))}}]),t}(m["default"]),C=function(e){function t(){return s(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"componentDidMount",value:function(){E["default"].set({title:gettext("Change email or password"),parent:gettext("Change your options")})}},{key:"render",value:function(){return c["default"].createElement("div",null,c["default"].createElement(j,{user:this.props.user}),c["default"].createElement(P,{user:this.props.user}),c["default"].createElement("p",{className:"message-line"},c["default"].createElement("span",{className:"material-icon"},"warning"),c["default"].createElement("a",{href:b["default"].get("FORGOTTEN_PASSWORD_URL")},gettext("Change forgotten password"))))}}]),t}(c["default"].Component);n["default"]=C},{"../../index":85,"../../services/ajax":91,"../../services/page-title":98,"../../services/snackbar":99,"../../utils/validators":109,"../button":51,"../form":58,"../form-group":57,react:"react"}],67:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.LABELS=n.STYLES=void 0;var u=e("react"),l=a(u),c=e("../services/zxcvbn"),d=a(c),f=n.STYLES=["progress-bar-danger","progress-bar-warning","progress-bar-warning","progress-bar-primary","progress-bar-success"],p=n.LABELS=[gettext("Entered password is very weak."),gettext("Entered password is weak."),gettext("Entered password is average."),gettext("Entered password is strong."),gettext("Entered password is very strong.")],m=function(e){function t(e){r(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n._score=0,n._password=null,n._inputs=[],n}return o(t,e),i(t,[{key:"getScore",value:function(e,t){var n=this,a=!1;return e.trim()!==this._password&&(a=!0),t.length!==this._inputs.length?a=!0:t.map(function(e,t){e.trim()!==n._inputs[t]&&(a=!0)}),a&&(this._score=d["default"].scorePassword(e,t),this._password=e.trim(),this._inputs=t.map(function(e){return e.trim()})),this._score}},{key:"render",value:function(){var e=this.getScore(this.props.password,this.props.inputs);return l["default"].createElement("div",{className:"help-block password-strength"},l["default"].createElement("div",{className:"progress"},l["default"].createElement("div",{className:"progress-bar "+f[e],style:{width:20+20*e+"%"},role:"progress-bar","aria-valuenow":e,"aria-valuemin":"0","aria-valuemax":"4"},l["default"].createElement("span",{className:"sr-only"},p[e]))),l["default"].createElement("p",{className:"text-small"},p[e]))}}]),t}(l["default"].Component);n["default"]=m},{"../services/zxcvbn":101,react:"react"}],68:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("./loader"),d=a(c),f=e("./register.js"),p=a(f),m=e("../services/captcha"),h=a(m),v=e("../services/modal"),g=a(v),b=e("../services/snackbar"),y=a(b),_=e("../services/zxcvbn"),w=a(_),E=function(e){function t(e){r(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.showRegisterModal=function(){"closed"===misago.get("SETTINGS").account_activation?y["default"].info(gettext("New registrations are currently disabled.")):n.state.isLoaded?g["default"].show(p["default"]):(n.setState({isLoading:!0}),Promise.all([h["default"].load(),w["default"].load()]).then(function(){n.state.isLoaded||n.setState({isLoading:!1,isLoaded:!1}),g["default"].show(p["default"])}))},n.state={isLoading:!1,isLoaded:!1},n}return o(t,e),i(t,[{key:"getClassName",value:function(){return this.props.className+(this.state.isLoading?" btn-loading":"")}},{key:"render",value:function(){return l["default"].createElement("button",{type:"button",onClick:this.showRegisterModal,className:"btn "+this.getClassName(),disabled:this.state.isLoaded},gettext("Register"),this.state.isLoading?l["default"].createElement(d["default"],null):null)}}]),t}(l["default"].Component);n["default"]=E},{"../services/captcha":93,"../services/modal":97,"../services/snackbar":99,"../services/zxcvbn":101,"./loader":60,"./register.js":69,react:"react"}],69:[function(e,t,n){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.RegisterComplete=n.RegisterForm=void 0;var l=e("react"),c=r(l),d=e("./button"),f=r(d),p=e("./form"),m=r(p),h=e("./form-group"),v=r(h),g=e("./password-strength"),b=r(g),y=e("../index"),_=r(y),w=e("../services/ajax"),E=r(w),k=e("../services/auth"),O=r(k),x=e("../services/captcha"),N=r(x),j=e("../services/modal"),P=r(j),C=e("../services/snackbar"),S=r(C),M=e("../utils/banned-page"),T=r(M),L=e("../utils/validators"),A=a(L),R=n.RegisterForm=function(e){function t(e){s(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.state={isLoading:!1,username:"",email:"",password:"",captcha:"",validators:{username:[A.usernameContent(),A.usernameMinLength(_["default"].get("SETTINGS")),A.usernameMaxLength(_["default"].get("SETTINGS"))],email:[A.email()],password:[A.passwordMinLength(_["default"].get("SETTINGS"))],captcha:N["default"].validator()},errors:{}},n}return i(t,e),u(t,[{key:"clean",value:function(){return this.isValid()?!0:(S["default"].error(gettext("Form contains errors.")),this.setState({errors:this.validate()}),!1)}},{key:"send",value:function(){return E["default"].post(_["default"].get("USERS_API"),{username:this.state.username,email:this.state.email,password:this.state.password,captcha:this.state.captcha})}},{key:"handleSuccess",value:function(e){this.props.callback(e)}},{key:"handleError",value:function(e){400===e.status?(this.setState({errors:Object.assign({},this.state.errors,e)}),S["default"].error(gettext("Form contains errors."))):403===e.status&&e.ban?((0,T["default"])(e.ban),P["default"].hide()):S["default"].apiError(e)}},{key:"getLegalFootNote",value:function(){return _["default"].get("TERMS_OF_SERVICE_URL")?c["default"].createElement("a",{href:_["default"].get("TERMS_OF_SERVICE_URL"),target:"_blank"},gettext("By registering you agree to site's terms and conditions.")):null}},{key:"render",value:function(){return c["default"].createElement("div",{className:"modal-dialog modal-register",role:"document"},c["default"].createElement("div",{className:"modal-content"},c["default"].createElement("div",{className:"modal-header"},c["default"].createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":gettext("Close")},c["default"].createElement("span",{"aria-hidden":"true"},"×")),c["default"].createElement("h4",{className:"modal-title"},gettext("Register"))),c["default"].createElement("form",{onSubmit:this.handleSubmit,className:"form-horizontal"},c["default"].createElement("input",{type:"type",style:{display:"none"}}),c["default"].createElement("input",{type:"password",style:{display:"none"}}),c["default"].createElement("div",{className:"modal-body"},c["default"].createElement(v["default"],{label:gettext("Username"),"for":"id_username",labelClass:"col-sm-4",controlClass:"col-sm-8",validation:this.state.errors.username},c["default"].createElement("input",{type:"text",id:"id_username",className:"form-control","aria-describedby":"id_username_status",disabled:this.state.isLoading,onChange:this.bindInput("username"),value:this.state.username})),c["default"].createElement(v["default"],{label:gettext("E-mail"),"for":"id_email",labelClass:"col-sm-4",controlClass:"col-sm-8",validation:this.state.errors.email},c["default"].createElement("input",{type:"text",id:"id_email",className:"form-control","aria-describedby":"id_email_status",disabled:this.state.isLoading,onChange:this.bindInput("email"),value:this.state.email})),c["default"].createElement(v["default"],{label:gettext("Password"),"for":"id_password",labelClass:"col-sm-4",controlClass:"col-sm-8",validation:this.state.errors.password,extra:c["default"].createElement(b["default"],{password:this.state.password,inputs:[this.state.username,this.state.email]})},c["default"].createElement("input",{type:"password",id:"id_password",className:"form-control","aria-describedby":"id_password_status",disabled:this.state.isLoading,onChange:this.bindInput("password"),value:this.state.password})),N["default"].component({form:this,labelClass:"col-sm-4",controlClass:"col-sm-8"})),c["default"].createElement("div",{className:"modal-footer"},this.getLegalFootNote(),c["default"].createElement(f["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Register account"))))))}}]),t}(m["default"]),I=n.RegisterComplete=function(e){function t(){return s(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"getLead",value:function(){return"user"===this.props.activation?gettext("%(username)s, your account has been created but you need to activate it before you will be able to sign in."):"admin"===this.props.activation?gettext("%(username)s, your account has been created but board administrator will have to activate it before you will be able to sign in."):void 0}},{key:"getSubscript",value:function(){return"user"===this.props.activation?gettext("We have sent an e-mail to %(email)s with link that you have to click to activate your account."):"admin"===this.props.activation?gettext("We will send an e-mail to %(email)s when this takes place."):void 0}},{key:"render",value:function(){return c["default"].createElement("div",{className:"modal-dialog modal-message modal-register",role:"document"},c["default"].createElement("div",{className:"modal-content"},c["default"].createElement("div",{className:"modal-header"},c["default"].createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":gettext("Close")},c["default"].createElement("span",{"aria-hidden":"true"},"×")),c["default"].createElement("h4",{className:"modal-title"},gettext("Registration complete"))),c["default"].createElement("div",{className:"modal-body"},c["default"].createElement("div",{className:"message-icon"},c["default"].createElement("span",{className:"material-icon"},"info_outline")),c["default"].createElement("div",{className:"message-body"},c["default"].createElement("p",{className:"lead"},interpolate(this.getLead(),{username:this.props.username},!0)),c["default"].createElement("p",null,interpolate(this.getSubscript(),{email:this.props.email},!0))))))}}]),t}(c["default"].Component),U=function(e){function t(e){s(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.completeRegistration=function(e){"active"===e.activation?(P["default"].hide(),O["default"].signIn(e)):n.setState({complete:e})},n.state={complete:!1},n}return i(t,e),u(t,[{key:"render",value:function(){return this.state.complete?c["default"].createElement(I,{activation:this.state.complete.activation,username:this.state.complete.username,email:this.state.complete.email}):c["default"].createElement(R,{callback:this.completeRegistration})}}]),t}(c["default"].Component);n["default"]=U},{"../index":85,"../services/ajax":91,"../services/auth":92,"../services/captcha":93,"../services/modal":97,"../services/snackbar":99,"../utils/banned-page":102,"../utils/validators":109,"./button":51,"./form":58,"./form-group":57,"./password-strength":67,react:"react"}],70:[function(e,t,n){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.LinkSent=n.RequestLinkForm=void 0;var l=e("react"),c=r(l),d=e("../index"),f=r(d),p=e("./button"),m=r(p),h=e("./form"),v=r(h),g=e("../services/ajax"),b=r(g),y=e("../services/snackbar"),_=r(y),w=e("../utils/validators"),E=a(w),k=e("../utils/banned-page"),O=r(k),x=n.RequestLinkForm=function(e){function t(e){s(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.state={isLoading:!1,email:"",validators:{email:[E.email()]}},n}return i(t,e),u(t,[{key:"clean",value:function(){return this.isValid()?!0:(_["default"].error(gettext("Enter a valid email address.")),!1)}},{key:"send",value:function(){return b["default"].post(f["default"].get("SEND_ACTIVATION_API"),{email:this.state.email})}},{key:"handleSuccess",value:function(e){this.props.callback(e)}},{key:"handleError",value:function(e){["already_active","inactive_admin"].indexOf(e.code)>-1?_["default"].info(e.detail):403===e.status&&e.ban?(0,O["default"])(e.ban):_["default"].apiError(e)}},{key:"render",value:function(){return c["default"].createElement("div",{className:"well well-form well-form-request-activation-link"},c["default"].createElement("form",{onSubmit:this.handleSubmit},c["default"].createElement("div",{className:"form-group"},c["default"].createElement("div",{className:"control-input"},c["default"].createElement("input",{type:"text",className:"form-control",placeholder:gettext("Your e-mail address"),disabled:this.state.isLoading,onChange:this.bindInput("email"),value:this.state.email}))),c["default"].createElement(m["default"],{className:"btn-primary btn-block",loading:this.state.isLoading},gettext("Send link"))))}}]),t}(v["default"]),N=n.LinkSent=function(e){function t(){return s(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"getMessage",value:function(){return interpolate(gettext("Activation link was sent to %(email)s"),{email:this.props.user.email},!0)}},{key:"render",value:function(){return c["default"].createElement("div",{className:"well well-form well-form-request-activation-link well-done"},c["default"].createElement("div",{className:"done-message"},c["default"].createElement("div",{className:"message-icon"},c["default"].createElement("span",{className:"material-icon"},"check")),c["default"].createElement("div",{className:"message-body"},c["default"].createElement("p",null,this.getMessage())),c["default"].createElement("button",{type:"button",className:"btn btn-primary btn-block",onClick:this.props.callback},gettext("Request another link"))))}}]),t}(c["default"].Component),j=function(e){function t(e){s(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.complete=function(e){n.setState({complete:e})},n.reset=function(){n.setState({complete:!1})},n.state={complete:!1},n}return i(t,e),u(t,[{key:"render",value:function(){return this.state.complete?c["default"].createElement(N,{user:this.state.complete,callback:this.reset}):c["default"].createElement(x,{callback:this.complete})}}]),t}(c["default"].Component);n["default"]=j},{"../index":85,"../services/ajax":91,"../services/snackbar":99,"../utils/banned-page":102,"../utils/validators":109,"./button":51,"./form":58,react:"react"}],71:[function(e,t,n){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.AccountInactivePage=n.LinkSent=n.RequestResetForm=void 0;var l=e("react"),c=r(l),d=e("react-dom"),f=r(d),p=e("../index"),m=r(p),h=e("./button"),v=r(h),g=e("./form"),b=r(g),y=e("../services/ajax"),_=r(y),w=e("../services/snackbar"),E=r(w),k=e("../utils/validators"),O=a(k),x=e("../utils/banned-page"),N=r(x),j=n.RequestResetForm=function(e){function t(e){s(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.state={isLoading:!1,email:"",validators:{email:[O.email()]}},n}return i(t,e),u(t,[{key:"clean",value:function(){return this.isValid()?!0:(E["default"].error(gettext("Enter a valid email address.")),!1)}},{key:"send",value:function(){return _["default"].post(m["default"].get("SEND_PASSWORD_RESET_API"),{email:this.state.email})}},{key:"handleSuccess",value:function(e){this.props.callback(e)}},{key:"handleError",value:function(e){["inactive_user","inactive_admin"].indexOf(e.code)>-1?this.props.showInactivePage(e):403===e.status&&e.ban?(0,N["default"])(e.ban):E["default"].apiError(e)}},{key:"render",value:function(){return c["default"].createElement("div",{className:"well well-form well-form-request-password-reset"},c["default"].createElement("form",{onSubmit:this.handleSubmit},c["default"].createElement("div",{className:"form-group"},c["default"].createElement("div",{className:"control-input"},c["default"].createElement("input",{type:"text",className:"form-control",placeholder:gettext("Your e-mail address"),disabled:this.state.isLoading,onChange:this.bindInput("email"),value:this.state.email}))),c["default"].createElement(v["default"],{className:"btn-primary btn-block",loading:this.state.isLoading},gettext("Send link"))))}}]),t}(b["default"]),P=n.LinkSent=function(e){function t(){return s(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"getMessage",value:function(){return interpolate(gettext("Reset password link was sent to %(email)s"),{email:this.props.user.email},!0)}},{key:"render",value:function(){return c["default"].createElement("div",{className:"well well-form well-form-request-password-reset well-done"},c["default"].createElement("div",{className:"done-message"},c["default"].createElement("div",{className:"message-icon"},c["default"].createElement("span",{className:"material-icon"},"check")),c["default"].createElement("div",{className:"message-body"},c["default"].createElement("p",null,this.getMessage())),c["default"].createElement("button",{type:"button",className:"btn btn-primary btn-block",onClick:this.props.callback},gettext("Request another link"))))}}]),t}(c["default"].Component),C=n.AccountInactivePage=function(e){function t(){return s(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"getActivateButton",value:function(){return"inactive_user"===this.props.activation?c["default"].createElement("p",null,c["default"].createElement("a",{href:m["default"].get("REQUEST_ACTIVATION_URL")},gettext("Activate your account."))):null}},{key:"render",value:function(){return c["default"].createElement("div",{className:"page page-message page-message-info page-forgotten-password-inactive"},c["default"].createElement("div",{className:"container"},c["default"].createElement("div",{className:"message-panel"
 },{path:w["default"].get("USERCP_URL")+"sign-in-credentials/",component:(0,f.connect)(i)(y["default"])}]}var l=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.select=i,n.paths=u;var c=e("react"),d=a(c),f=e("react-redux"),p=e("./navs"),m=e("./forum-options"),h=a(m),v=e("./change-username"),g=a(v),b=e("./sign-in-credentials"),y=a(b),_=e("../../index"),w=a(_),E=function(e){function t(e){r(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.toggleNav=function(){n.state.dropdown?n.setState({dropdown:!1}):n.setState({dropdown:!0})},n.state={dropdown:!1},n}return o(t,e),l(t,[{key:"getToggleNavClassName",value:function(){return this.state.dropdown?"btn btn-default btn-icon open":"btn btn-default btn-icon"}},{key:"getCompactNavClassName",value:function(){return this.state.dropdown?"compact-nav open":"compact-nav"}},{key:"render",value:function(){return d["default"].createElement("div",{className:"page page-options"},d["default"].createElement("div",{className:"page-header"},d["default"].createElement("div",{className:"container"},d["default"].createElement("h1",{className:"pull-left"},gettext("Change your options")),d["default"].createElement("button",{className:"btn btn-default btn-icon btn-dropdown-toggle hidden-md hidden-lg",type:"button",onClick:this.toggleNav,"aria-haspopup":"true","aria-expanded":this.state.dropdown?"true":"false"},d["default"].createElement("i",{className:"material-icon"},"menu")))),d["default"].createElement("div",{className:this.getCompactNavClassName()},d["default"].createElement(p.CompactNav,{options:w["default"].get("USER_OPTIONS"),baseUrl:w["default"].get("USERCP_URL")})),d["default"].createElement("div",{className:"container"},d["default"].createElement("div",{className:"row"},d["default"].createElement("div",{className:"col-md-3 hidden-xs hidden-sm"},d["default"].createElement(p.SideNav,{options:w["default"].get("USER_OPTIONS"),baseUrl:w["default"].get("USERCP_URL")})),d["default"].createElement("div",{className:"col-md-9"},this.props.children))))}}]),t}(d["default"].Component);n["default"]=E},{"../../index":85,"./change-username":62,"./forum-options":63,"./navs":64,"./sign-in-credentials":66,react:"react","react-redux":"react-redux"}],66:[function(e,t,n){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.ChangePassword=n.ChangeEmail=void 0;var l=e("react"),c=r(l),d=e("../button"),f=r(d),p=e("../form"),m=r(p),h=e("../form-group"),v=r(h),g=e("../../index"),b=r(g),y=e("../../services/ajax"),_=r(y),w=e("../../services/page-title"),E=r(w),k=e("../../services/snackbar"),O=r(k),x=e("../../utils/validators"),N=a(x),j=n.ChangeEmail=function(e){function t(e){s(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.state={new_email:"",password:"",validators:{new_email:[N.email()],password:[]},isLoading:!1},n}return i(t,e),u(t,[{key:"clean",value:function(){var e=this.validate(),t=[this.state.new_email.trim().length,this.state.password.trim().length];return-1!==t.indexOf(0)?(O["default"].error(gettext("Fill out all fields.")),!1):e.new_email?(O["default"].error(e.new_email[0]),!1):!0}},{key:"send",value:function(){return _["default"].post(this.props.user.api_url.change_email,{new_email:this.state.new_email,password:this.state.password})}},{key:"handleSuccess",value:function(e){this.setState({new_email:"",password:""}),O["default"].success(e.detail)}},{key:"handleError",value:function(e){400===e.status?e.new_email?O["default"].error(e.new_email):O["default"].error(e.password):O["default"].apiError(e)}},{key:"render",value:function(){return c["default"].createElement("form",{onSubmit:this.handleSubmit,className:"form-horizontal"},c["default"].createElement("input",{type:"type",style:{display:"none"}}),c["default"].createElement("input",{type:"password",style:{display:"none"}}),c["default"].createElement("div",{className:"panel panel-default panel-form"},c["default"].createElement("div",{className:"panel-heading"},c["default"].createElement("h3",{className:"panel-title"},gettext("Change e-mail address"))),c["default"].createElement("div",{className:"panel-body"},c["default"].createElement(v["default"],{label:gettext("New e-mail"),"for":"id_new_email",labelClass:"col-sm-4",controlClass:"col-sm-8"},c["default"].createElement("input",{type:"text",id:"id_new_email",className:"form-control",disabled:this.state.isLoading,onChange:this.bindInput("new_email"),value:this.state.new_email})),c["default"].createElement("hr",null),c["default"].createElement(v["default"],{label:gettext("Your current password"),"for":"id_password",labelClass:"col-sm-4",controlClass:"col-sm-8"},c["default"].createElement("input",{type:"password",id:"id_password",className:"form-control",disabled:this.state.isLoading,onChange:this.bindInput("password"),value:this.state.password}))),c["default"].createElement("div",{className:"panel-footer"},c["default"].createElement("div",{className:"row"},c["default"].createElement("div",{className:"col-sm-8 col-sm-offset-4"},c["default"].createElement(f["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Change e-mail")))))))}}]),t}(m["default"]),P=n.ChangePassword=function(e){function t(e){s(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.state={new_password:"",repeat_password:"",password:"",validators:{new_password:[N.passwordMinLength(b["default"].get("SETTINGS"))],repeat_password:[],password:[]},isLoading:!1},n}return i(t,e),u(t,[{key:"clean",value:function(){var e=this.validate(),t=[this.state.new_password.trim().length,this.state.repeat_password.trim().length,this.state.password.trim().length];return-1!==t.indexOf(0)?(O["default"].error(gettext("Fill out all fields.")),!1):e.new_password?(O["default"].error(e.new_password[0]),!1):this.state.new_password.trim()!==this.state.repeat_password.trim()?(O["default"].error(gettext("New passwords are different.")),!1):!0}},{key:"send",value:function(){return _["default"].post(this.props.user.api_url.change_password,{new_password:this.state.new_password,password:this.state.password})}},{key:"handleSuccess",value:function(e){this.setState({new_password:"",repeat_password:"",password:""}),O["default"].success(e.detail)}},{key:"handleError",value:function(e){400===e.status?e.new_password?O["default"].error(e.new_password):O["default"].error(e.password):O["default"].apiError(e)}},{key:"render",value:function(){return c["default"].createElement("form",{onSubmit:this.handleSubmit,className:"form-horizontal"},c["default"].createElement("input",{type:"type",style:{display:"none"}}),c["default"].createElement("input",{type:"password",style:{display:"none"}}),c["default"].createElement("div",{className:"panel panel-default panel-form"},c["default"].createElement("div",{className:"panel-heading"},c["default"].createElement("h3",{className:"panel-title"},gettext("Change password"))),c["default"].createElement("div",{className:"panel-body"},c["default"].createElement(v["default"],{label:gettext("New password"),"for":"id_new_password",labelClass:"col-sm-4",controlClass:"col-sm-8"},c["default"].createElement("input",{type:"password",id:"id_new_password",className:"form-control",disabled:this.state.isLoading,onChange:this.bindInput("new_password"),value:this.state.new_password})),c["default"].createElement(v["default"],{label:gettext("Repeat password"),"for":"id_repeat_password",labelClass:"col-sm-4",controlClass:"col-sm-8"},c["default"].createElement("input",{type:"password",id:"id_repeat_password",className:"form-control",disabled:this.state.isLoading,onChange:this.bindInput("repeat_password"),value:this.state.repeat_password})),c["default"].createElement("hr",null),c["default"].createElement(v["default"],{label:gettext("Your current password"),"for":"id_password",labelClass:"col-sm-4",controlClass:"col-sm-8"},c["default"].createElement("input",{type:"password",id:"id_password",className:"form-control",disabled:this.state.isLoading,onChange:this.bindInput("password"),value:this.state.password}))),c["default"].createElement("div",{className:"panel-footer"},c["default"].createElement("div",{className:"row"},c["default"].createElement("div",{className:"col-sm-8 col-sm-offset-4"},c["default"].createElement(f["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Change password")))))))}}]),t}(m["default"]),C=function(e){function t(){return s(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"componentDidMount",value:function(){E["default"].set({title:gettext("Change email or password"),parent:gettext("Change your options")})}},{key:"render",value:function(){return c["default"].createElement("div",null,c["default"].createElement(j,{user:this.props.user}),c["default"].createElement(P,{user:this.props.user}),c["default"].createElement("p",{className:"message-line"},c["default"].createElement("span",{className:"material-icon"},"warning"),c["default"].createElement("a",{href:b["default"].get("FORGOTTEN_PASSWORD_URL")},gettext("Change forgotten password"))))}}]),t}(c["default"].Component);n["default"]=C},{"../../index":85,"../../services/ajax":91,"../../services/page-title":98,"../../services/snackbar":99,"../../utils/validators":109,"../button":51,"../form":58,"../form-group":57,react:"react"}],67:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.LABELS=n.STYLES=void 0;var u=e("react"),l=a(u),c=e("../services/zxcvbn"),d=a(c),f=n.STYLES=["progress-bar-danger","progress-bar-warning","progress-bar-warning","progress-bar-primary","progress-bar-success"],p=n.LABELS=[gettext("Entered password is very weak."),gettext("Entered password is weak."),gettext("Entered password is average."),gettext("Entered password is strong."),gettext("Entered password is very strong.")],m=function(e){function t(e){r(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n._score=0,n._password=null,n._inputs=[],n}return o(t,e),i(t,[{key:"getScore",value:function(e,t){var n=this,a=!1;return e.trim()!==this._password&&(a=!0),t.length!==this._inputs.length?a=!0:t.map(function(e,t){e.trim()!==n._inputs[t]&&(a=!0)}),a&&(this._score=d["default"].scorePassword(e,t),this._password=e.trim(),this._inputs=t.map(function(e){return e.trim()})),this._score}},{key:"render",value:function(){var e=this.getScore(this.props.password,this.props.inputs);return l["default"].createElement("div",{className:"help-block password-strength"},l["default"].createElement("div",{className:"progress"},l["default"].createElement("div",{className:"progress-bar "+f[e],style:{width:20+20*e+"%"},role:"progress-bar","aria-valuenow":e,"aria-valuemin":"0","aria-valuemax":"4"},l["default"].createElement("span",{className:"sr-only"},p[e]))),l["default"].createElement("p",{className:"text-small"},p[e]))}}]),t}(l["default"].Component);n["default"]=m},{"../services/zxcvbn":101,react:"react"}],68:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("./loader"),d=a(c),f=e("./register.js"),p=a(f),m=e("../services/captcha"),h=a(m),v=e("../services/modal"),g=a(v),b=e("../services/snackbar"),y=a(b),_=e("../services/zxcvbn"),w=a(_),E=function(e){function t(e){r(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.showRegisterModal=function(){"closed"===misago.get("SETTINGS").account_activation?y["default"].info(gettext("New registrations are currently disabled.")):n.state.isLoaded?g["default"].show(p["default"]):(n.setState({isLoading:!0}),Promise.all([h["default"].load(),w["default"].load()]).then(function(){n.state.isLoaded||n.setState({isLoading:!1,isLoaded:!1}),g["default"].show(p["default"])}))},n.state={isLoading:!1,isLoaded:!1},n}return o(t,e),i(t,[{key:"getClassName",value:function(){return this.props.className+(this.state.isLoading?" btn-loading":"")}},{key:"render",value:function(){return l["default"].createElement("button",{type:"button",onClick:this.showRegisterModal,className:"btn "+this.getClassName(),disabled:this.state.isLoaded},gettext("Register"),this.state.isLoading?l["default"].createElement(d["default"],null):null)}}]),t}(l["default"].Component);n["default"]=E},{"../services/captcha":93,"../services/modal":97,"../services/snackbar":99,"../services/zxcvbn":101,"./loader":60,"./register.js":69,react:"react"}],69:[function(e,t,n){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.RegisterComplete=n.RegisterForm=void 0;var l=e("react"),c=r(l),d=e("./button"),f=r(d),p=e("./form"),m=r(p),h=e("./form-group"),v=r(h),g=e("./password-strength"),b=r(g),y=e("../index"),_=r(y),w=e("../services/ajax"),E=r(w),k=e("../services/auth"),O=r(k),x=e("../services/captcha"),N=r(x),j=e("../services/modal"),P=r(j),C=e("../services/snackbar"),S=r(C),M=e("../utils/banned-page"),T=r(M),L=e("../utils/validators"),A=a(L),R=n.RegisterForm=function(e){function t(e){s(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.state={isLoading:!1,username:"",email:"",password:"",captcha:"",validators:{username:[A.usernameContent(),A.usernameMinLength(_["default"].get("SETTINGS")),A.usernameMaxLength(_["default"].get("SETTINGS"))],email:[A.email()],password:[A.passwordMinLength(_["default"].get("SETTINGS"))],captcha:N["default"].validator()},errors:{}},n}return i(t,e),u(t,[{key:"clean",value:function(){return this.isValid()?!0:(S["default"].error(gettext("Form contains errors.")),this.setState({errors:this.validate()}),!1)}},{key:"send",value:function(){return E["default"].post(_["default"].get("USERS_API"),{username:this.state.username,email:this.state.email,password:this.state.password,captcha:this.state.captcha})}},{key:"handleSuccess",value:function(e){this.props.callback(e)}},{key:"handleError",value:function(e){400===e.status?(this.setState({errors:Object.assign({},this.state.errors,e)}),S["default"].error(gettext("Form contains errors."))):403===e.status&&e.ban?((0,T["default"])(e.ban),P["default"].hide()):S["default"].apiError(e)}},{key:"getLegalFootNote",value:function(){return _["default"].get("TERMS_OF_SERVICE_URL")?c["default"].createElement("a",{href:_["default"].get("TERMS_OF_SERVICE_URL"),target:"_blank"},gettext("By registering you agree to site's terms and conditions.")):null}},{key:"render",value:function(){return c["default"].createElement("div",{className:"modal-dialog modal-register",role:"document"},c["default"].createElement("div",{className:"modal-content"},c["default"].createElement("div",{className:"modal-header"},c["default"].createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":gettext("Close")},c["default"].createElement("span",{"aria-hidden":"true"},"×")),c["default"].createElement("h4",{className:"modal-title"},gettext("Register"))),c["default"].createElement("form",{onSubmit:this.handleSubmit,className:"form-horizontal"},c["default"].createElement("input",{type:"type",style:{display:"none"}}),c["default"].createElement("input",{type:"password",style:{display:"none"}}),c["default"].createElement("div",{className:"modal-body"},c["default"].createElement(v["default"],{label:gettext("Username"),"for":"id_username",labelClass:"col-sm-4",controlClass:"col-sm-8",validation:this.state.errors.username},c["default"].createElement("input",{type:"text",id:"id_username",className:"form-control","aria-describedby":"id_username_status",disabled:this.state.isLoading,onChange:this.bindInput("username"),value:this.state.username})),c["default"].createElement(v["default"],{label:gettext("E-mail"),"for":"id_email",labelClass:"col-sm-4",controlClass:"col-sm-8",validation:this.state.errors.email},c["default"].createElement("input",{type:"text",id:"id_email",className:"form-control","aria-describedby":"id_email_status",disabled:this.state.isLoading,onChange:this.bindInput("email"),value:this.state.email})),c["default"].createElement(v["default"],{label:gettext("Password"),"for":"id_password",labelClass:"col-sm-4",controlClass:"col-sm-8",validation:this.state.errors.password,extra:c["default"].createElement(b["default"],{password:this.state.password,inputs:[this.state.username,this.state.email]})},c["default"].createElement("input",{type:"password",id:"id_password",className:"form-control","aria-describedby":"id_password_status",disabled:this.state.isLoading,onChange:this.bindInput("password"),value:this.state.password})),N["default"].component({form:this,labelClass:"col-sm-4",controlClass:"col-sm-8"})),c["default"].createElement("div",{className:"modal-footer"},this.getLegalFootNote(),c["default"].createElement(f["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Register account"))))))}}]),t}(m["default"]),I=n.RegisterComplete=function(e){function t(){return s(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"getLead",value:function(){return"user"===this.props.activation?gettext("%(username)s, your account has been created but you need to activate it before you will be able to sign in."):"admin"===this.props.activation?gettext("%(username)s, your account has been created but board administrator will have to activate it before you will be able to sign in."):void 0}},{key:"getSubscript",value:function(){return"user"===this.props.activation?gettext("We have sent an e-mail to %(email)s with link that you have to click to activate your account."):"admin"===this.props.activation?gettext("We will send an e-mail to %(email)s when this takes place."):void 0}},{key:"render",value:function(){return c["default"].createElement("div",{className:"modal-dialog modal-message modal-register",role:"document"},c["default"].createElement("div",{className:"modal-content"},c["default"].createElement("div",{className:"modal-header"},c["default"].createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":gettext("Close")},c["default"].createElement("span",{"aria-hidden":"true"},"×")),c["default"].createElement("h4",{className:"modal-title"},gettext("Registration complete"))),c["default"].createElement("div",{className:"modal-body"},c["default"].createElement("div",{className:"message-icon"},c["default"].createElement("span",{className:"material-icon"},"info_outline")),c["default"].createElement("div",{className:"message-body"},c["default"].createElement("p",{className:"lead"},interpolate(this.getLead(),{username:this.props.username},!0)),c["default"].createElement("p",null,interpolate(this.getSubscript(),{email:this.props.email},!0))))))}}]),t}(c["default"].Component),U=function(e){function t(e){s(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.completeRegistration=function(e){"active"===e.activation?(P["default"].hide(),O["default"].signIn(e)):n.setState({complete:e})},n.state={complete:!1},n}return i(t,e),u(t,[{key:"render",value:function(){return this.state.complete?c["default"].createElement(I,{activation:this.state.complete.activation,username:this.state.complete.username,email:this.state.complete.email}):c["default"].createElement(R,{callback:this.completeRegistration})}}]),t}(c["default"].Component);n["default"]=U},{"../index":85,"../services/ajax":91,"../services/auth":92,"../services/captcha":93,"../services/modal":97,"../services/snackbar":99,"../utils/banned-page":102,"../utils/validators":109,"./button":51,"./form":58,"./form-group":57,"./password-strength":67,react:"react"}],70:[function(e,t,n){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.LinkSent=n.RequestLinkForm=void 0;var l=e("react"),c=r(l),d=e("../index"),f=r(d),p=e("./button"),m=r(p),h=e("./form"),v=r(h),g=e("../services/ajax"),b=r(g),y=e("../services/snackbar"),_=r(y),w=e("../utils/validators"),E=a(w),k=e("../utils/banned-page"),O=r(k),x=n.RequestLinkForm=function(e){function t(e){s(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.state={isLoading:!1,email:"",validators:{email:[E.email()]}},n}return i(t,e),u(t,[{key:"clean",value:function(){return this.isValid()?!0:(_["default"].error(gettext("Enter a valid email address.")),!1)}},{key:"send",value:function(){return b["default"].post(f["default"].get("SEND_ACTIVATION_API"),{email:this.state.email})}},{key:"handleSuccess",value:function(e){this.props.callback(e)}},{key:"handleError",value:function(e){["already_active","inactive_admin"].indexOf(e.code)>-1?_["default"].info(e.detail):403===e.status&&e.ban?(0,O["default"])(e.ban):_["default"].apiError(e)}},{key:"render",value:function(){return c["default"].createElement("div",{className:"well well-form well-form-request-activation-link"},c["default"].createElement("form",{onSubmit:this.handleSubmit},c["default"].createElement("div",{className:"form-group"},c["default"].createElement("div",{className:"control-input"},c["default"].createElement("input",{type:"text",className:"form-control",placeholder:gettext("Your e-mail address"),disabled:this.state.isLoading,onChange:this.bindInput("email"),value:this.state.email}))),c["default"].createElement(m["default"],{className:"btn-primary btn-block",loading:this.state.isLoading},gettext("Send link"))))}}]),t}(v["default"]),N=n.LinkSent=function(e){function t(){return s(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"getMessage",value:function(){return interpolate(gettext("Activation link was sent to %(email)s"),{email:this.props.user.email},!0)}},{key:"render",value:function(){return c["default"].createElement("div",{className:"well well-form well-form-request-activation-link well-done"},c["default"].createElement("div",{className:"done-message"},c["default"].createElement("div",{className:"message-icon"},c["default"].createElement("span",{className:"material-icon"},"check")),c["default"].createElement("div",{className:"message-body"},c["default"].createElement("p",null,this.getMessage())),c["default"].createElement("button",{type:"button",className:"btn btn-primary btn-block",onClick:this.props.callback},gettext("Request another link"))))}}]),t}(c["default"].Component),j=function(e){function t(e){s(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.complete=function(e){n.setState({complete:e})},n.reset=function(){n.setState({complete:!1})},n.state={complete:!1},n}return i(t,e),u(t,[{key:"render",value:function(){return this.state.complete?c["default"].createElement(N,{user:this.state.complete,callback:this.reset}):c["default"].createElement(x,{callback:this.complete})}}]),t}(c["default"].Component);n["default"]=j},{"../index":85,"../services/ajax":91,"../services/snackbar":99,"../utils/banned-page":102,"../utils/validators":109,"./button":51,"./form":58,react:"react"}],71:[function(e,t,n){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.AccountInactivePage=n.LinkSent=n.RequestResetForm=void 0;var l=e("react"),c=r(l),d=e("react-dom"),f=r(d),p=e("../index"),m=r(p),h=e("./button"),v=r(h),g=e("./form"),b=r(g),y=e("../services/ajax"),_=r(y),w=e("../services/snackbar"),E=r(w),k=e("../utils/validators"),O=a(k),x=e("../utils/banned-page"),N=r(x),j=n.RequestResetForm=function(e){function t(e){s(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.state={isLoading:!1,email:"",validators:{email:[O.email()]}},n}return i(t,e),u(t,[{key:"clean",value:function(){return this.isValid()?!0:(E["default"].error(gettext("Enter a valid email address.")),!1)}},{key:"send",value:function(){return _["default"].post(m["default"].get("SEND_PASSWORD_RESET_API"),{email:this.state.email})}},{key:"handleSuccess",value:function(e){this.props.callback(e)}},{key:"handleError",value:function(e){["inactive_user","inactive_admin"].indexOf(e.code)>-1?this.props.showInactivePage(e):403===e.status&&e.ban?(0,N["default"])(e.ban):E["default"].apiError(e)}},{key:"render",value:function(){return c["default"].createElement("div",{className:"well well-form well-form-request-password-reset"},c["default"].createElement("form",{onSubmit:this.handleSubmit},c["default"].createElement("div",{className:"form-group"},c["default"].createElement("div",{className:"control-input"},c["default"].createElement("input",{type:"text",className:"form-control",placeholder:gettext("Your e-mail address"),disabled:this.state.isLoading,onChange:this.bindInput("email"),value:this.state.email}))),c["default"].createElement(v["default"],{className:"btn-primary btn-block",loading:this.state.isLoading},gettext("Send link"))))}}]),t}(b["default"]),P=n.LinkSent=function(e){function t(){return s(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"getMessage",value:function(){return interpolate(gettext("Reset password link was sent to %(email)s"),{email:this.props.user.email},!0)}},{key:"render",value:function(){return c["default"].createElement("div",{className:"well well-form well-form-request-password-reset well-done"},c["default"].createElement("div",{className:"done-message"},c["default"].createElement("div",{className:"message-icon"},c["default"].createElement("span",{className:"material-icon"},"check")),c["default"].createElement("div",{className:"message-body"},c["default"].createElement("p",null,this.getMessage())),c["default"].createElement("button",{type:"button",className:"btn btn-primary btn-block",onClick:this.props.callback},gettext("Request another link"))))}}]),t}(c["default"].Component),C=n.AccountInactivePage=function(e){function t(){return s(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"getActivateButton",value:function(){return"inactive_user"===this.props.activation?c["default"].createElement("p",null,c["default"].createElement("a",{href:m["default"].get("REQUEST_ACTIVATION_URL")},gettext("Activate your account."))):null}},{key:"render",value:function(){return c["default"].createElement("div",{className:"page page-message page-message-info page-forgotten-password-inactive"},c["default"].createElement("div",{className:"container"},c["default"].createElement("div",{className:"message-panel"
-},c["default"].createElement("div",{className:"message-icon"},c["default"].createElement("span",{className:"material-icon"},"info_outline")),c["default"].createElement("div",{className:"message-body"},c["default"].createElement("p",{className:"lead"},gettext("Your account is inactive.")),c["default"].createElement("p",null,this.props.message),this.getActivateButton()))))}}]),t}(c["default"].Component),S=function(e){function t(e){s(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.complete=function(e){n.setState({complete:e})},n.reset=function(){n.setState({complete:!1})},n.state={complete:!1},n}return i(t,e),u(t,[{key:"showInactivePage",value:function(e){f["default"].render(c["default"].createElement(C,{activation:e.code,message:e.detail}),document.getElementById("page-mount"))}},{key:"render",value:function(){return this.state.complete?c["default"].createElement(P,{user:this.state.complete,callback:this.reset}):c["default"].createElement(j,{callback:this.complete,showInactivePage:this.showInactivePage})}}]),t}(c["default"].Component);n["default"]=S},{"../index":85,"../services/ajax":91,"../services/snackbar":99,"../utils/banned-page":102,"../utils/validators":109,"./button":51,"./form":58,react:"react","react-dom":"react-dom"}],72:[function(e,t,n){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.PasswordChangedPage=n.ResetPasswordForm=void 0;var l=e("react"),c=r(l),d=e("react-dom"),f=r(d),p=e("../index"),m=r(p),h=e("./button"),v=r(h),g=e("./form"),b=r(g),y=e("./sign-in.js"),_=r(y),w=e("../services/ajax"),E=r(w),k=e("../services/auth"),O=r(k),x=e("../services/modal"),N=r(x),j=e("../services/snackbar"),P=r(j),C=e("../utils/validators"),S=a(C),M=e("../utils/banned-page"),T=r(M),L=n.ResetPasswordForm=function(e){function t(e){s(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.state={isLoading:!1,password:"",validators:{password:[S.passwordMinLength(m["default"].get("SETTINGS"))]}},n}return i(t,e),u(t,[{key:"clean",value:function(){return this.isValid()?!0:(this.state.password.trim().length?P["default"].error(this.state.errors.password[0]):P["default"].error(gettext("Enter new password.")),!1)}},{key:"send",value:function(){return E["default"].post(m["default"].get("CHANGE_PASSWORD_API"),{password:this.state.password})}},{key:"handleSuccess",value:function(e){this.props.callback(e)}},{key:"handleError",value:function(e){403===e.status&&e.ban?(0,T["default"])(e.ban):P["default"].apiError(e)}},{key:"render",value:function(){return c["default"].createElement("div",{className:"well well-form well-form-reset-password"},c["default"].createElement("form",{onSubmit:this.handleSubmit},c["default"].createElement("div",{className:"form-group"},c["default"].createElement("div",{className:"control-input"},c["default"].createElement("input",{type:"password",className:"form-control",placeholder:gettext("Enter new password"),disabled:this.state.isLoading,onChange:this.bindInput("password"),value:this.state.password}))),c["default"].createElement(v["default"],{className:"btn-primary btn-block",loading:this.state.isLoading},gettext("Change password"))))}}]),t}(b["default"]),A=n.PasswordChangedPage=function(e){function t(){return s(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"getMessage",value:function(){return interpolate(gettext("%(username)s, your password has been changed successfully."),{username:this.props.user.username},!0)}},{key:"showSignIn",value:function(){N["default"].show(_["default"])}},{key:"render",value:function(){return c["default"].createElement("div",{className:"page page-message page-message-success page-forgotten-password-changed"},c["default"].createElement("div",{className:"container"},c["default"].createElement("div",{className:"message-panel"},c["default"].createElement("div",{className:"message-icon"},c["default"].createElement("span",{className:"material-icon"},"check")),c["default"].createElement("div",{className:"message-body"},c["default"].createElement("p",{className:"lead"},this.getMessage()),c["default"].createElement("p",null,gettext("You will have to sign in using new password before continuing.")),c["default"].createElement("p",null,c["default"].createElement("button",{type:"button",className:"btn btn-primary",onClick:this.showSignIn},gettext("Sign in")))))))}}]),t}(c["default"].Component),R=function(e){function t(){var e,n,a,r;s(this,t);for(var i=arguments.length,u=Array(i),l=0;i>l;l++)u[l]=arguments[l];return n=a=o(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.complete=function(e){O["default"].softSignOut(),$('#hidden-login-form input[name="redirect_to"]').remove(),f["default"].render(c["default"].createElement(A,{user:e}),document.getElementById("page-mount"))},r=n,o(a,r)}return i(t,e),u(t,[{key:"render",value:function(){return c["default"].createElement(L,{callback:this.complete})}}]),t}(c["default"].Component);n["default"]=R},{"../index":85,"../services/ajax":91,"../services/auth":92,"../services/modal":97,"../services/snackbar":99,"../utils/banned-page":102,"../utils/validators":109,"./button":51,"./form":58,"./sign-in.js":74,react:"react","react-dom":"react-dom"}],73:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=function(e){function t(){var e,n,a,o;r(this,t);for(var i=arguments.length,u=Array(i),l=0;i>l;l++)u[l]=arguments[l];return n=a=s(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.change=function(e){return function(){a.props.onChange({target:{value:e}})}},o=n,s(a,o)}return o(t,e),i(t,[{key:"getChoice",value:function(){var e=this,t=null;return this.props.choices.map(function(n){n.value===e.props.value&&(t=n)}),t}},{key:"getIcon",value:function(){return this.getChoice().icon}},{key:"getLabel",value:function(){return this.getChoice().label}},{key:"render",value:function(){var e=this;return l["default"].createElement("div",{className:"btn-group btn-select-group"},l["default"].createElement("button",{type:"button",className:"btn btn-select dropdown-toggle",id:this.props.id||null,"data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-describedby":this.props["aria-describedby"]||null,disabled:this.props.disabled||!1},l["default"].createElement("span",{className:"material-icon"},this.getIcon()),this.getLabel()),l["default"].createElement("ul",{className:"dropdown-menu"},this.props.choices.map(function(t,n){return l["default"].createElement("li",{key:n},l["default"].createElement("button",{type:"button",className:"btn-link",onClick:e.change(t.value)},l["default"].createElement("span",{className:"material-icon"},t.icon),t.label))})))}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],74:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("../index"),d=a(c),f=e("./button"),p=a(f),m=e("./form"),h=a(m),v=e("../services/ajax"),g=a(v),b=e("../services/modal"),y=a(b),_=e("../services/snackbar"),w=a(_),E=e("../utils/banned-page"),k=a(E),O=function(e){function t(e){r(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.state={isLoading:!1,showActivation:!1,username:"",password:"",validators:{username:[],password:[]}},n}return o(t,e),i(t,[{key:"clean",value:function(){return this.isValid()?!0:(w["default"].error(gettext("Fill out both fields.")),!1)}},{key:"send",value:function(){return g["default"].post(d["default"].get("AUTH_API"),{username:this.state.username,password:this.state.password})}},{key:"handleSuccess",value:function(){var e=$("#hidden-login-form");e.append('<input type="text" name="username" />'),e.append('<input type="password" name="password" />'),e.find('input[type="hidden"]').val(g["default"].getCsrfToken()),e.find('input[name="redirect_to"]').val(window.location.pathname),e.find('input[name="username"]').val(this.state.username),e.find('input[name="password"]').val(this.state.password),e.submit(),this.setState({isLoading:!0})}},{key:"handleError",value:function(e){400===e.status?"inactive_admin"===e.code?w["default"].info(e.detail):"inactive_user"===e.code?(w["default"].info(e.detail),this.setState({showActivation:!0})):"banned"===e.code?((0,k["default"])(e.detail),y["default"].hide()):w["default"].error(e.detail):403===e.status&&e.ban?((0,k["default"])(e.ban),y["default"].hide()):w["default"].apiError(e)}},{key:"getActivationButton",value:function(){return this.state.showActivation?l["default"].createElement("a",{href:d["default"].get("REQUEST_ACTIVATION_URL"),className:"btn btn-success btn-block"},gettext("Activate account")):null}},{key:"render",value:function(){return l["default"].createElement("div",{className:"modal-dialog modal-sm modal-sign-in",role:"document"},l["default"].createElement("div",{className:"modal-content"},l["default"].createElement("div",{className:"modal-header"},l["default"].createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":gettext("Close")},l["default"].createElement("span",{"aria-hidden":"true"},"×")),l["default"].createElement("h4",{className:"modal-title"},gettext("Sign in"))),l["default"].createElement("form",{onSubmit:this.handleSubmit},l["default"].createElement("div",{className:"modal-body"},l["default"].createElement("div",{className:"form-group"},l["default"].createElement("div",{className:"control-input"},l["default"].createElement("input",{id:"id_username",className:"form-control",type:"text",disabled:this.state.isLoading,placeholder:gettext("Username or e-mail"),onChange:this.bindInput("username"),value:this.state.username}))),l["default"].createElement("div",{className:"form-group"},l["default"].createElement("div",{className:"control-input"},l["default"].createElement("input",{id:"id_password",className:"form-control",type:"password",disabled:this.state.isLoading,placeholder:gettext("Password"),onChange:this.bindInput("password"),value:this.state.password})))),l["default"].createElement("div",{className:"modal-footer"},this.getActivationButton(),l["default"].createElement(p["default"],{className:"btn-primary btn-block",loading:this.state.isLoading},gettext("Sign in")),l["default"].createElement("a",{href:d["default"].get("FORGOTTEN_PASSWORD_URL"),className:"btn btn-default btn-block"},gettext("Forgot password?"))))))}}]),t}(h["default"]);n["default"]=O},{"../index":85,"../services/ajax":91,"../services/modal":97,"../services/snackbar":99,"../utils/banned-page":102,"./button":51,"./form":58,react:"react"}],75:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return e.snackbar}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Snackbar=void 0,n.select=i;var l=e("react"),c=a(l),d={info:"alert-info",success:"alert-success",warning:"alert-warning",error:"alert-danger"};n.Snackbar=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),u(t,[{key:"getSnackbarClass",value:function(){var e="alerts-snackbar";return e+=this.props.isVisible?" in":" out"}},{key:"render",value:function(){return c["default"].createElement("div",{className:this.getSnackbarClass()},c["default"].createElement("p",{className:"alert "+d[this.props.type]},this.props.message))}}]),t}(c["default"].Component)},{react:"react"}],76:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.CompactGuestNav=n.GuestNav=n.GuestMenu=void 0;var u=e("react"),l=a(u),c=e("../avatar"),d=a(c),f=e("../register-button"),p=a(f),m=e("../sign-in.js"),h=a(m),v=e("../../services/mobile-navbar-dropdown"),g=a(v),b=e("../../services/modal"),y=a(b),_=n.GuestMenu=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"showSignInModal",value:function(){y["default"].show(h["default"])}},{key:"render",value:function(){return l["default"].createElement("ul",{className:"dropdown-menu user-dropdown dropdown-menu-right",role:"menu"},l["default"].createElement("li",{className:"guest-preview"},l["default"].createElement("h4",null,gettext("You are browsing as guest.")),l["default"].createElement("p",null,gettext("Sign in or register to start and participate in discussions.")),l["default"].createElement("div",{className:"row"},l["default"].createElement("div",{className:"col-xs-6"},l["default"].createElement("button",{type:"button",className:"btn btn-default btn-block",onClick:this.showSignInModal},gettext("Sign in"))),l["default"].createElement("div",{className:"col-xs-6"},l["default"].createElement(p["default"],{className:"btn-primary btn-block"},gettext("Register"))))))}}]),t}(l["default"].Component);n.GuestNav=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"render",value:function(){return l["default"].createElement("div",{className:"nav nav-guest"},l["default"].createElement("button",{type:"button",className:"btn navbar-btn btn-default",onClick:this.showSignInModal},gettext("Sign in")),l["default"].createElement(p["default"],{className:"navbar-btn btn-primary"},gettext("Register")))}}]),t}(_),n.CompactGuestNav=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"showGuestMenu",value:function(){g["default"].show(_)}},{key:"render",value:function(){return l["default"].createElement("button",{type:"button",onClick:this.showGuestMenu},l["default"].createElement(d["default"],{size:"64"}))}}]),t}(l["default"].Component)},{"../../services/mobile-navbar-dropdown":96,"../../services/modal":97,"../avatar":49,"../register-button":68,"../sign-in.js":74,react:"react"}],77:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return e.auth}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.CompactUserMenu=n.UserMenu=void 0,n.select=i;var l=e("react"),c=a(l),d=e("./guest-nav"),f=e("./user-nav");n.UserMenu=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),u(t,[{key:"render",value:function(){return this.props.isAuthenticated?c["default"].createElement(f.UserNav,{user:this.props.user}):c["default"].createElement(d.GuestNav,null)}}]),t}(c["default"].Component),n.CompactUserMenu=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),u(t,[{key:"render",value:function(){return this.props.isAuthenticated?c["default"].createElement(f.CompactUserNav,{user:this.props.user}):c["default"].createElement(d.CompactGuestNav,null)}}]),t}(c["default"].Component)},{"./guest-nav":76,"./user-nav":78,react:"react"}],78:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return{user:e.auth.user}}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.CompactUserNav=n.UserNav=n.UserMenu=void 0,n.selectUserMenu=i;var l=e("react"),c=a(l),d=e("react-redux"),f=e("../avatar"),p=a(f),m=e("../change-avatar/root"),h=a(m),v=e("../../index"),g=a(v),b=e("../../services/mobile-navbar-dropdown"),y=a(b),_=e("../../services/modal"),w=a(_),E=n.UserMenu=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),u(t,[{key:"logout",value:function(){var e=confirm(gettext("Are you sure you want to sign out?"));e&&$("#hidden-logout-form").submit()}},{key:"changeAvatar",value:function(){w["default"].show((0,d.connect)(m.select)(h["default"]))}},{key:"render",value:function(){return c["default"].createElement("ul",{className:"dropdown-menu user-dropdown dropdown-menu-right",role:"menu"},c["default"].createElement("li",{className:"dropdown-header"},c["default"].createElement("strong",null,this.props.user.username)),c["default"].createElement("li",{className:"divider"}),c["default"].createElement("li",null,c["default"].createElement("a",{href:this.props.user.absolute_url},c["default"].createElement("span",{className:"material-icon"},"account_circle"),gettext("See your profile"))),c["default"].createElement("li",null,c["default"].createElement("a",{href:g["default"].get("USERCP_URL")},c["default"].createElement("span",{className:"material-icon"},"done_all"),gettext("Change options"))),c["default"].createElement("li",null,c["default"].createElement("button",{type:"button",className:"btn-link",onClick:this.changeAvatar},c["default"].createElement("span",{className:"material-icon"},"portrait"),gettext("Change avatar"))),c["default"].createElement("li",{className:"divider"}),c["default"].createElement("li",{className:"dropdown-footer"},c["default"].createElement("button",{type:"button",className:"btn btn-default btn-block",onClick:this.logout},gettext("Log out"))))}}]),t}(c["default"].Component);n.UserNav=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),u(t,[{key:"render",value:function(){return c["default"].createElement("ul",{className:"ul nav navbar-nav nav-user"},c["default"].createElement("li",{className:"dropdown"},c["default"].createElement("a",{href:this.props.user.absolute_url,className:"dropdown-toggle","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false",role:"button"},c["default"].createElement(p["default"],{user:this.props.user,size:"64"})),c["default"].createElement(E,{user:this.props.user})))}}]),t}(c["default"].Component),n.CompactUserNav=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),u(t,[{key:"showUserMenu",value:function(){y["default"].showConnected("user-menu",(0,d.connect)(i)(E))}},{key:"render",value:function(){return c["default"].createElement("button",{type:"button",onClick:this.showUserMenu},c["default"].createElement(p["default"],{user:this.props.user,size:"64"}))}}]),t}(c["default"].Component)},{"../../index":85,"../../services/mobile-navbar-dropdown":96,"../../services/modal":97,"../avatar":49,"../change-avatar/root":55,react:"react","react-redux":"react-redux"}],79:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.StatusLabel=n.StatusIcon=void 0;var u=e("react"),l=a(u),c=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"getClass",value:function(){var e="";return this.props.status.is_banned?e="banned":this.props.status.is_hidden?e="offline":this.props.status.is_online_hidden?e="online":this.props.status.is_offline_hidden?e="offline":this.props.status.is_online?e="online":this.props.status.is_offline&&(e="offline"),"user-status user-"+e}},{key:"render",value:function(){return l["default"].createElement("span",{className:this.getClass()},this.props.children)}}]),t}(l["default"].Component);n["default"]=c;n.StatusIcon=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"getIcon",value:function(){return this.props.status.is_banned?"remove_circle_outline":this.props.status.is_hidden?"help_outline":this.props.status.is_online_hidden?"label":this.props.status.is_offline_hidden?"label_outline":this.props.status.is_online?"lens":this.props.status.is_offline?"panorama_fish_eye":void 0}},{key:"render",value:function(){return l["default"].createElement("span",{className:"material-icon status-icon"},this.getIcon())}}]),t}(l["default"].Component),n.StatusLabel=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"getHelp",value:function(){return this.props.status.is_banned?this.props.status.banned_until?interpolate(gettext("%(username)s is hiding banned until %(ban_expires)s"),{username:this.props.user.username,ban_expires:this.props.status.banned_until.format("LL, LT")},!0):interpolate(gettext("%(username)s is hiding banned"),{username:this.props.user.username},!0):this.props.status.is_hidden?interpolate(gettext("%(username)s is hiding activity"),{username:this.props.user.username},!0):this.props.status.is_online_hidden?interpolate(gettext("%(username)s is online (hidden)"),{username:this.props.user.username},!0):this.props.status.is_offline_hidden?interpolate(gettext("%(username)s was last seen %(last_click)s (hidden)"),{username:this.props.user.username,last_click:this.props.status.last_click.fromNow()},!0):this.props.status.is_online?interpolate(gettext("%(username)s is online"),{username:this.props.user.username},!0):this.props.status.is_offline?interpolate(gettext("%(username)s was last seen %(last_click)s"),{username:this.props.user.username,last_click:this.props.status.last_click.fromNow()},!0):void 0}},{key:"getLabel",value:function(){return this.props.status.is_banned?gettext("Banned"):this.props.status.is_hidden?gettext("Hiding activity"):this.props.status.is_online_hidden?gettext("Online (hidden)"):this.props.status.is_offline_hidden?gettext("Offline (hidden)"):this.props.status.is_online?gettext("Online"):this.props.status.is_offline?gettext("Offline"):void 0}},{key:"render",value:function(){return l["default"].createElement("span",{className:this.props.className||"status-label",title:this.getHelp()},this.getLabel())}}]),t}(l["default"].Component)},{react:"react"}],80:[function(e,t,n){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.NoActivePosters=n.ActivePostersLoading=n.ActivePosters=n.ActivePoster=void 0;var l=e("react"),c=r(l),d=e("react-router"),f=e("../avatar"),p=r(f),m=e("../user-status"),h=r(m),v=e("../../index"),g=r(v),b=e("../../reducers/users"),y=e("../../services/ajax"),_=r(y),w=e("../../services/page-title"),E=r(w),k=e("../../services/store"),O=r(k),x=e("../../utils/random"),N=a(x),j=n.ActivePoster=function(e){function t(){return s(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"getClassName",value:function(){return this.props.rank.css_class?"list-group-item list-group-rank-"+this.props.rank.css_class:"list-group-item"}},{key:"getUserStatus",value:function(){return this.props.user.status?c["default"].createElement(h["default"],{user:this.props.user,status:this.props.user.status},c["default"].createElement(m.StatusIcon,{user:this.props.user,status:this.props.user.status}),c["default"].createElement(m.StatusLabel,{user:this.props.user,status:this.props.user.status,className:"status-label hidden-xs hidden-sm"})):c["default"].createElement("span",{className:"user-status"},c["default"].createElement("span",{className:"status-icon ui-preview"}," "),c["default"].createElement("span",{className:"status-label ui-preview hidden-xs hidden-sm"}," "))}},{key:"getRankName",value:function(){if(this.props.rank.is_tab){var e=g["default"].get("USERS_LIST_URL")+this.props.rank.slug+"/";return c["default"].createElement(d.Link,{to:e,className:"rank-name"},this.props.rank.name)}return c["default"].createElement("span",{className:"rank-name"},this.props.rank.name)}},{key:"getUserTitle",value:function(){return this.props.user.title?c["default"].createElement("span",{className:"user-title hidden-xs hidden-sm"},this.props.user.title):null}},{key:"render",value:function(){return c["default"].createElement("li",{className:this.getClassName()},c["default"].createElement("div",{className:"rank-user-avatar"},c["default"].createElement("a",{href:this.props.user.absolute_url},c["default"].createElement(p["default"],{user:this.props.user,size:"50"}))),c["default"].createElement("div",{className:"rank-user"},c["default"].createElement("div",{className:"user-name"},c["default"].createElement("a",{href:this.props.user.absolute_url,className:"item-title"},this.props.user.username)),this.getUserStatus(),this.getRankName(),this.getUserTitle()),c["default"].createElement("div",{className:"rank-position"},c["default"].createElement("div",{className:"stat-value"},"#",this.props.counter),c["default"].createElement("div",{className:"text-muted"},gettext("Rank"))),c["default"].createElement("div",{className:"rank-posts-counted"},c["default"].createElement("div",{
-className:"stat-value"},this.props.user.meta.score),c["default"].createElement("div",{className:"text-muted"},gettext("Ranked posts"))),c["default"].createElement("div",{className:"rank-posts-total"},c["default"].createElement("div",{className:"stat-value"},this.props.user.posts),c["default"].createElement("div",{className:"text-muted"},gettext("Total posts"))))}}]),t}(c["default"].Component),P=n.ActivePosters=function(e){function t(){return s(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"getLeadMessage",value:function(){var e=ngettext("%(posters)s most active poster from last %(days)s days.","%(posters)s most active posters from last %(days)s days.",this.props.count);return interpolate(e,{posters:this.props.count,days:this.props.trackedPeriod},!0)}},{key:"render",value:function(){return c["default"].createElement("div",{className:"active-posters-list"},c["default"].createElement("div",{className:"container"},c["default"].createElement("p",{className:"lead"},this.getLeadMessage()),c["default"].createElement("div",{className:"active-posters ui-ready"},c["default"].createElement("ul",{className:"list-group"},this.props.users.map(function(e,t){return c["default"].createElement(j,{user:e,rank:e.rank,counter:t+1,key:e.id})})))))}}]),t}(c["default"].Component),C=n.ActivePostersLoading=function(e){function t(){return s(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"render",value:function(){return c["default"].createElement("div",{className:"active-posters-list"},c["default"].createElement("div",{className:"container"},c["default"].createElement("p",{className:"lead ui-preview-paragraph"},N.range(3,4).map(function(e){return c["default"].createElement("span",{key:e,className:"ui-preview-text",style:{width:N["int"](50,120)+"px"}}," ")})),c["default"].createElement("div",{className:"active-posters ui-preview"},c["default"].createElement("ul",{className:"list-group"},N.range(5,10).map(function(e,t){return c["default"].createElement("li",{key:e,className:"list-group-item"},c["default"].createElement("div",{className:"rank-user-avatar"},c["default"].createElement("span",null,c["default"].createElement(p["default"],{size:"50"}))),c["default"].createElement("div",{className:"rank-user"},c["default"].createElement("div",{className:"user-name"},c["default"].createElement("span",{className:"item-title"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:N["int"](30,80)+"px"}}," "))),c["default"].createElement("span",{className:"user-status"},c["default"].createElement("span",{className:"status-icon ui-preview"}," "),c["default"].createElement("span",{className:"status-label ui-preview hidden-xs hidden-sm"}," ")),c["default"].createElement("span",{className:"rank-name"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:N["int"](30,50)+"px"}}," ")),c["default"].createElement("span",{className:"user-title hidden-xs hidden-sm"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:N["int"](30,50)+"px"}}," "))),c["default"].createElement("div",{className:"rank-position"},c["default"].createElement("div",{className:"stat-value"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:"30px"}}," ")),c["default"].createElement("div",{className:"text-muted"},gettext("Rank"))),c["default"].createElement("div",{className:"rank-posts-counted"},c["default"].createElement("div",{className:"stat-value"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:"30px"}}," ")),c["default"].createElement("div",{className:"text-muted"},gettext("Ranked posts"))),c["default"].createElement("div",{className:"rank-posts-total"},c["default"].createElement("div",{className:"stat-value"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:"30px"}}," ")),c["default"].createElement("div",{className:"text-muted"},gettext("Total posts"))))})))))}}]),t}(c["default"].Component),S=n.NoActivePosters=function(e){function t(){return s(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"getEmptyMessage",value:function(){return interpolate(gettext("No users have posted any new messages during last %(days)s days."),{days:this.props.trackedPeriod},!0)}},{key:"render",value:function(){return c["default"].createElement("div",{className:"active-posters-list"},c["default"].createElement("div",{className:"container"},c["default"].createElement("p",{className:"lead"},this.getEmptyMessage())))}}]),t}(c["default"].Component),M=function(e){function t(e){s(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return g["default"].has("USERS")?n.initWithPreloadedData(g["default"].pop("USERS")):n.initWithoutPreloadedData(),n.poolId=null,n.startPooling(),n}return i(t,e),u(t,[{key:"initWithPreloadedData",value:function(e){this.state={isLoaded:!0,trackedPeriod:e.tracked_period,count:e.count},O["default"].dispatch((0,b.dehydrate)(e.results))}},{key:"initWithoutPreloadedData",value:function(){this.state={isLoaded:!1}}},{key:"startPooling",value:function(){var e=this,t=function n(){_["default"].get(g["default"].get("USERS_API"),{list:"active"}).then(function(t){e.setState({isLoaded:!0,trackedPeriod:t.tracked_period,count:t.count}),O["default"].dispatch((0,b.dehydrate)(t.results)),e.poolId=window.setTimeout(n,9e4)})};t()}},{key:"componentDidMount",value:function(){E["default"].set({title:this.props.route.extra.name,parent:gettext("Users")})}},{key:"componentWillUnmount",value:function(){this.poolId&&window.clearTimeout(this.poolId)}},{key:"render",value:function(){return this.state.isLoaded?this.state.count>0?c["default"].createElement(P,{users:this.props.users,trackedPeriod:this.state.trackedPeriod,count:this.state.count}):c["default"].createElement(S,{trackedPeriod:this.state.trackedPeriod}):c["default"].createElement(C,null)}}]),t}(c["default"].Component);n["default"]=M},{"../../index":85,"../../reducers/users":90,"../../services/ajax":91,"../../services/page-title":98,"../../services/store":100,"../../utils/random":107,"../avatar":49,"../user-status":79,react:"react","react-router":"react-router"}],81:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.CompactNav=n.TabsNav=void 0;var u=e("react"),l=a(u),c=e("react-router"),d=e("../li"),f=a(d),p=e("../../index"),m=(a(p),function(e,t){var n=e;return n+="rank"===t.component?t.slug:t.component,n+"/"}),h=function(e,t){return t.map(function(t){var n=m(e,t);return l["default"].createElement(f["default"],{path:n,key:n},l["default"].createElement(c.Link,{to:n},t.name))})};n.TabsNav=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"render",value:function(){return l["default"].createElement("ul",{className:"nav nav-pills"},h(this.props.baseUrl,this.props.lists))}}]),t}(l["default"].Component),n.CompactNav=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"render",value:function(){return l["default"].createElement("ul",{className:"dropdown-menu",role:"menu"},h(this.props.baseUrl,this.props.lists))}}]),t}(l["default"].Component)},{"../../index":85,"../li":59,react:"react","react-router":"react-router"}],82:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("../../services/page-title"),d=a(c),f=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"componentDidMount",value:function(){d["default"].set({title:this.props.route.rank.name,parent:gettext("Users")})}},{key:"render",value:function(){return l["default"].createElement("div",null,l["default"].createElement("div",{className:"container"},"Hello, this is users with rank list!"))}}]),t}(l["default"].Component);n["default"]=f},{"../../services/page-title":98,react:"react"}],83:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return{tick:e.tick.tick,user:e.auth.user,users:e.users}}function u(){var e=[];return y["default"].get("USERS_LISTS").forEach(function(t){"rank"===t.component?e.push({path:y["default"].get("USERS_LIST_URL")+t.slug+"/",component:(0,f.connect)(i)(g["default"]),rank:{name:t.name,slug:t.slug,css_class:t.css_class,description:t.description}}):"active-posters"===t.component&&e.push({path:y["default"].get("USERS_LIST_URL")+t.component+"/",component:(0,f.connect)(i)(h["default"]),extra:{name:t.name}})}),e}var l=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.select=i,n.paths=u;var c=e("react"),d=a(c),f=e("react-redux"),p=e("./navs"),m=e("./active-posters"),h=a(m),v=e("./rank"),g=a(v),b=e("../../index"),y=a(b),_=function(e){function t(e){r(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.toggleNav=function(){n.state.dropdown?n.setState({dropdown:!1}):n.setState({dropdown:!0})},n.state={dropdown:!1},n}return o(t,e),l(t,[{key:"getToggleNavClassName",value:function(){return this.state.dropdown?"btn btn-default btn-icon open":"btn btn-default btn-icon"}},{key:"getCompactNavClassName",value:function(){return this.state.dropdown?"compact-nav open":"compact-nav"}},{key:"render",value:function(){return d["default"].createElement("div",{className:"page page-users-lists"},d["default"].createElement("div",{className:"page-header tabbed"},d["default"].createElement("div",{className:"container"},d["default"].createElement("h1",{className:"pull-left"},gettext("Users")),d["default"].createElement("button",{className:"btn btn-default btn-icon btn-dropdown-toggle hidden-md hidden-lg",type:"button",onClick:this.toggleNav,"aria-haspopup":"true","aria-expanded":this.state.dropdown?"true":"false"},d["default"].createElement("i",{className:"material-icon"},"menu"))),d["default"].createElement("div",{className:"page-tabs hidden-xs hidden-sm"},d["default"].createElement("div",{className:"container"},d["default"].createElement(p.TabsNav,{lists:y["default"].get("USERS_LISTS"),baseUrl:y["default"].get("USERS_LIST_URL")})))),d["default"].createElement("div",{className:this.getCompactNavClassName()},d["default"].createElement(p.CompactNav,{lists:y["default"].get("USERS_LISTS"),baseUrl:y["default"].get("USERS_LIST_URL")})),this.props.children)}}]),t}(d["default"].Component);n["default"]=_},{"../../index":85,"./active-posters":80,"./navs":81,"./rank":82,react:"react","react-redux":"react-redux"}],84:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=function(e){function t(){var e,n,a,o;r(this,t);for(var i=arguments.length,u=Array(i),l=0;i>l;l++)u[l]=arguments[l];return n=a=s(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.toggle=function(){a.props.onChange({target:{value:!a.props.value}})},o=n,s(a,o)}return o(t,e),i(t,[{key:"getClassName",value:function(){return this.props.value?"btn btn-yes-no btn-yes-no-on":"btn btn-yes-no btn-yes-no-off"}},{key:"getIcon",value:function(){return this.props.value?this.props.iconOn||"check_box":this.props.iconOff||"check_box_outline_blank"}},{key:"getLabel",value:function(){return this.props.value?this.props.labelOn||gettext("yes"):this.props.labelOff||gettext("no")}},{key:"render",value:function(){return l["default"].createElement("button",{type:"button",onClick:this.toggle,className:this.getClassName(),id:this.props.id||null,"aria-describedby":this.props["aria-describedby"]||null,disabled:this.props.disabled||!1},l["default"].createElement("span",{className:"material-icon"},this.getIcon()),this.getLabel())}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],85:[function(e,t,n){(function(t){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var s=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Misago=void 0;var o=e("./utils/ordered-list"),i=a(o),u=n.Misago=function(){function e(){r(this,e),this._initializers=[],this._context={}}return s(e,[{key:"addInitializer",value:function(e){this._initializers.push({key:e.name,item:e.initializer,after:e.after,before:e.before})}},{key:"init",value:function(e){var t=this;this._context=e;var n=new i["default"](this._initializers).orderedValues();n.forEach(function(e){e(t)})}},{key:"has",value:function(e){return!!this._context[e]}},{key:"get",value:function(e,t){return this.has(e)?this._context[e]:t||void 0}},{key:"pop",value:function(e){if(this.has(e)){var t=this._context[e];return this._context[e]=null,t}}}]),e}(),l=new u;t.misago=l,n["default"]=l}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./utils/ordered-list":106}],86:[function(e,t,n){"use strict";function a(e){return{type:l,patch:e}}function r(e){return{type:c,user:e}}function s(){var e=arguments.length<=0||void 0===arguments[0]?!1:arguments[0];return{type:d,soft:e}}function o(){var e=arguments.length<=0||void 0===arguments[0]?u:arguments[0],t=arguments.length<=1||void 0===arguments[1]?null:arguments[1];switch(t.type){case l:var n=Object.assign({},e);return n.user=Object.assign({},e.user,t.patch),n;case c:return Object.assign({},e,{signedIn:t.user});case d:return Object.assign({},e,{isAuthenticated:!1,isAnonymous:!0,signedOut:!t.soft});case i.UPDATE_AVATAR:if(e.isAuthenticated&&e.user.id===t.userId){var a=Object.assign({},e);return a.user=Object.assign({},e.user,{avatar_hash:t.avatarHash}),a}return e;case i.UPDATE_USERNAME:if(e.isAuthenticated&&e.user.id===t.userId){var r=Object.assign({},e);return r.user=Object.assign({},e.user,{username:t.username,slug:t.slug}),r}return e;default:return e}}Object.defineProperty(n,"__esModule",{value:!0}),n.SIGN_OUT=n.SIGN_IN=n.PATCH_USER=n.initialState=void 0,n.patchUser=a,n.signIn=r,n.signOut=s,n["default"]=o;var i=e("./users"),u=n.initialState={signedIn:!1,signedOut:!1},l=n.PATCH_USER="PATCH_USER",c=n.SIGN_IN="SIGN_IN",d=n.SIGN_OUT="SIGN_OUT"},{"./users":90}],87:[function(e,t,n){"use strict";function a(e,t){return{type:i,message:e,messageType:t}}function r(){return{type:u}}function s(){var e=arguments.length<=0||void 0===arguments[0]?o:arguments[0],t=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return t.type===i?{type:t.messageType,message:t.message,isVisible:!0}:t.type===u?Object.assign({},e,{isVisible:!1}):e}Object.defineProperty(n,"__esModule",{value:!0}),n.showSnackbar=a,n.hideSnackbar=r,n["default"]=s;var o=n.initialState={type:"info",message:"",isVisible:!1},i=n.SHOW_SNACKBAR="SHOW_SNACKBAR",u=n.HIDE_SNACKBAR="HIDE_SNACKBAR"},{}],88:[function(e,t,n){"use strict";function a(){return{type:o}}function r(){var e=arguments.length<=0||void 0===arguments[0]?s:arguments[0],t=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return t.type===o?Object.assign({},e,{tick:e.tick+1}):e}Object.defineProperty(n,"__esModule",{value:!0}),n.doTick=a,n["default"]=r;var s=n.initialState={tick:0},o=n.TICK="TICK"},{}],89:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t,n){return{type:c,change:e,user:t,changedBy:n}}function s(e){return{type:d,items:e}}function o(){var e=arguments.length<=0||void 0===arguments[0]?[]:arguments[0],t=arguments.length<=1||void 0===arguments[1]?null:arguments[1];switch(t.type){case c:var n=e.slice();return n.unshift({id:Math.floor(Date.now()/1e3),changed_by:t.changedBy,changed_by_username:t.changedBy.username,changed_on:(0,l["default"])(),new_username:t.change.username,old_username:t.user.username}),n;case d:return t.items.map(function(e){return Object.assign({},e,{changed_on:(0,l["default"])(e.changed_on)})});case i.UPDATE_AVATAR:return e.map(function(e){return e=Object.assign({},e),e.changed_by&&e.changed_by.id===t.userId&&(e.changed_by=Object.assign({},e.changed_by,{avatar_hash:t.avatarHash})),Object.assign({},e)});case i.UPDATE_USERNAME:return e.map(function(e){return e=Object.assign({},e),e.changed_by&&e.changed_by.id===t.userId&&(e.changed_by=Object.assign({},e.changed_by,{username:t.username,slug:t.slug})),Object.assign({},e)});default:return e}}Object.defineProperty(n,"__esModule",{value:!0}),n.DEHYDRATE_RESULT=n.ADD_NAME_CHANGE=void 0,n.addNameChange=r,n.dehydrate=s,n["default"]=o;var i=e("./users"),u=e("moment"),l=a(u),c=n.ADD_NAME_CHANGE="ADD_NAME_CHANGE",d=n.DEHYDRATE_RESULT="DEHYDRATE_RESULT"},{"./users":90,moment:"moment"}],90:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e){return{type:c,items:e}}function s(e,t){return{type:d,userId:e.id,avatarHash:t}}function o(e,t,n){return{type:f,userId:e.id,username:t,slug:n}}function i(){var e=arguments.length<=0||void 0===arguments[0]?[]:arguments[0],t=arguments.length<=1||void 0===arguments[1]?null:arguments[1];switch(t.type){case c:return t.items.map(function(e){var t=e.status||null;return t&&(t=Object.assign({},t,{last_click:t.last_click?(0,l["default"])(t.last_click):null,banned_until:t.banned_until?(0,l["default"])(t.banned_until):null})),Object.assign({},e,{status:t})});default:return e}}Object.defineProperty(n,"__esModule",{value:!0}),n.UPDATE_USERNAME=n.UPDATE_AVATAR=n.DEHYDRATE_RESULT=void 0,n.dehydrate=r,n.updateAvatar=s,n.updateUsername=o,n["default"]=i;var u=e("moment"),l=a(u),c=n.DEHYDRATE_RESULT="DEHYDRATE_RESULT",d=n.UPDATE_AVATAR="UPDATE_AVATAR",f=n.UPDATE_USERNAME="UPDATE_USERNAME"},{moment:"moment"}],91:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=n.Ajax=function(){function e(){a(this,e),this._cookieName=null,this._csrfToken=null}return r(e,[{key:"init",value:function(e){this._cookieName=e,this._csrfToken=this.getCsrfToken()}},{key:"getCsrfToken",value:function(){if(-1!==document.cookie.indexOf(this._cookieName)){var e=new RegExp(this._cookieName+"=([^;]*)"),t=document.cookie.match(e)[0];return t?t.split("=")[1]:null}return null}},{key:"request",value:function(e,t,n){var a=this;return new Promise(function(r,s){var o={url:t,method:e,headers:{"X-CSRFToken":a._csrfToken},data:n?JSON.stringify(n):null,contentType:"application/json; charset=utf-8",dataType:"json",success:function(e){r(e)},error:function(e){var t=e.responseJSON||{};t.status=e.status,0===t.status&&(t.detail=gettext("Lost connection with application.")),t.statusText=e.statusText,s(t)}};$.ajax(o)})}},{key:"get",value:function(e,t){return t&&(e+="?"+$.param(t)),this.request("GET",e)}},{key:"post",value:function(e,t){return this.request("POST",e,t)}},{key:"patch",value:function(e,t){return this.request("PATCH",e,t)}},{key:"put",value:function(e,t){return this.request("PUT",e,t)}},{key:"delete",value:function(e){return this.request("DELETE",e)}},{key:"upload",value:function(e,t,n){var a=this;return new Promise(function(r,s){var o={url:e,method:"POST",headers:{"X-CSRFToken":a._csrfToken},data:t,contentType:!1,processData:!1,xhr:function i(){var i=new window.XMLHttpRequest;return i.upload.addEventListener("progress",function(e){e.lengthComputable&&n(Math.round(e.loaded/e.total*100))},!1),i},success:function(e){r(e)},error:function(e){var t=e.responseJSON||{};t.status=e.status,0===t.status&&(t.detail=gettext("Lost connection with application.")),t.statusText=e.statusText,s(t)}};$.ajax(o)})}}]),e}();n["default"]=new s},{}],92:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Auth=void 0;var s=e("../reducers/auth"),o=n.Auth=function(){function e(){a(this,e)}return r(e,[{key:"init",value:function(e,t,n){this._store=e,this._local=t,this._modal=n,this.syncSession(),this.watchState()}},{key:"syncSession",value:function(){var e=this._store.getState().auth;e.isAuthenticated?this._local.set("auth",{isAuthenticated:!0,username:e.user.username}):this._local.set("auth",{isAuthenticated:!1})}},{key:"watchState",value:function(){var e=this;this._local.watch("auth",function(t){t.isAuthenticated?e._store.dispatch((0,s.signIn)({username:t.username})):e._store.dispatch((0,s.signOut)())}),this._modal.hide()}},{key:"signIn",value:function(e){this._store.dispatch((0,s.signIn)(e)),this._local.set("auth",{isAuthenticated:!0,username:e.username}),this._modal.hide()}},{key:"signOut",value:function(){this._store.dispatch((0,s.signOut)()),this._local.set("auth",{isAuthenticated:!1}),this._modal.hide()}},{key:"softSignOut",value:function(){this._store.dispatch((0,s.signOut)(!0)),this._local.set("auth",{isAuthenticated:!1}),this._modal.hide()}}]),e}();n["default"]=new o},{"../reducers/auth":86}],93:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Captcha=n.ReCaptcha=n.ReCaptchaComponent=n.QACaptcha=n.NoCaptcha=n.BaseCaptcha=void 0;var u=e("react"),l=a(u),c=e("../components/form-group"),d=a(c),f=n.BaseCaptcha=function(){function e(){o(this,e)}return i(e,[{key:"init",value:function(e,t,n,a){this._context=e,this._ajax=t,this._include=n,this._snackbar=a}}]),e}(),p=n.NoCaptcha=function(e){function t(){return o(this,t),r(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"load",value:function(){return new Promise(function(e){e()})}},{key:"validator",value:function(){return null}},{key:"component",value:function(){return null}}]),t}(f),m=n.QACaptcha=function(e){function t(){return o(this,t),r(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"load",value:function(){var e=this;return new Promise(function(t,n){e._ajax.get(e._context.get("CAPTCHA_API_URL")).then(function(n){e.question=n.question,e.helpText=n.help_text,t()},function(){e._snackbar.error(gettext("Failed to load CAPTCHA.")),n()})})}},{key:"validator",value:function(){return[]}},{key:"component",value:function(e){return l["default"].createElement(d["default"],{label:this.question,"for":"id_captcha",labelClass:e.labelClass||"col-sm-4",controlClass:e.controlClass||"col-sm-8",validation:e.form.state.errors.captcha,helpText:this.helpText||null},l["default"].createElement("input",{type:"text",id:"id_captcha",className:"form-control","aria-describedby":"id_captcha_status",disabled:e.form.state.isLoading,onChange:e.form.bindInput("captcha"),value:e.form.state.captcha}))}}]),t}(f),h=n.ReCaptchaComponent=function(e){function t(){return o(this,t),r(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"componentDidMount",value:function(){var e=this;grecaptcha.render("recaptcha",{sitekey:this.props.siteKey,callback:function(t){e.props.binding({target:{value:t}})}})}},{key:"render",value:function(){return l["default"].createElement("div",{id:"recaptcha"})}}]),t}(l["default"].Component),v=n.ReCaptcha=function(e){function t(){return o(this,t),r(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"load",value:function(){return this._include.include("https://www.google.com/recaptcha/api.js",!0),new Promise(function(e){var t=function n(){"undefined"==typeof grecaptcha?window.setTimeout(function(){n()},200):e()};t()})}},{key:"validator",value:function(){return[]}},{key:"component",value:function(e){return l["default"].createElement(d["default"],{label:gettext("Captcha"),"for":"id_captcha",labelClass:e.labelClass||"col-sm-4",controlClass:e.controlClass||"col-sm-8",validation:e.form.state.errors.captcha,helpText:gettext("Please solve the quick test.")},l["default"].createElement(h,{siteKey:this._context.get("SETTINGS").recaptcha_site_key,binding:e.form.bindInput("captcha")}))}}]),t}(f),g=n.Captcha=function(){function e(){o(this,e)}return i(e,[{key:"init",value:function(e,t,n,a){switch(e.get("SETTINGS").captcha_type){case"no":this._captcha=new p;break;case"qa":this._captcha=new m;break;case"re":this._captcha=new v}this._captcha.init(e,t,n,a)}},{key:"load",value:function(){return this._captcha.load()}},{key:"validator",value:function(){return this._captcha.validator()}},{key:"component",value:function(e){return this._captcha.component(e)}}]),e}();n["default"]=new g},{"../components/form-group":57,react:"react"}],94:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=n.Include=function(){function e(){a(this,e)}return r(e,[{key:"init",value:function(e){this._staticUrl=e,this._included=[]}},{key:"include",value:function(e){var t=arguments.length<=1||void 0===arguments[1]?!1:arguments[1];-1===this._included.indexOf(e)&&(this._included.push(e),this._include(e,t))}},{key:"_include",value:function(e,t){$.ajax({url:(t?"":this._staticUrl)+e,cache:!0,dataType:"script"})}}]),e}();n["default"]=new s},{}],95:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=window.localStorage,o=n.LocalStorage=function(){function e(){a(this,e)}return r(e,[{key:"init",value:function(e){var t=this;this._prefix=e,this._watchers=[],window.addEventListener("storage",function(e){var n=JSON.parse(e.newValue);t._watchers.forEach(function(t){t.key===e.key&&e.oldValue!==e.newValue&&t.callback(n)})})}},{key:"set",value:function(e,t){s.setItem(this._prefix+e,JSON.stringify(t))}},{key:"get",value:function(e){var t=s.getItem(this._prefix+e);return t?JSON.parse(t):null}},{key:"watch",value:function(e,t){this._watchers.push({key:this._prefix+e,callback:t})}}]),e}();n["default"]=new o},{}],96:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var s=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.MobileNavbarDropdown=void 0;var o=e("../utils/mount-component"),i=a(o),u=n.MobileNavbarDropdown=function(){function e(){r(this,e)}return s(e,[{key:"init",value:function(e){this._element=e,this._component=null}},{key:"show",value:function(e){this._component===e?this.hide():(this._component=e,(0,i["default"])(e,this._element.id),$(this._element).addClass("open"))}},{key:"showConnected",value:function(e,t){
-this._component===e?this.hide():(this._component=e,(0,i["default"])(t,this._element.id,!0),$(this._element).addClass("open"))}},{key:"hide",value:function(){$(this._element).removeClass("open"),this._component=null}}]),e}();n["default"]=new u},{"../utils/mount-component":105}],97:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var s=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Modal=void 0;var o=e("react-dom"),i=a(o),u=e("../utils/mount-component"),l=a(u),c=n.Modal=function(){function e(){r(this,e)}return s(e,[{key:"init",value:function(e){var t=this;this._element=e,this._modal=$(e).modal({show:!1}),this._modal.on("hidden.bs.modal",function(){i["default"].unmountComponentAtNode(t._element)})}},{key:"show",value:function(e){(0,l["default"])(e,this._element.id),this._modal.modal("show")}},{key:"hide",value:function(){this._modal.modal("hide")}}]),e}();n["default"]=new c},{"../utils/mount-component":105,"react-dom":"react-dom"}],98:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=n.PageTitle=function(){function e(){a(this,e)}return r(e,[{key:"init",value:function(e){this._forumName=e}},{key:"set",value:function(e){"string"==typeof e&&(e={title:e});var t=e.title;if(e.page){var n=interpolate(gettext("page %(page)s"),{page:e.page},!0);t+=" ("+n+")"}e.parent&&(t+=" | "+e.parent),document.title=t+" | "+this._forumName}}]),e}();n["default"]=new s},{}],99:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Snackbar=void 0;var s=e("../reducers/snackbar"),o=300,i=5e3,u=n.Snackbar=function(){function e(){a(this,e)}return r(e,[{key:"init",value:function(e){this._store=e,this._timeout=null}},{key:"alert",value:function(e,t){var n=this;this._timeout?(window.clearTimeout(this._timeout),this._store.dispatch((0,s.hideSnackbar)()),this._timeout=window.setTimeout(function(){n._timeout=null,n.alert(e,t)},o)):(this._store.dispatch((0,s.showSnackbar)(e,t)),this._timeout=window.setTimeout(function(){n._store.dispatch((0,s.hideSnackbar)()),n._timeout=null},i))}},{key:"info",value:function(e){this.alert(e,"info")}},{key:"success",value:function(e){this.alert(e,"success")}},{key:"warning",value:function(e){this.alert(e,"warning")}},{key:"error",value:function(e){this.alert(e,"error")}},{key:"apiError",value:function(e){var t=gettext("Unknown error has occured.");0===e.status&&(t=e.detail),400===e.status&&e.detail&&(t=e.detail),403===e.status&&(t=e.detail,"Permission denied"===t&&(t=gettext("You don't have permission to perform this action."))),404===e.status&&(t=gettext("Action link is invalid.")),this.error(t)}}]),e}();n["default"]=new u},{"../reducers/snackbar":87}],100:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.StoreWrapper=void 0;var s=e("redux"),o=n.StoreWrapper=function(){function e(){a(this,e),this._store=null,this._reducers={},this._initialState={}}return r(e,[{key:"addReducer",value:function(e,t,n){this._reducers[e]=t,this._initialState[e]=n}},{key:"init",value:function(){this._store=(0,s.createStore)((0,s.combineReducers)(this._reducers),this._initialState)}},{key:"getStore",value:function(){return this._store}},{key:"getState",value:function(){return this._store.getState()}},{key:"dispatch",value:function(e){return this._store.dispatch(e)}}]),e}();n["default"]=new o},{redux:"redux"}],101:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=n.Zxcvbn=function(){function e(){a(this,e)}return r(e,[{key:"init",value:function(e){this._include=e}},{key:"scorePassword",value:function(e,t){return zxcvbn(e,t).score}},{key:"load",value:function(){return"undefined"==typeof zxcvbn?(this._include.include("misago/js/zxcvbn.js"),this._loadingPromise()):this._loadedPromise()}},{key:"_loadingPromise",value:function(){return new Promise(function(e){var t=function n(){"undefined"==typeof zxcvbn?window.setTimeout(function(){n()},200):e()};t()})}},{key:"_loadedPromise",value:function(){return new Promise(function(e){e()})}}]),e}();n["default"]=new s},{}],102:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=function(e,t){if(l["default"].render(i["default"].createElement(c.Provider,{store:v["default"].getStore()},i["default"].createElement(b,{message:e.message,expires:e.expires_on?(0,s["default"])(e.expires_on):null})),document.getElementById("page-mount")),"undefined"==typeof t||t){var n=m["default"].get("SETTINGS").forum_name;document.title=gettext("You are banned")+" | "+n,window.history.pushState({},"",m["default"].get("BANNED_URL"))}};var r=e("moment"),s=a(r),o=e("react"),i=a(o),u=e("react-dom"),l=a(u),c=e("react-redux"),d=e("../components/banned-page"),f=a(d),p=e("../index"),m=a(p),h=e("../services/store"),v=a(h),g=function(e){return e.tick},b=(0,c.connect)(g)(f["default"])},{"../components/banned-page":50,"../index":85,"../services/store":100,moment:"moment",react:"react","react-dom":"react-dom","react-redux":"react-redux"}],103:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=function(e,t){var n=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],a=[],r=[];if(e.forEach(function(e){r.push(e),r.length===t&&(a.push(r),r=[])}),n!==!1&&r.length>0&&r.length<t)for(var s=r.length;t>s;s++)r.push(n);return r.length&&a.push(r),a}},{}],104:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=function(e){return e>1e9?Math.round(100*e/1e9)/100+" GB":e>1e6?Math.round(100*e/1e6)/100+" MB":e>1e3?Math.round(100*e/1e3)/100+" KB":Math.round(100*e)/100+" B"}},{}],105:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=function(e,t){var n=arguments.length<=2||void 0===arguments[2]?!0:arguments[2],a=document.getElementById(t);a&&(n?i["default"].render(s["default"].createElement(u.Provider,{store:c["default"].getStore()},s["default"].createElement(e,null)),a):i["default"].render(s["default"].createElement(e,null),a))};var r=e("react"),s=a(r),o=e("react-dom"),i=a(o),u=e("react-redux"),l=e("../services/store"),c=a(l)},{"../services/store":100,react:"react","react-dom":"react-dom","react-redux":"react-redux"}],106:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=function(){function e(t){a(this,e),this.isOrdered=!1,this._items=t||[]}return r(e,[{key:"add",value:function(e,t,n){this._items.push({key:e,item:t,after:n?n.after||null:null,before:n?n.before||null:null})}},{key:"get",value:function(e,t){for(var n=0;n<this._items.length;n++)if(this._items[n].key===e)return this._items[n].item;return t}},{key:"has",value:function(e){return void 0!==this.get(e)}},{key:"values",value:function t(){for(var t=[],e=0;e<this._items.length;e++)t.push(this._items[e].item);return t}},{key:"order",value:function(e){return this.isOrdered||(this._items=this._order(this._items),this.isOrdered=!0),e||"undefined"==typeof e?this.values():this._items}},{key:"orderedValues",value:function(){return this.order(!0)}},{key:"_order",value:function(e){function t(e){var t=-1;-1===r.indexOf(e.key)&&(e.after?(t=r.indexOf(e.after),-1!==t&&(t+=1)):e.before&&(t=r.indexOf(e.before)),-1!==t&&(a.splice(t,0,e),r.splice(t,0,e.key)))}var n=[];e.forEach(function(e){n.push(e.key)});var a=[],r=[];e.forEach(function(e){e.after||e.before||(a.push(e),r.push(e.key))}),e.forEach(function(e){"_end"===e.before&&(a.push(e),r.push(e.key))});for(var s=200;s>0&&n.length!==r.length;)s-=1,e.forEach(t);return a}}]),e}();n["default"]=s},{}],107:[function(e,t,n){"use strict";function a(e,t){return Math.floor(Math.random()*(t-e+1))+e}function r(e,t){for(var n=new Array(a(e,t)),r=0;r<n.length;r++)n[r]=r;return n}Object.defineProperty(n,"__esModule",{value:!0}),n["int"]=a,n.range=r},{}],108:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=function(e){var t={component:e.component,childRoutes:[{path:e.root,onEnter:function(t,n){n(null,e.paths[0].path)}}].concat(e.paths.map(function(e){return e}))};i["default"].render(s["default"].createElement(u.Provider,{store:p["default"].getStore()},s["default"].createElement(l.Router,{routes:t,history:h})),m)};var r=e("react"),s=a(r),o=e("react-dom"),i=a(o),u=e("react-redux"),l=e("react-router"),c=e("history/lib/createBrowserHistory"),d=a(c),f=e("../services/store"),p=a(f),m=document.getElementById("page-mount"),h=new d["default"]},{"../services/store":100,"history/lib/createBrowserHistory":38,react:"react","react-dom":"react-dom","react-redux":"react-redux","react-router":"react-router"}],109:[function(e,t,n){"use strict";function a(){return function(e){return 0===$.trim(e).length?gettext("This field is required."):void 0}}function r(e){return function(t){return d.test(t)?void 0:e||gettext("Enter a valid email address.")}}function s(e,t){return function(n){var a="",r=$.trim(n).length;return e>r?(a=t?t(e,r):ngettext("Ensure this value has at least %(limit_value)s character (it has %(show_value)s).","Ensure this value has at least %(limit_value)s characters (it has %(show_value)s).",e),interpolate(a,{limit_value:e,show_value:r},!0)):void 0}}function o(e,t){return function(n){var a="",r=$.trim(n).length;return r>e?(a=t?t(e,r):ngettext("Ensure this value has at most %(limit_value)s character (it has %(show_value)s).","Ensure this value has at most %(limit_value)s characters (it has %(show_value)s).",e),interpolate(a,{limit_value:e,show_value:r},!0)):void 0}}function i(e){var t=function(e){return ngettext("Username must be at least %(limit_value)s character long.","Username must be at least %(limit_value)s characters long.",e)};return this.minLength(e.username_length_min,t)}function u(e){var t=function(e){return ngettext("Username cannot be longer than %(limit_value)s character.","Username cannot be longer than %(limit_value)s characters.",e)};return this.maxLength(e.username_length_max,t)}function l(){return function(e){return f.test($.trim(e))?void 0:gettext("Username can only contain latin alphabet letters and digits.")}}function c(e){var t=function(e){return ngettext("Valid password must be at least %(limit_value)s character long.","Valid password must be at least %(limit_value)s characters long.",e)};return this.minLength(e.password_length_min,t)}Object.defineProperty(n,"__esModule",{value:!0}),n.required=a,n.email=r,n.minLength=s,n.maxLength=o,n.usernameMinLength=i,n.usernameMaxLength=u,n.usernameContent=l,n.passwordMinLength=c;var d=/^(([^<>()[\]\.,;:\s@\"]+(\.[^<>()[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i,f=new RegExp("^[0-9a-z]+$","i")},{}]},{},[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29]);
+},c["default"].createElement("div",{className:"message-icon"},c["default"].createElement("span",{className:"material-icon"},"info_outline")),c["default"].createElement("div",{className:"message-body"},c["default"].createElement("p",{className:"lead"},gettext("Your account is inactive.")),c["default"].createElement("p",null,this.props.message),this.getActivateButton()))))}}]),t}(c["default"].Component),S=function(e){function t(e){s(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.complete=function(e){n.setState({complete:e})},n.reset=function(){n.setState({complete:!1})},n.state={complete:!1},n}return i(t,e),u(t,[{key:"showInactivePage",value:function(e){f["default"].render(c["default"].createElement(C,{activation:e.code,message:e.detail}),document.getElementById("page-mount"))}},{key:"render",value:function(){return this.state.complete?c["default"].createElement(P,{user:this.state.complete,callback:this.reset}):c["default"].createElement(j,{callback:this.complete,showInactivePage:this.showInactivePage})}}]),t}(c["default"].Component);n["default"]=S},{"../index":85,"../services/ajax":91,"../services/snackbar":99,"../utils/banned-page":102,"../utils/validators":109,"./button":51,"./form":58,react:"react","react-dom":"react-dom"}],72:[function(e,t,n){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.PasswordChangedPage=n.ResetPasswordForm=void 0;var l=e("react"),c=r(l),d=e("react-dom"),f=r(d),p=e("../index"),m=r(p),h=e("./button"),v=r(h),g=e("./form"),b=r(g),y=e("./sign-in.js"),_=r(y),w=e("../services/ajax"),E=r(w),k=e("../services/auth"),O=r(k),x=e("../services/modal"),N=r(x),j=e("../services/snackbar"),P=r(j),C=e("../utils/validators"),S=a(C),M=e("../utils/banned-page"),T=r(M),L=n.ResetPasswordForm=function(e){function t(e){s(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.state={isLoading:!1,password:"",validators:{password:[S.passwordMinLength(m["default"].get("SETTINGS"))]}},n}return i(t,e),u(t,[{key:"clean",value:function(){return this.isValid()?!0:(this.state.password.trim().length?P["default"].error(this.state.errors.password[0]):P["default"].error(gettext("Enter new password.")),!1)}},{key:"send",value:function(){return E["default"].post(m["default"].get("CHANGE_PASSWORD_API"),{password:this.state.password})}},{key:"handleSuccess",value:function(e){this.props.callback(e)}},{key:"handleError",value:function(e){403===e.status&&e.ban?(0,T["default"])(e.ban):P["default"].apiError(e)}},{key:"render",value:function(){return c["default"].createElement("div",{className:"well well-form well-form-reset-password"},c["default"].createElement("form",{onSubmit:this.handleSubmit},c["default"].createElement("div",{className:"form-group"},c["default"].createElement("div",{className:"control-input"},c["default"].createElement("input",{type:"password",className:"form-control",placeholder:gettext("Enter new password"),disabled:this.state.isLoading,onChange:this.bindInput("password"),value:this.state.password}))),c["default"].createElement(v["default"],{className:"btn-primary btn-block",loading:this.state.isLoading},gettext("Change password"))))}}]),t}(b["default"]),A=n.PasswordChangedPage=function(e){function t(){return s(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"getMessage",value:function(){return interpolate(gettext("%(username)s, your password has been changed successfully."),{username:this.props.user.username},!0)}},{key:"showSignIn",value:function(){N["default"].show(_["default"])}},{key:"render",value:function(){return c["default"].createElement("div",{className:"page page-message page-message-success page-forgotten-password-changed"},c["default"].createElement("div",{className:"container"},c["default"].createElement("div",{className:"message-panel"},c["default"].createElement("div",{className:"message-icon"},c["default"].createElement("span",{className:"material-icon"},"check")),c["default"].createElement("div",{className:"message-body"},c["default"].createElement("p",{className:"lead"},this.getMessage()),c["default"].createElement("p",null,gettext("You will have to sign in using new password before continuing.")),c["default"].createElement("p",null,c["default"].createElement("button",{type:"button",className:"btn btn-primary",onClick:this.showSignIn},gettext("Sign in")))))))}}]),t}(c["default"].Component),R=function(e){function t(){var e,n,a,r;s(this,t);for(var i=arguments.length,u=Array(i),l=0;i>l;l++)u[l]=arguments[l];return n=a=o(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.complete=function(e){O["default"].softSignOut(),$('#hidden-login-form input[name="redirect_to"]').remove(),f["default"].render(c["default"].createElement(A,{user:e}),document.getElementById("page-mount"))},r=n,o(a,r)}return i(t,e),u(t,[{key:"render",value:function(){return c["default"].createElement(L,{callback:this.complete})}}]),t}(c["default"].Component);n["default"]=R},{"../index":85,"../services/ajax":91,"../services/auth":92,"../services/modal":97,"../services/snackbar":99,"../utils/banned-page":102,"../utils/validators":109,"./button":51,"./form":58,"./sign-in.js":74,react:"react","react-dom":"react-dom"}],73:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=function(e){function t(){var e,n,a,o;r(this,t);for(var i=arguments.length,u=Array(i),l=0;i>l;l++)u[l]=arguments[l];return n=a=s(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.change=function(e){return function(){a.props.onChange({target:{value:e}})}},o=n,s(a,o)}return o(t,e),i(t,[{key:"getChoice",value:function(){var e=this,t=null;return this.props.choices.map(function(n){n.value===e.props.value&&(t=n)}),t}},{key:"getIcon",value:function(){return this.getChoice().icon}},{key:"getLabel",value:function(){return this.getChoice().label}},{key:"render",value:function(){var e=this;return l["default"].createElement("div",{className:"btn-group btn-select-group"},l["default"].createElement("button",{type:"button",className:"btn btn-select dropdown-toggle",id:this.props.id||null,"data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-describedby":this.props["aria-describedby"]||null,disabled:this.props.disabled||!1},l["default"].createElement("span",{className:"material-icon"},this.getIcon()),this.getLabel()),l["default"].createElement("ul",{className:"dropdown-menu"},this.props.choices.map(function(t,n){return l["default"].createElement("li",{key:n},l["default"].createElement("button",{type:"button",className:"btn-link",onClick:e.change(t.value)},l["default"].createElement("span",{className:"material-icon"},t.icon),t.label))})))}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],74:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("../index"),d=a(c),f=e("./button"),p=a(f),m=e("./form"),h=a(m),v=e("../services/ajax"),g=a(v),b=e("../services/modal"),y=a(b),_=e("../services/snackbar"),w=a(_),E=e("../utils/banned-page"),k=a(E),O=function(e){function t(e){r(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.state={isLoading:!1,showActivation:!1,username:"",password:"",validators:{username:[],password:[]}},n}return o(t,e),i(t,[{key:"clean",value:function(){return this.isValid()?!0:(w["default"].error(gettext("Fill out both fields.")),!1)}},{key:"send",value:function(){return g["default"].post(d["default"].get("AUTH_API"),{username:this.state.username,password:this.state.password})}},{key:"handleSuccess",value:function(){var e=$("#hidden-login-form");e.append('<input type="text" name="username" />'),e.append('<input type="password" name="password" />'),e.find('input[type="hidden"]').val(g["default"].getCsrfToken()),e.find('input[name="redirect_to"]').val(window.location.pathname),e.find('input[name="username"]').val(this.state.username),e.find('input[name="password"]').val(this.state.password),e.submit(),this.setState({isLoading:!0})}},{key:"handleError",value:function(e){400===e.status?"inactive_admin"===e.code?w["default"].info(e.detail):"inactive_user"===e.code?(w["default"].info(e.detail),this.setState({showActivation:!0})):"banned"===e.code?((0,k["default"])(e.detail),y["default"].hide()):w["default"].error(e.detail):403===e.status&&e.ban?((0,k["default"])(e.ban),y["default"].hide()):w["default"].apiError(e)}},{key:"getActivationButton",value:function(){return this.state.showActivation?l["default"].createElement("a",{href:d["default"].get("REQUEST_ACTIVATION_URL"),className:"btn btn-success btn-block"},gettext("Activate account")):null}},{key:"render",value:function(){return l["default"].createElement("div",{className:"modal-dialog modal-sm modal-sign-in",role:"document"},l["default"].createElement("div",{className:"modal-content"},l["default"].createElement("div",{className:"modal-header"},l["default"].createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":gettext("Close")},l["default"].createElement("span",{"aria-hidden":"true"},"×")),l["default"].createElement("h4",{className:"modal-title"},gettext("Sign in"))),l["default"].createElement("form",{onSubmit:this.handleSubmit},l["default"].createElement("div",{className:"modal-body"},l["default"].createElement("div",{className:"form-group"},l["default"].createElement("div",{className:"control-input"},l["default"].createElement("input",{id:"id_username",className:"form-control",type:"text",disabled:this.state.isLoading,placeholder:gettext("Username or e-mail"),onChange:this.bindInput("username"),value:this.state.username}))),l["default"].createElement("div",{className:"form-group"},l["default"].createElement("div",{className:"control-input"},l["default"].createElement("input",{id:"id_password",className:"form-control",type:"password",disabled:this.state.isLoading,placeholder:gettext("Password"),onChange:this.bindInput("password"),value:this.state.password})))),l["default"].createElement("div",{className:"modal-footer"},this.getActivationButton(),l["default"].createElement(p["default"],{className:"btn-primary btn-block",loading:this.state.isLoading},gettext("Sign in")),l["default"].createElement("a",{href:d["default"].get("FORGOTTEN_PASSWORD_URL"),className:"btn btn-default btn-block"},gettext("Forgot password?"))))))}}]),t}(h["default"]);n["default"]=O},{"../index":85,"../services/ajax":91,"../services/modal":97,"../services/snackbar":99,"../utils/banned-page":102,"./button":51,"./form":58,react:"react"}],75:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return e.snackbar}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Snackbar=void 0,n.select=i;var l=e("react"),c=a(l),d={info:"alert-info",success:"alert-success",warning:"alert-warning",error:"alert-danger"};n.Snackbar=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),u(t,[{key:"getSnackbarClass",value:function(){var e="alerts-snackbar";return e+=this.props.isVisible?" in":" out"}},{key:"render",value:function(){return c["default"].createElement("div",{className:this.getSnackbarClass()},c["default"].createElement("p",{className:"alert "+d[this.props.type]},this.props.message))}}]),t}(c["default"].Component)},{react:"react"}],76:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.CompactGuestNav=n.GuestNav=n.GuestMenu=void 0;var u=e("react"),l=a(u),c=e("../avatar"),d=a(c),f=e("../register-button"),p=a(f),m=e("../sign-in.js"),h=a(m),v=e("../../services/mobile-navbar-dropdown"),g=a(v),b=e("../../services/modal"),y=a(b),_=n.GuestMenu=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"showSignInModal",value:function(){y["default"].show(h["default"])}},{key:"render",value:function(){return l["default"].createElement("ul",{className:"dropdown-menu user-dropdown dropdown-menu-right",role:"menu"},l["default"].createElement("li",{className:"guest-preview"},l["default"].createElement("h4",null,gettext("You are browsing as guest.")),l["default"].createElement("p",null,gettext("Sign in or register to start and participate in discussions.")),l["default"].createElement("div",{className:"row"},l["default"].createElement("div",{className:"col-xs-6"},l["default"].createElement("button",{type:"button",className:"btn btn-default btn-block",onClick:this.showSignInModal},gettext("Sign in"))),l["default"].createElement("div",{className:"col-xs-6"},l["default"].createElement(p["default"],{className:"btn-primary btn-block"},gettext("Register"))))))}}]),t}(l["default"].Component);n.GuestNav=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"render",value:function(){return l["default"].createElement("div",{className:"nav nav-guest"},l["default"].createElement("button",{type:"button",className:"btn navbar-btn btn-default",onClick:this.showSignInModal},gettext("Sign in")),l["default"].createElement(p["default"],{className:"navbar-btn btn-primary"},gettext("Register")))}}]),t}(_),n.CompactGuestNav=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"showGuestMenu",value:function(){g["default"].show(_)}},{key:"render",value:function(){return l["default"].createElement("button",{type:"button",onClick:this.showGuestMenu},l["default"].createElement(d["default"],{size:"64"}))}}]),t}(l["default"].Component)},{"../../services/mobile-navbar-dropdown":96,"../../services/modal":97,"../avatar":49,"../register-button":68,"../sign-in.js":74,react:"react"}],77:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return e.auth}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.CompactUserMenu=n.UserMenu=void 0,n.select=i;var l=e("react"),c=a(l),d=e("./guest-nav"),f=e("./user-nav");n.UserMenu=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),u(t,[{key:"render",value:function(){return this.props.isAuthenticated?c["default"].createElement(f.UserNav,{user:this.props.user}):c["default"].createElement(d.GuestNav,null)}}]),t}(c["default"].Component),n.CompactUserMenu=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),u(t,[{key:"render",value:function(){return this.props.isAuthenticated?c["default"].createElement(f.CompactUserNav,{user:this.props.user}):c["default"].createElement(d.CompactGuestNav,null)}}]),t}(c["default"].Component)},{"./guest-nav":76,"./user-nav":78,react:"react"}],78:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return{user:e.auth.user}}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.CompactUserNav=n.UserNav=n.UserMenu=void 0,n.selectUserMenu=i;var l=e("react"),c=a(l),d=e("react-redux"),f=e("../avatar"),p=a(f),m=e("../change-avatar/root"),h=a(m),v=e("../../index"),g=a(v),b=e("../../services/mobile-navbar-dropdown"),y=a(b),_=e("../../services/modal"),w=a(_),E=n.UserMenu=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),u(t,[{key:"logout",value:function(){var e=confirm(gettext("Are you sure you want to sign out?"));e&&$("#hidden-logout-form").submit()}},{key:"changeAvatar",value:function(){w["default"].show((0,d.connect)(m.select)(h["default"]))}},{key:"render",value:function(){return c["default"].createElement("ul",{className:"dropdown-menu user-dropdown dropdown-menu-right",role:"menu"},c["default"].createElement("li",{className:"dropdown-header"},c["default"].createElement("strong",null,this.props.user.username)),c["default"].createElement("li",{className:"divider"}),c["default"].createElement("li",null,c["default"].createElement("a",{href:this.props.user.absolute_url},c["default"].createElement("span",{className:"material-icon"},"account_circle"),gettext("See your profile"))),c["default"].createElement("li",null,c["default"].createElement("a",{href:g["default"].get("USERCP_URL")},c["default"].createElement("span",{className:"material-icon"},"done_all"),gettext("Change options"))),c["default"].createElement("li",null,c["default"].createElement("button",{type:"button",className:"btn-link",onClick:this.changeAvatar},c["default"].createElement("span",{className:"material-icon"},"portrait"),gettext("Change avatar"))),c["default"].createElement("li",{className:"divider"}),c["default"].createElement("li",{className:"dropdown-footer"},c["default"].createElement("button",{type:"button",className:"btn btn-default btn-block",onClick:this.logout},gettext("Log out"))))}}]),t}(c["default"].Component);n.UserNav=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),u(t,[{key:"render",value:function(){return c["default"].createElement("ul",{className:"ul nav navbar-nav nav-user"},c["default"].createElement("li",{className:"dropdown"},c["default"].createElement("a",{href:this.props.user.absolute_url,className:"dropdown-toggle","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false",role:"button"},c["default"].createElement(p["default"],{user:this.props.user,size:"64"})),c["default"].createElement(E,{user:this.props.user})))}}]),t}(c["default"].Component),n.CompactUserNav=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),u(t,[{key:"showUserMenu",value:function(){y["default"].showConnected("user-menu",(0,d.connect)(i)(E))}},{key:"render",value:function(){return c["default"].createElement("button",{type:"button",onClick:this.showUserMenu},c["default"].createElement(p["default"],{user:this.props.user,size:"64"}))}}]),t}(c["default"].Component)},{"../../index":85,"../../services/mobile-navbar-dropdown":96,"../../services/modal":97,"../avatar":49,"../change-avatar/root":55,react:"react","react-redux":"react-redux"}],79:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.StatusLabel=n.StatusIcon=void 0;var u=e("react"),l=a(u),c=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"getClass",value:function(){var e="";return this.props.status.is_banned?e="banned":this.props.status.is_hidden?e="offline":this.props.status.is_online_hidden?e="online":this.props.status.is_offline_hidden?e="offline":this.props.status.is_online?e="online":this.props.status.is_offline&&(e="offline"),"user-status user-"+e}},{key:"render",value:function(){return l["default"].createElement("span",{className:this.getClass()},this.props.children)}}]),t}(l["default"].Component);n["default"]=c;n.StatusIcon=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"getIcon",value:function(){return this.props.status.is_banned?"remove_circle_outline":this.props.status.is_hidden?"help_outline":this.props.status.is_online_hidden?"label":this.props.status.is_offline_hidden?"label_outline":this.props.status.is_online?"lens":this.props.status.is_offline?"panorama_fish_eye":void 0}},{key:"render",value:function(){return l["default"].createElement("span",{className:"material-icon status-icon"},this.getIcon())}}]),t}(l["default"].Component),n.StatusLabel=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"getHelp",value:function(){return this.props.status.is_banned?this.props.status.banned_until?interpolate(gettext("%(username)s is banned until %(ban_expires)s"),{username:this.props.user.username,ban_expires:this.props.status.banned_until.format("LL, LT")},!0):interpolate(gettext("%(username)s is banned"),{username:this.props.user.username},!0):this.props.status.is_hidden?interpolate(gettext("%(username)s is hiding presence"),{username:this.props.user.username},!0):this.props.status.is_online_hidden?interpolate(gettext("%(username)s is online (hidden)"),{username:this.props.user.username},!0):this.props.status.is_offline_hidden?interpolate(gettext("%(username)s was last seen %(last_click)s (hidden)"),{username:this.props.user.username,last_click:this.props.status.last_click.fromNow()},!0):this.props.status.is_online?interpolate(gettext("%(username)s is online"),{username:this.props.user.username},!0):this.props.status.is_offline?interpolate(gettext("%(username)s was last seen %(last_click)s"),{username:this.props.user.username,last_click:this.props.status.last_click.fromNow()},!0):void 0}},{key:"getLabel",value:function(){return this.props.status.is_banned?gettext("Banned"):this.props.status.is_hidden?gettext("Hidden"):this.props.status.is_online_hidden?gettext("Online (hidden)"):this.props.status.is_offline_hidden?gettext("Offline (hidden)"):this.props.status.is_online?gettext("Online"):this.props.status.is_offline?gettext("Offline"):void 0}},{key:"render",value:function(){return l["default"].createElement("span",{className:this.props.className||"status-label",title:this.getHelp()},this.getLabel())}}]),t}(l["default"].Component)},{react:"react"}],80:[function(e,t,n){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.NoActivePosters=n.ActivePostersLoading=n.ActivePosters=n.ActivePoster=void 0;var l=e("react"),c=r(l),d=e("react-router"),f=e("../avatar"),p=r(f),m=e("../user-status"),h=r(m),v=e("../../index"),g=r(v),b=e("../../reducers/users"),y=e("../../services/ajax"),_=r(y),w=e("../../services/snackbar"),E=r(w),k=e("../../services/store"),O=r(k),x=e("../../services/page-title"),N=r(x),j=e("../../utils/random"),P=a(j),C=n.ActivePoster=function(e){function t(){return s(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"getClassName",value:function(){return this.props.rank.css_class?"list-group-item list-group-rank-"+this.props.rank.css_class:"list-group-item"}},{key:"getUserStatus",value:function(){return this.props.user.status?c["default"].createElement(h["default"],{user:this.props.user,status:this.props.user.status},c["default"].createElement(m.StatusIcon,{user:this.props.user,status:this.props.user.status}),c["default"].createElement(m.StatusLabel,{user:this.props.user,status:this.props.user.status,className:"status-label hidden-xs hidden-sm"})):c["default"].createElement("span",{className:"user-status"},c["default"].createElement("span",{className:"status-icon ui-preview"}," "),c["default"].createElement("span",{className:"status-label ui-preview hidden-xs hidden-sm"}," "))}},{key:"getRankName",value:function(){if(this.props.rank.is_tab){var e=g["default"].get("USERS_LIST_URL")+this.props.rank.slug+"/";return c["default"].createElement(d.Link,{to:e,className:"rank-name"},this.props.rank.name)}return c["default"].createElement("span",{className:"rank-name"},this.props.rank.name)}},{key:"getUserTitle",value:function(){return this.props.user.title?c["default"].createElement("span",{className:"user-title hidden-xs hidden-sm"},this.props.user.title):null}},{key:"render",value:function(){return c["default"].createElement("li",{className:this.getClassName()},c["default"].createElement("div",{className:"rank-user-avatar"},c["default"].createElement("a",{href:this.props.user.absolute_url},c["default"].createElement(p["default"],{user:this.props.user,size:"50"}))),c["default"].createElement("div",{className:"rank-user"},c["default"].createElement("div",{className:"user-name"},c["default"].createElement("a",{href:this.props.user.absolute_url,className:"item-title"},this.props.user.username)),this.getUserStatus(),this.getRankName(),this.getUserTitle()),c["default"].createElement("div",{className:"rank-position"},c["default"].createElement("div",{className:"stat-value"},"#",this.props.counter),c["default"].createElement("div",{className:"text-muted"},gettext("Rank"))),c["default"].createElement("div",{className:"rank-posts-counted"},c["default"].createElement("div",{
+className:"stat-value"},this.props.user.meta.score),c["default"].createElement("div",{className:"text-muted"},gettext("Ranked posts"))),c["default"].createElement("div",{className:"rank-posts-total"},c["default"].createElement("div",{className:"stat-value"},this.props.user.posts),c["default"].createElement("div",{className:"text-muted"},gettext("Total posts"))))}}]),t}(c["default"].Component),S=n.ActivePosters=function(e){function t(){return s(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"getLeadMessage",value:function(){var e=ngettext("%(posters)s most active poster from last %(days)s days.","%(posters)s most active posters from last %(days)s days.",this.props.count);return interpolate(e,{posters:this.props.count,days:this.props.trackedPeriod},!0)}},{key:"render",value:function(){return c["default"].createElement("div",{className:"active-posters-list"},c["default"].createElement("div",{className:"container"},c["default"].createElement("p",{className:"lead"},this.getLeadMessage()),c["default"].createElement("div",{className:"active-posters ui-ready"},c["default"].createElement("ul",{className:"list-group"},this.props.users.map(function(e,t){return c["default"].createElement(C,{user:e,rank:e.rank,counter:t+1,key:e.id})})))))}}]),t}(c["default"].Component),M=n.ActivePostersLoading=function(e){function t(){return s(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"render",value:function(){return c["default"].createElement("div",{className:"active-posters-list"},c["default"].createElement("div",{className:"container"},c["default"].createElement("p",{className:"lead ui-preview-paragraph"},P.range(3,4).map(function(e){return c["default"].createElement("span",{key:e,className:"ui-preview-text",style:{width:P["int"](50,120)+"px"}}," ")})),c["default"].createElement("div",{className:"active-posters ui-preview"},c["default"].createElement("ul",{className:"list-group"},P.range(5,10).map(function(e,t){return c["default"].createElement("li",{key:e,className:"list-group-item"},c["default"].createElement("div",{className:"rank-user-avatar"},c["default"].createElement("span",null,c["default"].createElement(p["default"],{size:"50"}))),c["default"].createElement("div",{className:"rank-user"},c["default"].createElement("div",{className:"user-name"},c["default"].createElement("span",{className:"item-title"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:P["int"](30,80)+"px"}}," "))),c["default"].createElement("span",{className:"user-status"},c["default"].createElement("span",{className:"status-icon ui-preview"}," "),c["default"].createElement("span",{className:"status-label ui-preview hidden-xs hidden-sm"}," ")),c["default"].createElement("span",{className:"rank-name"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:P["int"](30,50)+"px"}}," ")),c["default"].createElement("span",{className:"user-title hidden-xs hidden-sm"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:P["int"](30,50)+"px"}}," "))),c["default"].createElement("div",{className:"rank-position"},c["default"].createElement("div",{className:"stat-value"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:"30px"}}," ")),c["default"].createElement("div",{className:"text-muted"},gettext("Rank"))),c["default"].createElement("div",{className:"rank-posts-counted"},c["default"].createElement("div",{className:"stat-value"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:"30px"}}," ")),c["default"].createElement("div",{className:"text-muted"},gettext("Ranked posts"))),c["default"].createElement("div",{className:"rank-posts-total"},c["default"].createElement("div",{className:"stat-value"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:"30px"}}," ")),c["default"].createElement("div",{className:"text-muted"},gettext("Total posts"))))})))))}}]),t}(c["default"].Component),T=n.NoActivePosters=function(e){function t(){return s(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"getEmptyMessage",value:function(){return interpolate(gettext("No users have posted any new messages during last %(days)s days."),{days:this.props.trackedPeriod},!0)}},{key:"render",value:function(){return c["default"].createElement("div",{className:"active-posters-list"},c["default"].createElement("div",{className:"container"},c["default"].createElement("p",{className:"lead"},this.getEmptyMessage())))}}]),t}(c["default"].Component),L=function(e){function t(e){s(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return g["default"].has("USERS")?n.initWithPreloadedData(g["default"].pop("USERS")):n.initWithoutPreloadedData(),n.poolId=null,n.startPooling(),n}return i(t,e),u(t,[{key:"initWithPreloadedData",value:function(e){this.state={isLoaded:!0,trackedPeriod:e.tracked_period,count:e.count},O["default"].dispatch((0,b.dehydrate)(e.results))}},{key:"initWithoutPreloadedData",value:function(){this.state={isLoaded:!1}}},{key:"startPooling",value:function(){var e=this,t=function n(){_["default"].get(g["default"].get("USERS_API"),{list:"active"}).then(function(t){e.setState({isLoaded:!0,trackedPeriod:t.tracked_period,count:t.count},function(e){E["default"].apiError(e)}),O["default"].dispatch((0,b.dehydrate)(t.results)),e.poolId=window.setTimeout(n,9e4)})};t()}},{key:"componentDidMount",value:function(){N["default"].set({title:this.props.route.extra.name,parent:gettext("Users")})}},{key:"componentWillUnmount",value:function(){this.poolId&&window.clearTimeout(this.poolId)}},{key:"render",value:function(){return this.state.isLoaded?this.state.count>0?c["default"].createElement(S,{users:this.props.users,trackedPeriod:this.state.trackedPeriod,count:this.state.count}):c["default"].createElement(T,{trackedPeriod:this.state.trackedPeriod}):c["default"].createElement(M,null)}}]),t}(c["default"].Component);n["default"]=L},{"../../index":85,"../../reducers/users":90,"../../services/ajax":91,"../../services/page-title":98,"../../services/snackbar":99,"../../services/store":100,"../../utils/random":107,"../avatar":49,"../user-status":79,react:"react","react-router":"react-router"}],81:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.CompactNav=n.TabsNav=void 0;var u=e("react"),l=a(u),c=e("react-router"),d=e("../li"),f=a(d),p=e("../../index"),m=(a(p),function(e,t){var n=e;return n+="rank"===t.component?t.slug:t.component,n+"/"}),h=function(e,t){return t.map(function(t){var n=m(e,t);return l["default"].createElement(f["default"],{path:n,key:n},l["default"].createElement(c.Link,{to:n},t.name))})};n.TabsNav=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"render",value:function(){return l["default"].createElement("ul",{className:"nav nav-pills"},h(this.props.baseUrl,this.props.lists))}}]),t}(l["default"].Component),n.CompactNav=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"render",value:function(){return l["default"].createElement("ul",{className:"dropdown-menu",role:"menu"},h(this.props.baseUrl,this.props.lists))}}]),t}(l["default"].Component)},{"../../index":85,"../li":59,react:"react","react-router":"react-router"}],82:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("../../services/page-title"),d=a(c),f=function(e){function t(){return r(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"componentDidMount",value:function(){d["default"].set({title:this.props.route.rank.name,parent:gettext("Users")})}},{key:"render",value:function(){return l["default"].createElement("div",null,l["default"].createElement("div",{className:"container"},"Hello, this is users with rank list!"))}}]),t}(l["default"].Component);n["default"]=f},{"../../services/page-title":98,react:"react"}],83:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return{tick:e.tick.tick,user:e.auth.user,users:e.users}}function u(){var e=[];return y["default"].get("USERS_LISTS").forEach(function(t){"rank"===t.component?e.push({path:y["default"].get("USERS_LIST_URL")+t.slug+"/",component:(0,f.connect)(i)(g["default"]),rank:{name:t.name,slug:t.slug,css_class:t.css_class,description:t.description}}):"active-posters"===t.component&&e.push({path:y["default"].get("USERS_LIST_URL")+t.component+"/",component:(0,f.connect)(i)(h["default"]),extra:{name:t.name}})}),e}var l=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.select=i,n.paths=u;var c=e("react"),d=a(c),f=e("react-redux"),p=e("./navs"),m=e("./active-posters"),h=a(m),v=e("./rank"),g=a(v),b=e("../../index"),y=a(b),_=function(e){function t(e){r(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.toggleNav=function(){n.state.dropdown?n.setState({dropdown:!1}):n.setState({dropdown:!0})},n.state={dropdown:!1},n}return o(t,e),l(t,[{key:"getToggleNavClassName",value:function(){return this.state.dropdown?"btn btn-default btn-icon open":"btn btn-default btn-icon"}},{key:"getCompactNavClassName",value:function(){return this.state.dropdown?"compact-nav open":"compact-nav"}},{key:"render",value:function(){return d["default"].createElement("div",{className:"page page-users-lists"},d["default"].createElement("div",{className:"page-header tabbed"},d["default"].createElement("div",{className:"container"},d["default"].createElement("h1",{className:"pull-left"},gettext("Users")),d["default"].createElement("button",{className:"btn btn-default btn-icon btn-dropdown-toggle hidden-md hidden-lg",type:"button",onClick:this.toggleNav,"aria-haspopup":"true","aria-expanded":this.state.dropdown?"true":"false"},d["default"].createElement("i",{className:"material-icon"},"menu"))),d["default"].createElement("div",{className:"page-tabs hidden-xs hidden-sm"},d["default"].createElement("div",{className:"container"},d["default"].createElement(p.TabsNav,{lists:y["default"].get("USERS_LISTS"),baseUrl:y["default"].get("USERS_LIST_URL")})))),d["default"].createElement("div",{className:this.getCompactNavClassName()},d["default"].createElement(p.CompactNav,{lists:y["default"].get("USERS_LISTS"),baseUrl:y["default"].get("USERS_LIST_URL")})),this.props.children)}}]),t}(d["default"].Component);n["default"]=_},{"../../index":85,"./active-posters":80,"./navs":81,"./rank":82,react:"react","react-redux":"react-redux"}],84:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=function(e){function t(){var e,n,a,o;r(this,t);for(var i=arguments.length,u=Array(i),l=0;i>l;l++)u[l]=arguments[l];return n=a=s(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.toggle=function(){a.props.onChange({target:{value:!a.props.value}})},o=n,s(a,o)}return o(t,e),i(t,[{key:"getClassName",value:function(){return this.props.value?"btn btn-yes-no btn-yes-no-on":"btn btn-yes-no btn-yes-no-off"}},{key:"getIcon",value:function(){return this.props.value?this.props.iconOn||"check_box":this.props.iconOff||"check_box_outline_blank"}},{key:"getLabel",value:function(){return this.props.value?this.props.labelOn||gettext("yes"):this.props.labelOff||gettext("no")}},{key:"render",value:function(){return l["default"].createElement("button",{type:"button",onClick:this.toggle,className:this.getClassName(),id:this.props.id||null,"aria-describedby":this.props["aria-describedby"]||null,disabled:this.props.disabled||!1},l["default"].createElement("span",{className:"material-icon"},this.getIcon()),this.getLabel())}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],85:[function(e,t,n){(function(t){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var s=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Misago=void 0;var o=e("./utils/ordered-list"),i=a(o),u=n.Misago=function(){function e(){r(this,e),this._initializers=[],this._context={}}return s(e,[{key:"addInitializer",value:function(e){this._initializers.push({key:e.name,item:e.initializer,after:e.after,before:e.before})}},{key:"init",value:function(e){var t=this;this._context=e;var n=new i["default"](this._initializers).orderedValues();n.forEach(function(e){e(t)})}},{key:"has",value:function(e){return!!this._context[e]}},{key:"get",value:function(e,t){return this.has(e)?this._context[e]:t||void 0}},{key:"pop",value:function(e){if(this.has(e)){var t=this._context[e];return this._context[e]=null,t}}}]),e}(),l=new u;t.misago=l,n["default"]=l}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./utils/ordered-list":106}],86:[function(e,t,n){"use strict";function a(e){return{type:l,patch:e}}function r(e){return{type:c,user:e}}function s(){var e=arguments.length<=0||void 0===arguments[0]?!1:arguments[0];return{type:d,soft:e}}function o(){var e=arguments.length<=0||void 0===arguments[0]?u:arguments[0],t=arguments.length<=1||void 0===arguments[1]?null:arguments[1];switch(t.type){case l:var n=Object.assign({},e);return n.user=Object.assign({},e.user,t.patch),n;case c:return Object.assign({},e,{signedIn:t.user});case d:return Object.assign({},e,{isAuthenticated:!1,isAnonymous:!0,signedOut:!t.soft});case i.UPDATE_AVATAR:if(e.isAuthenticated&&e.user.id===t.userId){var a=Object.assign({},e);return a.user=Object.assign({},e.user,{avatar_hash:t.avatarHash}),a}return e;case i.UPDATE_USERNAME:if(e.isAuthenticated&&e.user.id===t.userId){var r=Object.assign({},e);return r.user=Object.assign({},e.user,{username:t.username,slug:t.slug}),r}return e;default:return e}}Object.defineProperty(n,"__esModule",{value:!0}),n.SIGN_OUT=n.SIGN_IN=n.PATCH_USER=n.initialState=void 0,n.patchUser=a,n.signIn=r,n.signOut=s,n["default"]=o;var i=e("./users"),u=n.initialState={signedIn:!1,signedOut:!1},l=n.PATCH_USER="PATCH_USER",c=n.SIGN_IN="SIGN_IN",d=n.SIGN_OUT="SIGN_OUT"},{"./users":90}],87:[function(e,t,n){"use strict";function a(e,t){return{type:i,message:e,messageType:t}}function r(){return{type:u}}function s(){var e=arguments.length<=0||void 0===arguments[0]?o:arguments[0],t=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return t.type===i?{type:t.messageType,message:t.message,isVisible:!0}:t.type===u?Object.assign({},e,{isVisible:!1}):e}Object.defineProperty(n,"__esModule",{value:!0}),n.showSnackbar=a,n.hideSnackbar=r,n["default"]=s;var o=n.initialState={type:"info",message:"",isVisible:!1},i=n.SHOW_SNACKBAR="SHOW_SNACKBAR",u=n.HIDE_SNACKBAR="HIDE_SNACKBAR"},{}],88:[function(e,t,n){"use strict";function a(){return{type:o}}function r(){var e=arguments.length<=0||void 0===arguments[0]?s:arguments[0],t=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return t.type===o?Object.assign({},e,{tick:e.tick+1}):e}Object.defineProperty(n,"__esModule",{value:!0}),n.doTick=a,n["default"]=r;var s=n.initialState={tick:0},o=n.TICK="TICK"},{}],89:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t,n){return{type:c,change:e,user:t,changedBy:n}}function s(e){return{type:d,items:e}}function o(){var e=arguments.length<=0||void 0===arguments[0]?[]:arguments[0],t=arguments.length<=1||void 0===arguments[1]?null:arguments[1];switch(t.type){case c:var n=e.slice();return n.unshift({id:Math.floor(Date.now()/1e3),changed_by:t.changedBy,changed_by_username:t.changedBy.username,changed_on:(0,l["default"])(),new_username:t.change.username,old_username:t.user.username}),n;case d:return t.items.map(function(e){return Object.assign({},e,{changed_on:(0,l["default"])(e.changed_on)})});case i.UPDATE_AVATAR:return e.map(function(e){return e=Object.assign({},e),e.changed_by&&e.changed_by.id===t.userId&&(e.changed_by=Object.assign({},e.changed_by,{avatar_hash:t.avatarHash})),e});case i.UPDATE_USERNAME:return e.map(function(e){return e=Object.assign({},e),e.changed_by&&e.changed_by.id===t.userId&&(e.changed_by=Object.assign({},e.changed_by,{username:t.username,slug:t.slug})),Object.assign({},e)});default:return e}}Object.defineProperty(n,"__esModule",{value:!0}),n.DEHYDRATE_RESULT=n.ADD_NAME_CHANGE=void 0,n.addNameChange=r,n.dehydrate=s,n["default"]=o;var i=e("./users"),u=e("moment"),l=a(u),c=n.ADD_NAME_CHANGE="ADD_NAME_CHANGE",d=n.DEHYDRATE_RESULT="DEHYDRATE_RESULT"},{"./users":90,moment:"moment"}],90:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e){return{type:d,items:e}}function s(e){return e?Object.assign({},e,{last_click:e.last_click?(0,c["default"])(e.last_click):null,banned_until:e.banned_until?(0,c["default"])(e.banned_until):null}):null}function o(e,t){return{type:f,userId:e.id,avatarHash:t}}function i(e,t,n){return{type:p,userId:e.id,username:t,slug:n}}function u(){var e=arguments.length<=0||void 0===arguments[0]?[]:arguments[0],t=arguments.length<=1||void 0===arguments[1]?null:arguments[1];switch(t.type){case d:return t.items.map(function(e){var t=s(e.status);return Object.assign({},e,{status:t})});case f:return e.map(function(e){return e=Object.assign({},e),e.id===t.userId&&(e.avatar_hash=t.avatarHash),e});default:return e}}Object.defineProperty(n,"__esModule",{value:!0}),n.UPDATE_USERNAME=n.UPDATE_AVATAR=n.DEHYDRATE_RESULT=void 0,n.dehydrate=r,n.dehydrateStatus=s,n.updateAvatar=o,n.updateUsername=i,n["default"]=u;var l=e("moment"),c=a(l),d=n.DEHYDRATE_RESULT="DEHYDRATE_RESULT",f=n.UPDATE_AVATAR="UPDATE_AVATAR",p=n.UPDATE_USERNAME="UPDATE_USERNAME"},{moment:"moment"}],91:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=n.Ajax=function(){function e(){a(this,e),this._cookieName=null,this._csrfToken=null}return r(e,[{key:"init",value:function(e){this._cookieName=e,this._csrfToken=this.getCsrfToken()}},{key:"getCsrfToken",value:function(){if(-1!==document.cookie.indexOf(this._cookieName)){var e=new RegExp(this._cookieName+"=([^;]*)"),t=document.cookie.match(e)[0];return t?t.split("=")[1]:null}return null}},{key:"request",value:function(e,t,n){var a=this;return new Promise(function(r,s){var o={url:t,method:e,headers:{"X-CSRFToken":a._csrfToken},data:n?JSON.stringify(n):null,contentType:"application/json; charset=utf-8",dataType:"json",success:function(e){r(e)},error:function(e){var t=e.responseJSON||{};t.status=e.status,0===t.status&&(t.detail=gettext("Lost connection with application.")),t.statusText=e.statusText,s(t)}};$.ajax(o)})}},{key:"get",value:function(e,t){return t&&(e+="?"+$.param(t)),this.request("GET",e)}},{key:"post",value:function(e,t){return this.request("POST",e,t)}},{key:"patch",value:function(e,t){return this.request("PATCH",e,t)}},{key:"put",value:function(e,t){return this.request("PUT",e,t)}},{key:"delete",value:function(e){return this.request("DELETE",e)}},{key:"upload",value:function(e,t,n){var a=this;return new Promise(function(r,s){var o={url:e,method:"POST",headers:{"X-CSRFToken":a._csrfToken},data:t,contentType:!1,processData:!1,xhr:function i(){var i=new window.XMLHttpRequest;return i.upload.addEventListener("progress",function(e){e.lengthComputable&&n(Math.round(e.loaded/e.total*100))},!1),i},success:function(e){r(e)},error:function(e){var t=e.responseJSON||{};t.status=e.status,0===t.status&&(t.detail=gettext("Lost connection with application.")),t.statusText=e.statusText,s(t)}};$.ajax(o)})}}]),e}();n["default"]=new s},{}],92:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Auth=void 0;var s=e("../reducers/auth"),o=n.Auth=function(){function e(){a(this,e)}return r(e,[{key:"init",value:function(e,t,n){this._store=e,this._local=t,this._modal=n,this.syncSession(),this.watchState()}},{key:"syncSession",value:function(){var e=this._store.getState().auth;e.isAuthenticated?this._local.set("auth",{isAuthenticated:!0,username:e.user.username}):this._local.set("auth",{isAuthenticated:!1})}},{key:"watchState",value:function(){var e=this;this._local.watch("auth",function(t){t.isAuthenticated?e._store.dispatch((0,s.signIn)({username:t.username})):e._store.dispatch((0,s.signOut)())}),this._modal.hide()}},{key:"signIn",value:function(e){this._store.dispatch((0,s.signIn)(e)),this._local.set("auth",{isAuthenticated:!0,username:e.username}),this._modal.hide()}},{key:"signOut",value:function(){this._store.dispatch((0,s.signOut)()),this._local.set("auth",{isAuthenticated:!1}),this._modal.hide()}},{key:"softSignOut",value:function(){this._store.dispatch((0,s.signOut)(!0)),this._local.set("auth",{isAuthenticated:!1}),this._modal.hide()}}]),e}();n["default"]=new o},{"../reducers/auth":86}],93:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Captcha=n.ReCaptcha=n.ReCaptchaComponent=n.QACaptcha=n.NoCaptcha=n.BaseCaptcha=void 0;var u=e("react"),l=a(u),c=e("../components/form-group"),d=a(c),f=n.BaseCaptcha=function(){function e(){o(this,e)}return i(e,[{key:"init",value:function(e,t,n,a){this._context=e,this._ajax=t,this._include=n,this._snackbar=a}}]),e}(),p=n.NoCaptcha=function(e){function t(){return o(this,t),r(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"load",value:function(){return new Promise(function(e){e()})}},{key:"validator",value:function(){return null}},{key:"component",value:function(){return null}}]),t}(f),m=n.QACaptcha=function(e){function t(){return o(this,t),r(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"load",value:function(){var e=this;return new Promise(function(t,n){e._ajax.get(e._context.get("CAPTCHA_API_URL")).then(function(n){e.question=n.question,e.helpText=n.help_text,t()},function(){e._snackbar.error(gettext("Failed to load CAPTCHA.")),n()})})}},{key:"validator",value:function(){return[]}},{key:"component",value:function(e){return l["default"].createElement(d["default"],{label:this.question,"for":"id_captcha",labelClass:e.labelClass||"col-sm-4",controlClass:e.controlClass||"col-sm-8",validation:e.form.state.errors.captcha,helpText:this.helpText||null},l["default"].createElement("input",{type:"text",id:"id_captcha",className:"form-control","aria-describedby":"id_captcha_status",disabled:e.form.state.isLoading,onChange:e.form.bindInput("captcha"),value:e.form.state.captcha}))}}]),t}(f),h=n.ReCaptchaComponent=function(e){function t(){return o(this,t),r(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"componentDidMount",value:function(){var e=this;grecaptcha.render("recaptcha",{sitekey:this.props.siteKey,callback:function(t){e.props.binding({target:{value:t}})}})}},{key:"render",value:function(){return l["default"].createElement("div",{id:"recaptcha"})}}]),t}(l["default"].Component),v=n.ReCaptcha=function(e){function t(){return o(this,t),r(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"load",value:function(){return this._include.include("https://www.google.com/recaptcha/api.js",!0),new Promise(function(e){var t=function n(){"undefined"==typeof grecaptcha?window.setTimeout(function(){n()},200):e()};t()})}},{key:"validator",value:function(){return[]}},{key:"component",value:function(e){return l["default"].createElement(d["default"],{label:gettext("Captcha"),"for":"id_captcha",labelClass:e.labelClass||"col-sm-4",controlClass:e.controlClass||"col-sm-8",validation:e.form.state.errors.captcha,helpText:gettext("Please solve the quick test.")},l["default"].createElement(h,{siteKey:this._context.get("SETTINGS").recaptcha_site_key,binding:e.form.bindInput("captcha")}))}}]),t}(f),g=n.Captcha=function(){function e(){o(this,e)}return i(e,[{key:"init",value:function(e,t,n,a){switch(e.get("SETTINGS").captcha_type){case"no":this._captcha=new p;break;case"qa":this._captcha=new m;break;case"re":this._captcha=new v}this._captcha.init(e,t,n,a)}},{key:"load",value:function(){return this._captcha.load()}},{key:"validator",value:function(){return this._captcha.validator()}},{key:"component",value:function(e){return this._captcha.component(e)}}]),e}();n["default"]=new g},{"../components/form-group":57,react:"react"}],94:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=n.Include=function(){function e(){a(this,e)}return r(e,[{key:"init",value:function(e){this._staticUrl=e,this._included=[]}},{key:"include",value:function(e){var t=arguments.length<=1||void 0===arguments[1]?!1:arguments[1];-1===this._included.indexOf(e)&&(this._included.push(e),this._include(e,t))}},{key:"_include",value:function(e,t){$.ajax({url:(t?"":this._staticUrl)+e,cache:!0,dataType:"script"})}}]),e}();n["default"]=new s},{}],95:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=window.localStorage,o=n.LocalStorage=function(){function e(){a(this,e)}return r(e,[{key:"init",value:function(e){var t=this;this._prefix=e,this._watchers=[],window.addEventListener("storage",function(e){var n=JSON.parse(e.newValue);t._watchers.forEach(function(t){t.key===e.key&&e.oldValue!==e.newValue&&t.callback(n)})})}},{key:"set",value:function(e,t){s.setItem(this._prefix+e,JSON.stringify(t))}},{key:"get",value:function(e){var t=s.getItem(this._prefix+e);return t?JSON.parse(t):null}},{key:"watch",value:function(e,t){this._watchers.push({key:this._prefix+e,callback:t})}}]),e}();n["default"]=new o},{}],96:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var s=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.MobileNavbarDropdown=void 0;var o=e("../utils/mount-component"),i=a(o),u=n.MobileNavbarDropdown=function(){function e(){r(this,e)}return s(e,[{key:"init",value:function(e){this._element=e,this._component=null;
+}},{key:"show",value:function(e){this._component===e?this.hide():(this._component=e,(0,i["default"])(e,this._element.id),$(this._element).addClass("open"))}},{key:"showConnected",value:function(e,t){this._component===e?this.hide():(this._component=e,(0,i["default"])(t,this._element.id,!0),$(this._element).addClass("open"))}},{key:"hide",value:function(){$(this._element).removeClass("open"),this._component=null}}]),e}();n["default"]=new u},{"../utils/mount-component":105}],97:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var s=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Modal=void 0;var o=e("react-dom"),i=a(o),u=e("../utils/mount-component"),l=a(u),c=n.Modal=function(){function e(){r(this,e)}return s(e,[{key:"init",value:function(e){var t=this;this._element=e,this._modal=$(e).modal({show:!1}),this._modal.on("hidden.bs.modal",function(){i["default"].unmountComponentAtNode(t._element)})}},{key:"show",value:function(e){(0,l["default"])(e,this._element.id),this._modal.modal("show")}},{key:"hide",value:function(){this._modal.modal("hide")}}]),e}();n["default"]=new c},{"../utils/mount-component":105,"react-dom":"react-dom"}],98:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=n.PageTitle=function(){function e(){a(this,e)}return r(e,[{key:"init",value:function(e){this._forumName=e}},{key:"set",value:function(e){"string"==typeof e&&(e={title:e});var t=e.title;if(e.page){var n=interpolate(gettext("page %(page)s"),{page:e.page},!0);t+=" ("+n+")"}e.parent&&(t+=" | "+e.parent),document.title=t+" | "+this._forumName}}]),e}();n["default"]=new s},{}],99:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Snackbar=void 0;var s=e("../reducers/snackbar"),o=300,i=5e3,u=n.Snackbar=function(){function e(){a(this,e)}return r(e,[{key:"init",value:function(e){this._store=e,this._timeout=null}},{key:"alert",value:function(e,t){var n=this;this._timeout?(window.clearTimeout(this._timeout),this._store.dispatch((0,s.hideSnackbar)()),this._timeout=window.setTimeout(function(){n._timeout=null,n.alert(e,t)},o)):(this._store.dispatch((0,s.showSnackbar)(e,t)),this._timeout=window.setTimeout(function(){n._store.dispatch((0,s.hideSnackbar)()),n._timeout=null},i))}},{key:"info",value:function(e){this.alert(e,"info")}},{key:"success",value:function(e){this.alert(e,"success")}},{key:"warning",value:function(e){this.alert(e,"warning")}},{key:"error",value:function(e){this.alert(e,"error")}},{key:"apiError",value:function(e){var t=gettext("Unknown error has occured.");0===e.status&&(t=e.detail),400===e.status&&e.detail&&(t=e.detail),403===e.status&&(t=e.detail,"Permission denied"===t&&(t=gettext("You don't have permission to perform this action."))),404===e.status&&(t=gettext("Action link is invalid.")),this.error(t)}}]),e}();n["default"]=new u},{"../reducers/snackbar":87}],100:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.StoreWrapper=void 0;var s=e("redux"),o=n.StoreWrapper=function(){function e(){a(this,e),this._store=null,this._reducers={},this._initialState={}}return r(e,[{key:"addReducer",value:function(e,t,n){this._reducers[e]=t,this._initialState[e]=n}},{key:"init",value:function(){this._store=(0,s.createStore)((0,s.combineReducers)(this._reducers),this._initialState)}},{key:"getStore",value:function(){return this._store}},{key:"getState",value:function(){return this._store.getState()}},{key:"dispatch",value:function(e){return this._store.dispatch(e)}}]),e}();n["default"]=new o},{redux:"redux"}],101:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=n.Zxcvbn=function(){function e(){a(this,e)}return r(e,[{key:"init",value:function(e){this._include=e}},{key:"scorePassword",value:function(e,t){return zxcvbn(e,t).score}},{key:"load",value:function(){return"undefined"==typeof zxcvbn?(this._include.include("misago/js/zxcvbn.js"),this._loadingPromise()):this._loadedPromise()}},{key:"_loadingPromise",value:function(){return new Promise(function(e){var t=function n(){"undefined"==typeof zxcvbn?window.setTimeout(function(){n()},200):e()};t()})}},{key:"_loadedPromise",value:function(){return new Promise(function(e){e()})}}]),e}();n["default"]=new s},{}],102:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=function(e,t){if(l["default"].render(i["default"].createElement(c.Provider,{store:v["default"].getStore()},i["default"].createElement(b,{message:e.message,expires:e.expires_on?(0,s["default"])(e.expires_on):null})),document.getElementById("page-mount")),"undefined"==typeof t||t){var n=m["default"].get("SETTINGS").forum_name;document.title=gettext("You are banned")+" | "+n,window.history.pushState({},"",m["default"].get("BANNED_URL"))}};var r=e("moment"),s=a(r),o=e("react"),i=a(o),u=e("react-dom"),l=a(u),c=e("react-redux"),d=e("../components/banned-page"),f=a(d),p=e("../index"),m=a(p),h=e("../services/store"),v=a(h),g=function(e){return e.tick},b=(0,c.connect)(g)(f["default"])},{"../components/banned-page":50,"../index":85,"../services/store":100,moment:"moment",react:"react","react-dom":"react-dom","react-redux":"react-redux"}],103:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=function(e,t){var n=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],a=[],r=[];if(e.forEach(function(e){r.push(e),r.length===t&&(a.push(r),r=[])}),n!==!1&&r.length>0&&r.length<t)for(var s=r.length;t>s;s++)r.push(n);return r.length&&a.push(r),a}},{}],104:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=function(e){return e>1e9?Math.round(100*e/1e9)/100+" GB":e>1e6?Math.round(100*e/1e6)/100+" MB":e>1e3?Math.round(100*e/1e3)/100+" KB":Math.round(100*e)/100+" B"}},{}],105:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=function(e,t){var n=arguments.length<=2||void 0===arguments[2]?!0:arguments[2],a=document.getElementById(t);a&&(n?i["default"].render(s["default"].createElement(u.Provider,{store:c["default"].getStore()},s["default"].createElement(e,null)),a):i["default"].render(s["default"].createElement(e,null),a))};var r=e("react"),s=a(r),o=e("react-dom"),i=a(o),u=e("react-redux"),l=e("../services/store"),c=a(l)},{"../services/store":100,react:"react","react-dom":"react-dom","react-redux":"react-redux"}],106:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=function(){function e(t){a(this,e),this.isOrdered=!1,this._items=t||[]}return r(e,[{key:"add",value:function(e,t,n){this._items.push({key:e,item:t,after:n?n.after||null:null,before:n?n.before||null:null})}},{key:"get",value:function(e,t){for(var n=0;n<this._items.length;n++)if(this._items[n].key===e)return this._items[n].item;return t}},{key:"has",value:function(e){return void 0!==this.get(e)}},{key:"values",value:function t(){for(var t=[],e=0;e<this._items.length;e++)t.push(this._items[e].item);return t}},{key:"order",value:function(e){return this.isOrdered||(this._items=this._order(this._items),this.isOrdered=!0),e||"undefined"==typeof e?this.values():this._items}},{key:"orderedValues",value:function(){return this.order(!0)}},{key:"_order",value:function(e){function t(e){var t=-1;-1===r.indexOf(e.key)&&(e.after?(t=r.indexOf(e.after),-1!==t&&(t+=1)):e.before&&(t=r.indexOf(e.before)),-1!==t&&(a.splice(t,0,e),r.splice(t,0,e.key)))}var n=[];e.forEach(function(e){n.push(e.key)});var a=[],r=[];e.forEach(function(e){e.after||e.before||(a.push(e),r.push(e.key))}),e.forEach(function(e){"_end"===e.before&&(a.push(e),r.push(e.key))});for(var s=200;s>0&&n.length!==r.length;)s-=1,e.forEach(t);return a}}]),e}();n["default"]=s},{}],107:[function(e,t,n){"use strict";function a(e,t){return Math.floor(Math.random()*(t-e+1))+e}function r(e,t){for(var n=new Array(a(e,t)),r=0;r<n.length;r++)n[r]=r;return n}Object.defineProperty(n,"__esModule",{value:!0}),n["int"]=a,n.range=r},{}],108:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=function(e){var t={component:e.component,childRoutes:[{path:e.root,onEnter:function(t,n){n(null,e.paths[0].path)}}].concat(e.paths.map(function(e){return e}))};i["default"].render(s["default"].createElement(u.Provider,{store:p["default"].getStore()},s["default"].createElement(l.Router,{routes:t,history:h})),m)};var r=e("react"),s=a(r),o=e("react-dom"),i=a(o),u=e("react-redux"),l=e("react-router"),c=e("history/lib/createBrowserHistory"),d=a(c),f=e("../services/store"),p=a(f),m=document.getElementById("page-mount"),h=new d["default"]},{"../services/store":100,"history/lib/createBrowserHistory":38,react:"react","react-dom":"react-dom","react-redux":"react-redux","react-router":"react-router"}],109:[function(e,t,n){"use strict";function a(){return function(e){return 0===$.trim(e).length?gettext("This field is required."):void 0}}function r(e){return function(t){return d.test(t)?void 0:e||gettext("Enter a valid email address.")}}function s(e,t){return function(n){var a="",r=$.trim(n).length;return e>r?(a=t?t(e,r):ngettext("Ensure this value has at least %(limit_value)s character (it has %(show_value)s).","Ensure this value has at least %(limit_value)s characters (it has %(show_value)s).",e),interpolate(a,{limit_value:e,show_value:r},!0)):void 0}}function o(e,t){return function(n){var a="",r=$.trim(n).length;return r>e?(a=t?t(e,r):ngettext("Ensure this value has at most %(limit_value)s character (it has %(show_value)s).","Ensure this value has at most %(limit_value)s characters (it has %(show_value)s).",e),interpolate(a,{limit_value:e,show_value:r},!0)):void 0}}function i(e){var t=function(e){return ngettext("Username must be at least %(limit_value)s character long.","Username must be at least %(limit_value)s characters long.",e)};return this.minLength(e.username_length_min,t)}function u(e){var t=function(e){return ngettext("Username cannot be longer than %(limit_value)s character.","Username cannot be longer than %(limit_value)s characters.",e)};return this.maxLength(e.username_length_max,t)}function l(){return function(e){return f.test($.trim(e))?void 0:gettext("Username can only contain latin alphabet letters and digits.")}}function c(e){var t=function(e){return ngettext("Valid password must be at least %(limit_value)s character long.","Valid password must be at least %(limit_value)s characters long.",e)};return this.minLength(e.password_length_min,t)}Object.defineProperty(n,"__esModule",{value:!0}),n.required=a,n.email=r,n.minLength=s,n.maxLength=o,n.usernameMinLength=i,n.usernameMaxLength=u,n.usernameContent=l,n.passwordMinLength=c;var d=/^(([^<>()[\]\.,;:\s@\"]+(\.[^<>()[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i,f=new RegExp("^[0-9a-z]+$","i")},{}]},{},[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29]);
 //# sourceMappingURL=misago.js.map
 //# sourceMappingURL=misago.js.map

+ 1 - 1
misago/static/misago/js/misago.js.map

@@ -1 +1 @@
-{"version":3,"sources":["misago.js"],"names":["e","t","n","r","s","o","u","a","require","i","f","Error","code","l","exports","call","length",1,"module","cleanUpNextTick","draining","currentQueue","queue","concat","queueIndex","drainQueue","timeout","setTimeout","len","run","clearTimeout","Item","fun","array","this","noop","process","nextTick","args","Array","arguments","push","prototype","apply","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","binding","name","cwd","chdir","dir","umask",2,"global","_interopRequireDefault","obj","__esModule","default","_classCallCheck","instance","Constructor","TypeError","_createClass","defineProperties","target","props","descriptor","enumerable","configurable","writable","Object","defineProperty","key","protoProps","staticProps","value","Misago","undefined","_orderedList","_orderedList2","_initializers","_context","initializer","item","after","before","context","_this","initOrder","orderedValues","forEach","fallback","has","misago","self","window","../../../../documents/misago/frontend/src/utils/ordered-list",3,"_ajax2","init","_index2","get","_index","_ajax","addInitializer","../../../../../documents/misago/frontend/src/index","../../../../../documents/misago/frontend/src/services/ajax",4,"_mountComponent2","_reactRedux","connect","_authMessage","select","_authMessage2","_mountComponent","../../../../../documents/misago/frontend/src/components/auth-message","../../../../../documents/misago/frontend/src/utils/mount-component","react-redux",5,"_store2","addReducer","_auth2","assign","isAuthenticated","isAnonymous","user","_auth","initialState","_store","../../../../../documents/misago/frontend/src/reducers/auth","../../../../../documents/misago/frontend/src/services/store",6,"_localStorage2","_modal2","_modal","_localStorage","../../../../../documents/misago/frontend/src/services/auth","../../../../../documents/misago/frontend/src/services/local-storage","../../../../../documents/misago/frontend/src/services/modal",7,"_bannedPage2","_bannedPage","../../../../../documents/misago/frontend/src/utils/banned-page",8,"_captcha2","_include2","_snackbar2","_captcha","_include","_snackbar","../../../../../documents/misago/frontend/src/services/captcha","../../../../../documents/misago/frontend/src/services/include","../../../../../documents/misago/frontend/src/services/snackbar",9,10,11,"element","document","getElementById","_mobileNavbarDropdown2","_mobileNavbarDropdown","../../../../../documents/misago/frontend/src/services/mobile-navbar-dropdown",12,13,"_moment2","locale","$","attr","_moment","moment",14,"_routedComponent2","root","component","_root2","paths","_root","_routedComponent","../../../../../documents/misago/frontend/src/components/options/root","../../../../../documents/misago/frontend/src/utils/routed-component",15,"_pageTitle2","forum_name","_pageTitle","../../../../../documents/misago/frontend/src/services/page-title",16,"_requestActivationLink2","_requestActivationLink","../../../../../documents/misago/frontend/src/components/request-activation-link",17,"_requestPasswordReset2","_requestPasswordReset","../../../../../documents/misago/frontend/src/components/request-password-reset",18,"_resetPasswordForm2","_resetPasswordForm","../../../../../documents/misago/frontend/src/components/reset-password-form",19,"Snackbar","../../../../../documents/misago/frontend/src/components/snackbar",20,"../../../../../documents/misago/frontend/src/reducers/snackbar",21,22,23,"_tick2","_tick","../../../../../documents/misago/frontend/src/reducers/tick",24,"setInterval","dispatch","doTick","TICK_PERIOD",25,"UserMenu","CompactUserMenu","../../../../../documents/misago/frontend/src/components/user-menu/root",26,"_usernameHistory2","_usernameHistory","../../../../../documents/misago/frontend/src/reducers/username-history",27,"../../../../../documents/misago/frontend/src/components/users/root",28,"_users2","_users","../../../../../documents/misago/frontend/src/reducers/users",29,"_zxcvbn2","_zxcvbn","../../../../../documents/misago/frontend/src/services/zxcvbn",30,"isUndefinedOrNull","isBuffer","x","copy","slice","objEquiv","b","opts","isArguments","pSlice","deepEqual","ka","objectKeys","kb","sort","actual","expected","Date","getTime","strict","./lib/is_arguments.js","./lib/keys.js",31,"supported","object","toString","unsupported","hasOwnProperty","propertyIsEnumerable","supportsArgumentsClass",32,"shim","keys",33,"PUSH","REPLACE","POP",34,"loopAsync","turns","work","callback","done","isDone","next","currentTurn",35,"createKey","KeyPrefix","saveState","state","sessionStorage","setItem","JSON","stringify","error","SecurityError","NODE_ENV","_warning2","QuotaExceededError","readState","json","getItem","parse","_warning","_process","warning",36,"addEventListener","node","event","listener","attachEvent","removeEventListener","detachEvent","getHashPath","location","href","split","replaceHashPath","path","replace","pathname","search","getWindowPath","hash","go","history","getUserConfirmation","message","confirm","supportsHistory","ua","navigator","userAgent","indexOf","supportsGoWithoutReloadUsingHash",37,"canUseDOM","createElement",38,"createBrowserHistory","getCurrentLocation","historyState","_DOMUtils","_historyState","_DOMStateStorage","isSupported","replaceState","_extends","_parsePath2","createLocation","startPopStateListener","_ref","popStateListener","transitionTo","finishTransition","basename","action","_Actions","useRefresh","pushState","listenBefore","listenerCount","stopPopStateListener","unlisten","listen","registerTransitionHook","hook","unregisterTransitionHook","options","_ExecutionEnvironment","_invariant2","forceRefresh","_createDOMHistory2","source","_invariant","_createDOMHistory","_parsePath","./Actions","./DOMStateStorage","./DOMUtils","./ExecutionEnvironment","./createDOMHistory","./parsePath","invariant",39,"createDOMHistory","_createHistory2","_createHistory","./createHistory",40,"createRandomKey","Math","random","substr","locationsAreEqual","_deepEqual2","createHistory","transitionHooks","filter","getCurrent","pendingLocation","allKeys","updateLocation","newLocation","current","changeListeners","_location","confirmTransitionTo","_AsyncUtils","index","_runTransitionHook2","result","ok","nextLocation","prevPath","createPath","nextPath","prevIndex","nextIndex","goBack","goForward","keyLength","createHref","_createLocation3","setState","updateLocationState","DefaultKeyLength","_deprecate2","_deepEqual","_createLocation2","_runTransitionHook","_deprecate","./AsyncUtils","./createLocation","./deprecate","./runTransitionHook","deep-equal",41,"_fourthArg",42,"deprecate","fn",43,"extractPath","string","match","substring",44,"parsePath","_extractPath2","hashIndex","searchIndex","_extractPath","./extractPath",45,"runTransitionHook",46,"condition","format","c","d","argIndex","framesToPop",47,48,"_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","create","constructor","setPrototypeOf","__proto__","auth","signedIn","signedOut","_react","_react2","_class","_React$Component","getPrototypeOf","reload","interpolate","gettext","username","className","getClassName","getMessage","type","onClick","refresh","Component","react",49,"BASE_URL","size","url","id","avatar_hash","src","getSrc",50,"html","dangerouslySetInnerHTML","__html","plain","expires","isAfter","expires_on","fromNow","getReasonMessage","getExpirationMessage",51,"_loader","_loader2","Button","disabled","loading","children","defaultProps","./loader",52,"_avatar","_button","_button2","cropAvatar","isLoading","avatarType","upload","cropit","post","api_url","avatar","crop","offset","zoom","then","data","onComplete","success","detail","rejection","status","showError","crop_tmp","crop_org","secret","getAvatarSecret","getAvatarHash","join","_this2","width","getAvatarSize","height","imageState","getImagePath","onImageLoaded","zoomLevel","imageSize","displayedWidth","offsetX","y","displayedHeight","offsetY","showIndex","../../services/ajax","../../services/snackbar","../avatar","../button",53,"Gallery","GalleryItem","_batch","_batch2","_Object$getPrototypeO","_temp","_ret","_len","_key","image","selection","_React$Component2","_this3","images","map","row","_React$Component3","_this4","save","response","_this5","galleries","../../index","../../utils/batch",54,"_avatar2","setGravatar","callApi","setGenerated","gravatar","showCrop","showUpload","showGallery","getAvatarPreview","getGravatarButton","getCropButton","getUploadButton","getGalleryButton","../loader",55,"ChangeAvatarError","_crop","_crop2","_upload","_upload2","_gallery","_gallery2","_modalLoader","_modalLoader2","reason","getErrorReason","completeFlow","avatarHash","updateAvatar","role","data-dismiss","aria-label","aria-hidden","getBody","../../reducers/users","../../services/store","../modal-loader","./crop","./gallery","./index","./upload",56,"_fileSize","_fileSize2","pickFile","click","uploadFile","files","validationError","validateFile","preview","URL","createObjectURL","progress","FormData","append","uploaded","info","limit","filesize","invalidTypeMsg","allowed_mime_types","extensionFound","loweredFilename","toLowerCase","allowed_extensions","extension","extensions","getUploadRequirements","aria-valuenow","aria-valuemin","aria-valuemax","style","getUploadProgressLabel","onChange","getUploadProgress","renderCrop","renderUpload","../../utils/file-size",57,"validation","isValidated","helpText","labelClass","htmlFor","label","controlClass","getFeedbackIcon","getFeedbackDescription","getFeedback","getHelpText","extra",58,"_defineProperty","_validators","validateRequired","required","bindInput","newState","formErrors","errors","validateField","handleSubmit","preventDefault","clean","promise","send","handleSuccess","handleError","validators","optional","validatedFields","fieldErrors","validate","field","requiredError","../utils/validators",59,"isActive","activeClassName",60,61,62,"_interopRequireWildcard","newObj","UsernameHistory","ChangeUsernameLoading","NoChangesLeft","ChangeUsername","_form","_form2","_formGroup","_formGroup2","_random","_Form","usernameContent","usernameMinLength","username_length_min","length_min","usernameMaxLength","username_length_max","length_max","phrases","changes_left","ngettext","acl","name_changes_expire","trim","complete","slug","apiError","onSubmit","for","next_on","next_change","changed_by","absolute_url","changed_by_username","changes","renderUserAvatar","renderUsername","old_username","new_username","changed_on","range","isLoaded","renderHistory","renderEmptyHistory","renderHistoryPreview","_React$Component4","_this6","addNameChange","updateUsername","_this7","set","parent","Promise","all","dehydrate","results","getChangeForm","../../reducers/username-history","../../services/page-title","../../utils/random","../../utils/validators","../form","../form-group",63,"_select","_select2","_yesNoSwitch","_yesNoSwitch2","is_hiding_presence","limits_private_thread_invites_to","subscribe_to_started_threads","subscribe_to_replied_threads","privateThreadInvitesChoices","icon","subscribeToChoices","patchUser","iconOn","iconOff","labelOn","labelOff","choices","../../reducers/auth","../select","../yes-no-switch",64,"CompactNav","SideNav","_reactRouter","_li","_li2","option","Link","to","baseUrl","../li","react-router",65,"store","tick","username-history","_forumOptions2","_changeUsername2","_signInCredentials2","_navs","_forumOptions","_changeUsername","_signInCredentials","toggleNav","dropdown","aria-haspopup","aria-expanded","getCompactNavClassName","./change-username","./forum-options","./navs","./sign-in-credentials",66,"ChangePassword","ChangeEmail","new_email","password","email","lengths","change_email","display","_Form2","new_password","repeat_password","passwordMinLength","change_password",67,"LABELS","STYLES","_score","_password","_inputs","inputs","cacheStale","scorePassword","score","getScore","../services/zxcvbn",68,"_register","_register2","showRegisterModal","account_activation","show","load","../services/captcha","../services/modal","../services/snackbar","./register.js",69,"RegisterComplete","RegisterForm","_passwordStrength","_passwordStrength2","captcha","validator","isValid","apiResponse","ban","hide","aria-describedby","form","getLegalFootNote","activation","getLead","getSubscript","completeRegistration","signIn","../index","../services/ajax","../services/auth","../utils/banned-page","./button","./form","./form-group","./password-strength",70,"LinkSent","RequestLinkForm","placeholder","reset",71,"AccountInactivePage","RequestResetForm","_reactDom","_reactDom2","showInactivePage","getActivateButton","render","react-dom",72,"PasswordChangedPage","ResetPasswordForm","_signIn","_signIn2","showSignIn","softSignOut","remove","./sign-in.js",73,"change","choice","getChoice","data-toggle","getIcon","getLabel",74,"showActivation","find","val","getCsrfToken","submit","getActivationButton",75,"snackbar","TYPES_CLASSES","snackbarClass","isVisible","getSnackbarClass",76,"CompactGuestNav","GuestNav","GuestMenu","_registerButton","_registerButton2","showSignInModal","_GuestMenu","showGuestMenu","../../services/mobile-navbar-dropdown","../../services/modal","../register-button","../sign-in.js",77,"_guestNav","_userNav","UserNav","CompactUserNav","./guest-nav","./user-nav",78,"selectUserMenu","decision","changeAvatar","logout","showConnected","showUserMenu","../change-avatar/root",79,"StatusLabel","StatusIcon","is_banned","is_hidden","is_online_hidden","is_offline_hidden","is_online","is_offline","getClass","banned_until","ban_expires","last_click","getHelp",80,"NoActivePosters","ActivePostersLoading","ActivePosters","ActivePoster","_userStatus","_userStatus2","rank","css_class","is_tab","rankUrl","getUserStatus","getRankName","getUserTitle","counter","meta","posts","count","posters","days","trackedPeriod","getLeadMessage","users","getEmptyMessage","_React$Component5","initWithPreloadedData","pop","initWithoutPreloadedData","poolId","startPooling","tracked_period","poolServer","list","route","../user-status",81,"TabsNav","listUrl","navLinks","lists",82,83,"_rank2","description","_activePosters2","_activePosters","_rank","./active-posters","./rank",84,"toggle",85,"./utils/ordered-list",86,"patch","PATCH_USER","SIGN_IN","signOut","soft","SIGN_OUT","UPDATE_AVATAR","userId","_newState","UPDATE_USERNAME","_newState2","./users",87,"showSnackbar","SHOW_SNACKBAR","messageType","hideSnackbar","HIDE_SNACKBAR",88,"TICK",89,"changedBy","ADD_NAME_CHANGE","items","DEHYDRATE_RESULT","unshift","floor","now",90,91,"Ajax","_cookieName","_csrfToken","cookieName","cookie","cookieRegex","RegExp","method","resolve","reject","xhr","headers","X-CSRFToken","contentType","dataType","jqXHR","responseJSON","statusText","ajax","params","param","request","processData","XMLHttpRequest","evt","lengthComputable","round","loaded","total",92,"Auth","local","modal","_local","syncSession","watchState","getState","watch","../reducers/auth",93,"Captcha","ReCaptcha","ReCaptchaComponent","QACaptcha","NoCaptcha","BaseCaptcha","include","_BaseCaptcha","_BaseCaptcha2","question","help_text","kwargs","grecaptcha","sitekey","siteKey","_BaseCaptcha3","wait","recaptcha_site_key","captcha_type","../components/form-group",94,"Include","staticUrl","_staticUrl","_included","script","remote","cache",95,"storage","localStorage","LocalStorage","prefix","_prefix","_watchers","newValueJson","newValue","watcher","oldValue","itemString",96,"MobileNavbarDropdown","_element","_component","addClass","removeClass","../utils/mount-component",97,"Modal","unmountComponentAtNode",98,"PageTitle","forumName","_forumName","finalTitle","page","pageLabel",99,"HIDE_ANIMATION_LENGTH","MESSAGE_SHOW_LENGTH","_timeout","alert","../reducers/snackbar",100,"StoreWrapper","_redux","_reducers","_initialState","reducer","createStore","combineReducers","redux",101,"Zxcvbn","zxcvbn","_loadingPromise","_loadedPromise",102,"changeState","Provider","getStore","RedrawedBannedPage","../components/banned-page","../services/store",103,"rowWidth","padding","rows",104,"bytes",105,"rootElementId","connected","rootElement",106,"OrderedList","isOrdered","_items","order","values","values_only","_order","unordered","insertItem","insertAt","ordering","ordered","splice","iterations",107,"int","min","max",108,"routes","childRoutes","onEnter","nextState","Router","_createBrowserHistory","_createBrowserHistory2","history/lib/createBrowserHistory",109,"EMAIL","test","minLength","limitValue","returnMessage","limit_value","show_value","maxLength","settings","USERNAME","password_length_min"],"mappings":"CAAA,QAAUA,GAAEC,EAAEC,EAAEC,GAAG,QAASC,GAAEC,EAAEC,GAAG,IAAIJ,EAAEG,GAAG,CAAC,IAAIJ,EAAEI,GAAG,CAAC,GAAIE,GAAkB,kBAATC,UAAqBA,OAAQ,KAAIF,GAAGC,EAAE,MAAOA,GAAEF,GAAE,EAAI,IAAGI,EAAE,MAAOA,GAAEJ,GAAE,EAAI,IAAIK,GAAE,GAAIC,OAAM,uBAAuBN,EAAE,IAAK,MAAMK,GAAEE,KAAK,mBAAmBF,EAAE,GAAIG,GAAEX,EAAEG,IAAIS,WAAYb,GAAEI,GAAG,GAAGU,KAAKF,EAAEC,QAAQ,SAASd,GAAG,GAAIE,GAAED,EAAEI,GAAG,GAAGL,EAAG,OAAOI,GAAEF,EAAEA,EAAEF,IAAIa,EAAEA,EAAEC,QAAQd,EAAEC,EAAEC,EAAEC,GAAG,MAAOD,GAAEG,GAAGS,QAAkD,IAAI,GAA1CL,GAAkB,kBAATD,UAAqBA,QAAgBH,EAAE,EAAEA,EAAEF,EAAEa,OAAOX,IAAID,EAAED,EAAEE,GAAI,OAAOD,KAAKa,GAAG,SAAST,EAAQU,EAAOJ,GASvd,QAASK,KACLC,GAAW,EACPC,EAAaL,OACbM,EAAQD,EAAaE,OAAOD,GAE5BE,EAAa,GAEbF,EAAMN,QACNS,IAIR,QAASA,KACL,IAAIL,EAAJ,CAGA,GAAIM,GAAUC,WAAWR,EACzBC,IAAW,CAGX,KADA,GAAIQ,GAAMN,EAAMN,OACVY,GAAK,CAGP,IAFAP,EAAeC,EACfA,OACSE,EAAaI,GACdP,GACAA,EAAaG,GAAYK,KAGjCL,GAAa,GACbI,EAAMN,EAAMN,OAEhBK,EAAe,KACfD,GAAW,EACXU,aAAaJ,IAiBjB,QAASK,GAAKC,EAAKC,GACfC,KAAKF,IAAMA,EACXE,KAAKD,MAAQA,EAYjB,QAASE,MAtET,GAGId,GAHAe,EAAUlB,EAAOJ,WACjBQ,KACAF,GAAW,EAEXI,EAAa,EAsCjBY,GAAQC,SAAW,SAAUL,GACzB,GAAIM,GAAO,GAAIC,OAAMC,UAAUxB,OAAS,EACxC,IAAIwB,UAAUxB,OAAS,EACnB,IAAK,GAAIP,GAAI,EAAGA,EAAI+B,UAAUxB,OAAQP,IAClC6B,EAAK7B,EAAI,GAAK+B,UAAU/B,EAGhCa,GAAMmB,KAAK,GAAIV,GAAKC,EAAKM,IACJ,IAAjBhB,EAAMN,QAAiBI,GACvBO,WAAWF,EAAY,IAS/BM,EAAKW,UAAUb,IAAM,WACjBK,KAAKF,IAAIW,MAAM,KAAMT,KAAKD,QAE9BG,EAAQQ,MAAQ,UAChBR,EAAQS,SAAU,EAClBT,EAAQU,OACRV,EAAQW,QACRX,EAAQY,QAAU,GAClBZ,EAAQa,YAIRb,EAAQc,GAAKf,EACbC,EAAQe,YAAchB,EACtBC,EAAQgB,KAAOjB,EACfC,EAAQiB,IAAMlB,EACdC,EAAQkB,eAAiBnB,EACzBC,EAAQmB,mBAAqBpB,EAC7BC,EAAQoB,KAAOrB,EAEfC,EAAQqB,QAAU,SAAUC,GACxB,KAAM,IAAI/C,OAAM,qCAGpByB,EAAQuB,IAAM,WAAc,MAAO,KACnCvB,EAAQwB,MAAQ,SAAUC,GACtB,KAAM,IAAIlD,OAAM,mCAEpByB,EAAQ0B,MAAQ,WAAa,MAAO,SAE9BC,GAAG,SAASvD,EAAQU,EAAOJ,IACjC,SAAWkD,GACX,YAaA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAbhH,GAAIC,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAQyE,OAASC,MAEjB,IAAIC,GAAejF,EAAQ,gEAEvBkF,EAAgBzB,EAAuBwB,GAMvCF,EAASzE,EAAQyE,OAAS,WAC5B,QAASA,KACPlB,EAAgBnC,KAAMqD,GAEtBrD,KAAKyD,iBACLzD,KAAK0D,YAyDP,MAtDAnB,GAAac,IACXJ,IAAK,iBACLG,MAAO,SAAwBO,GAC7B3D,KAAKyD,cAAclD,MACjB0C,IAAKU,EAAYnC,KAEjBoC,KAAMD,EAAYA,YAElBE,MAAOF,EAAYE,MACnBC,OAAQH,EAAYG,YAIxBb,IAAK,OACLG,MAAO,SAAcW,GACnB,GAAIC,GAAQhE,IAEZA,MAAK0D,SAAWK,CAEhB,IAAIE,GAAY,GAAIT,GAAAA,WAAsBxD,KAAKyD,eAAeS,eAC9DD,GAAUE,QAAQ,SAAUR,GAC1BA,EAAYK,QAOhBf,IAAK,MACLG,MAAO,SAAaH,GAClB,QAASjD,KAAK0D,SAAST,MAGzBA,IAAK,MACLG,MAAO,SAAaH,EAAKmB,GACvB,MAAIpE,MAAKqE,IAAIpB,GACJjD,KAAK0D,SAAST,GAEdmB,GAAYd,UAIvBL,IAAK,MACLG,MAAO,SAAaH,GAClB,GAAIjD,KAAKqE,IAAIpB,GAAM,CACjB,GAAIG,GAAQpD,KAAK0D,SAAST,EAE1B,OADAjD,MAAK0D,SAAST,GAAO,KACdG,OAONC,KAKLiB,EAAS,GAAIjB,EAGjBvB,GAAOwC,OAASA,EAGhB1F,EAAAA,WAAkB0F,IAEfzF,KAAKmB,KAAuB,mBAAX8B,QAAyBA,OAAyB,mBAATyC,MAAuBA,KAAyB,mBAAXC,QAAyBA,aACxHC,+DAA+D,MAAMC,GAAG,SAASpG,EAAQU,EAAOJ,GACnG,YAeA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAAS2B,KACPgB,EAAAA,WAAeC,KAAKC,EAAAA,WAAgBC,IAAI,qBAhB1C/B,OAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAAA,WAAkB+E,CAElB,IAAIoB,GAASzG,EAAQ,sDAEjBuG,EAAU9C,EAAuBgD,GAEjCC,EAAQ1G,EAAQ,8DAEhBqG,EAAS5C,EAAuBiD,EAQpCH,GAAAA,WAAgBI,gBACdzD,KAAM,OACNmC,YAAaA,MAGZuB,qDAAqD,GAAGC,6DAA6D,KAAKC,GAAG,SAAS9G,EAAQU,EAAOJ,GACxJ,YAqBA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAAS2B,MACN,EAAG0B,EAAAA,aAA2B,EAAGC,EAAYC,SAASC,EAAaC,QAAQC,EAAAA,YAAwB,sBAtBtG3C,OAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAAA,WAAkB+E,CAElB,IAAI2B,GAAchH,EAAQ,eAEtByG,EAASzG,EAAQ,sDAEjBuG,EAAU9C,EAAuBgD,GAEjCS,EAAelH,EAAQ,wEAEvBoH,EAAgB3D,EAAuByD,GAEvCG,EAAkBrH,EAAQ,sEAE1B+G,EAAmBtD,EAAuB4D,EAQ9Cd,GAAAA,WAAgBI,gBACdzD,KAAM,yBACNmC,YAAaA,EACbE,MAAO,YAGN+B,uEAAuE,GAAGV,qDAAqD,GAAGW,qEAAqE,IAAIC,cAAc,gBAAgBC,GAAG,SAASzH,EAAQU,EAAOJ,GACvQ,YAmBA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAAS2B,GAAYI,GACnBiC,EAAAA,WAAgBC,WAAW,OAAQC,EAAAA,WAAgBnD,OAAOoD,QACxDC,gBAAmBrC,EAAQe,IAAI,mBAC/BuB,aAAgBtC,EAAQe,IAAI,mBAE5BwB,KAAQvC,EAAQe,IAAI,SACnByB,EAAMC,eAzBXzD,OAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAAA,WAAkB+E,CAElB,IAAIoB,GAASzG,EAAQ,sDAEjBuG,EAAU9C,EAAuBgD,GAEjCwB,EAAQjI,EAAQ,8DAEhB4H,EAASnE,EAAuBwE,GAEhCE,EAASnI,EAAQ,+DAEjB0H,EAAUjE,EAAuB0E,EAarC5B,GAAAA,WAAgBI,gBACdzD,KAAM,eACNmC,YAAaA,EACbG,OAAQ,YAGPoB,qDAAqD,GAAGwB,6DAA6D,GAAGC,8DAA8D,MAAMC,GAAG,SAAStI,EAAQU,EAAOJ,GAC1N,YA2BA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAAS2B,KACPuC,EAAAA,WAAetB,KAAKoB,EAAAA,WAAiBa,EAAAA,WAAwBC,EAAAA,YA5B/D/D,OAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAAA,WAAkB+E,CAElB,IAAIoB,GAASzG,EAAQ,sDAEjBuG,EAAU9C,EAAuBgD,GAEjCwB,EAAQjI,EAAQ,8DAEhB4H,EAASnE,EAAuBwE,GAEhCQ,EAASzI,EAAQ,+DAEjBwI,EAAU/E,EAAuBgF,GAEjCN,EAASnI,EAAQ,+DAEjB0H,EAAUjE,EAAuB0E,GAEjCO,EAAgB1I,EAAQ,uEAExBuI,EAAiB9E,EAAuBiF,EAQ5CnC,GAAAA,WAAgBI,gBACdzD,KAAM,OACNmC,YAAaA,EACbE,MAAO,YAGNqB,qDAAqD,GAAG+B,6DAA6D,GAAGC,sEAAsE,GAAGC,8DAA8D,GAAGR,8DAA8D,MAAMS,GAAG,SAAS9I,EAAQU,EAAOJ,GACpW,YAeA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAAS2B,GAAYI,GACfA,EAAQM,IAAI,iBACb,EAAGgD,EAAAA,YAAsBtD,EAAQe,IAAI,gBAAgB,GAjB1D/B,OAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAAA,WAAkB+E,CAElB,IAAIoB,GAASzG,EAAQ,sDAEjBuG,EAAU9C,EAAuBgD,GAEjCuC,EAAchJ,EAAQ,kEAEtB+I,EAAetF,EAAuBuF,EAU1CzC,GAAAA,WAAgBI,gBACdzD,KAAM,uBACNmC,YAAaA,EACbE,MAAO,YAGNqB,qDAAqD,GAAGqC,iEAAiE,MAAMC,GAAG,SAASlJ,EAAQU,EAAOJ,GAC7J,YA2BA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAAS2B,GAAYI,GACnB0D,EAAAA,WAAkB7C,KAAKb,EAASY,EAAAA,WAAgB+C,EAAAA,WAAmBC,EAAAA,YA5BrE5E,OAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAAA,WAAkB+E,CAElB,IAAIoB,GAASzG,EAAQ,sDAEjBuG,EAAU9C,EAAuBgD,GAEjCC,EAAQ1G,EAAQ,8DAEhBqG,EAAS5C,EAAuBiD,GAEhC4C,EAAWtJ,EAAQ,iEAEnBmJ,EAAY1F,EAAuB6F,GAEnCC,EAAWvJ,EAAQ,iEAEnBoJ,EAAY3F,EAAuB8F,GAEnCC,EAAYxJ,EAAQ,kEAEpBqJ,EAAa5F,EAAuB+F,EAQxCjD,GAAAA,WAAgBI,gBACdzD,KAAM,UACNmC,YAAaA,MAGZuB,qDAAqD,GAAGC,6DAA6D,GAAG4C,gEAAgE,GAAGC,gEAAgE,GAAGC,iEAAiE,KAAKC,GAAG,SAAS5J,EAAQU,EAAOJ,GAClW,YAeA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAAS2B,GAAYI,GACnB2D,EAAAA,WAAkB9C,KAAKb,EAAQe,IAAI,eAhBrC/B,OAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAAA,WAAkB+E,CAElB,IAAIoB,GAASzG,EAAQ,sDAEjBuG,EAAU9C,EAAuBgD,GAEjC8C,EAAWvJ,EAAQ,iEAEnBoJ,EAAY3F,EAAuB8F,EAQvChD,GAAAA,WAAgBI,gBACdzD,KAAM,UACNmC,YAAaA,MAGZuB,qDAAqD,GAAG8C,gEAAgE,KAAKG,IAAI,SAAS7J,EAAQU,EAAOJ,GAC5J,YAeA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAAS2B,KACPkD,EAAAA,WAAuBjC,KAAK,WAhB9B7B,OAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAAA,WAAkB+E,CAElB,IAAIoB,GAASzG,EAAQ,sDAEjBuG,EAAU9C,EAAuBgD,GAEjCiC,EAAgB1I,EAAQ,uEAExBuI,EAAiB9E,EAAuBiF,EAQ5CnC,GAAAA,WAAgBI,gBACdzD,KAAM,gBACNmC,YAAaA,MAGZuB,qDAAqD,GAAGgC,sEAAsE,KAAKkB,IAAI,SAAS9J,EAAQU,EAAOJ,GAClK,YAeA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAAS2B,KACP,GAAI0E,GAAUC,SAASC,eAAe,+BAClCF,IACFG,EAAAA,WAA+B5D,KAAKyD,GAlBxCtF,OAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAAA,WAAkB+E,CAElB,IAAIoB,GAASzG,EAAQ,sDAEjBuG,EAAU9C,EAAuBgD,GAEjC0D,EAAwBnK,EAAQ,gFAEhCkK,EAAyBzG,EAAuB0G,EAWpD5D,GAAAA,WAAgBI,gBACdzD,KAAM,WACNmC,YAAaA,EACbG,OAAQ,YAGPoB,qDAAqD,GAAGwD,+EAA+E,KAAKC,IAAI,SAASrK,EAAQU,EAAOJ,GAC3K,YAeA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAAS2B,KACP,GAAI0E,GAAUC,SAASC,eAAe,cAClCF,IACFvB,EAAAA,WAAgBlC,KAAKyD,GAlBzBtF,OAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAAA,WAAkB+E,CAElB,IAAIoB,GAASzG,EAAQ,sDAEjBuG,EAAU9C,EAAuBgD,GAEjCgC,EAASzI,EAAQ,+DAEjBwI,EAAU/E,EAAuBgF,EAWrClC,GAAAA,WAAgBI,gBACdzD,KAAM,QACNmC,YAAaA,EACbG,OAAQ,YAGPoB,qDAAqD,GAAGiC,8DAA8D,KAAKyB,IAAI,SAAStK,EAAQU,EAAOJ,GAC1J,YAeA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAAS2B,KACPkF,EAAAA,WAAiBC,OAAOC,EAAE,QAAQC,KAAK,SAhBzCjG,OAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAAA,WAAkB+E,CAElB,IAAIsF,GAAU3K,EAAQ,UAElBuK,EAAW9G,EAAuBkH,GAElClE,EAASzG,EAAQ,sDAEjBuG,EAAU9C,EAAuBgD,EAQrCF,GAAAA,WAAgBI,gBACdzD,KAAM,SACNmC,YAAaA,MAGZuB,qDAAqD,GAAGgE,OAAS,WAAWC,IAAI,SAAS7K,EAAQU,EAAOJ,GAC3G,YAuBA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAAS2B,GAAYI,GACfA,EAAQM,IAAI,kBACb,EAAG+E,EAAAA,aACFC,KAAMxE,EAAAA,WAAgBC,IAAI,cAC1BwE,UAAWC,EAAAA,WACXC,OAAQ,EAAGC,EAAMD,OAAOxD,EAAAA,cA5B9BjD,OAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAAA,WAAkB+E,CAElB,IAAI8F,GAAQnL,EAAQ,wEAEhBiL,EAASxH,EAAuB0H,GAEhC1E,EAASzG,EAAQ,sDAEjBuG,EAAU9C,EAAuBgD,GAEjC0B,EAASnI,EAAQ,+DAEjB0H,EAAUjE,EAAuB0E,GAEjCiD,EAAmBpL,EAAQ,uEAE3B8K,EAAoBrH,EAAuB2H,EAc/C7E,GAAAA,WAAgBI,gBACdzD,KAAM,oBACNmC,YAAaA,EACbE,MAAO,YAGN8F,uEAAuE,GAAGzE,qDAAqD,GAAGyB,8DAA8D,IAAIiD,sEAAsE,MAAMC,IAAI,SAASvL,EAAQU,EAAOJ,GAC/S,YAeA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAAS2B,GAAYI,GACnB+F,EAAAA,WAAoBlF,KAAKb,EAAQe,IAAI,YAAYiF,YAhBnDhH,OAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAAA,WAAkB+E,CAElB,IAAIoB,GAASzG,EAAQ,sDAEjBuG,EAAU9C,EAAuBgD,GAEjCiF,EAAa1L,EAAQ,oEAErBwL,EAAc/H,EAAuBiI,EAQzCnF,GAAAA,WAAgBI,gBACdzD,KAAM,aACNmC,YAAaA,MAGZuB,qDAAqD,GAAG+E,mEAAmE,KAAKC,IAAI,SAAS5L,EAAQU,EAAOJ,GAC/J,YAmBA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAAS2B,KACH2E,SAASC,eAAe,mCACzB,EAAGlD,EAAAA,YAA0B8E,EAAAA,WAAiC,iCAAiC,GArBpGpH,OAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAAA,WAAkB+E,CAElB,IAAIoB,GAASzG,EAAQ,sDAEjBuG,EAAU9C,EAAuBgD,GAEjCqF,EAAyB9L,EAAQ,mFAEjC6L,EAA0BpI,EAAuBqI,GAEjDzE,EAAkBrH,EAAQ,sEAE1B+G,EAAmBtD,EAAuB4D,EAU9Cd,GAAAA,WAAgBI,gBACdzD,KAAM,oCACNmC,YAAaA,EACbE,MAAO,YAGNwG,kFAAkF,GAAGnF,qDAAqD,GAAGW,qEAAqE,MAAMyE,IAAI,SAAShM,EAAQU,EAAOJ,GACvP,YAmBA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAAS2B,KACH2E,SAASC,eAAe,kCACzB,EAAGlD,EAAAA,YAA0BkF,EAAAA,WAAgC,gCAAgC,GArBlGxH,OAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAAA,WAAkB+E,CAElB,IAAIoB,GAASzG,EAAQ,sDAEjBuG,EAAU9C,EAAuBgD,GAEjCyF,EAAwBlM,EAAQ,kFAEhCiM,EAAyBxI,EAAuByI,GAEhD7E,EAAkBrH,EAAQ,sEAE1B+G,EAAmBtD,EAAuB4D,EAU9Cd,GAAAA,WAAgBI,gBACdzD,KAAM,mCACNmC,YAAaA,EACbE,MAAO,YAGN4G,iFAAiF,GAAGvF,qDAAqD,GAAGW,qEAAqE,MAAM6E,IAAI,SAASpM,EAAQU,EAAOJ,GACtP,YAmBA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAAS2B,KACH2E,SAASC,eAAe,+BACzB,EAAGlD,EAAAA,YAA0BsF,EAAAA,WAA6B,6BAA6B,GArB5F5H,OAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAAA,WAAkB+E,CAElB,IAAIoB,GAASzG,EAAQ,sDAEjBuG,EAAU9C,EAAuBgD,GAEjC6F,EAAqBtM,EAAQ,+EAE7BqM,EAAsB5I,EAAuB6I,GAE7CjF,EAAkBrH,EAAQ,sEAE1B+G,EAAmBtD,EAAuB4D,EAU9Cd,GAAAA,WAAgBI,gBACdzD,KAAM,gCACNmC,YAAaA,EACbE,MAAO,YAGNgH,8EAA8E,GAAG3F,qDAAqD,GAAGW,qEAAqE,MAAMiF,IAAI,SAASxM,EAAQU,EAAOJ,GACnP,YAmBA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAAS2B,MACN,EAAG0B,EAAAA,aAA2B,EAAGC,EAAYC,SAASuC,EAAUrC,QAAQqC,EAAUiD,UAAW,kBApBhGhI,OAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAAA,WAAkB+E,CAElB,IAAI2B,GAAchH,EAAQ,eAEtByG,EAASzG,EAAQ,sDAEjBuG,EAAU9C,EAAuBgD,GAEjC+C,EAAYxJ,EAAQ,oEAEpBqH,EAAkBrH,EAAQ,sEAE1B+G,EAAmBtD,EAAuB4D,EAQ9Cd,GAAAA,WAAgBI,gBACdzD,KAAM,qBACNmC,YAAaA,EACbE,MAAO,eAGNmH,mEAAmE,GAAG9F,qDAAqD,GAAGW,qEAAqE,IAAIC,cAAc,gBAAgBmF,IAAI,SAAS3M,EAAQU,EAAOJ,GACpQ,YAmBA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAAS2B,KACPqC,EAAAA,WAAgBC,WAAW,WAAY0B,EAAAA,WAAoBG,EAAUtB,cApBvEzD,OAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAAA,WAAkB+E,CAElB,IAAIoB,GAASzG,EAAQ,sDAEjBuG,EAAU9C,EAAuBgD,GAEjC+C,EAAYxJ,EAAQ,kEAEpBqJ,EAAa5F,EAAuB+F,GAEpCrB,EAASnI,EAAQ,+DAEjB0H,EAAUjE,EAAuB0E,EAQrC5B,GAAAA,WAAgBI,gBACdzD,KAAM,mBACNmC,YAAaA,EACbG,OAAQ,YAGPoB,qDAAqD,GAAGgG,iEAAiE,GAAGvE,8DAA8D,MAAMwE,IAAI,SAAS7M,EAAQU,EAAOJ,GAC/N,YAmBA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAAS2B,KACPgE,EAAAA,WAAmB/C,KAAKoB,EAAAA,YApB1BjD,OAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAAA,WAAkB+E,CAElB,IAAIoB,GAASzG,EAAQ,sDAEjBuG,EAAU9C,EAAuBgD,GAEjC+C,EAAYxJ,EAAQ,kEAEpBqJ,EAAa5F,EAAuB+F,GAEpCrB,EAASnI,EAAQ,+DAEjB0H,EAAUjE,EAAuB0E,EAQrC5B,GAAAA,WAAgBI,gBACdzD,KAAM,WACNmC,YAAaA,EACbE,MAAO,YAGNqB,qDAAqD,GAAG+C,iEAAiE,GAAGtB,8DAA8D,MAAMyE,IAAI,SAAS9M,EAAQU,EAAOJ,GAC/N,YAeA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAAS2B,KACPqC,EAAAA,WAAgBpB,OAhBlB7B,OAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAAA,WAAkB+E,CAElB,IAAIoB,GAASzG,EAAQ,sDAEjBuG,EAAU9C,EAAuBgD,GAEjC0B,EAASnI,EAAQ,+DAEjB0H,EAAUjE,EAAuB0E,EAQrC5B,GAAAA,WAAgBI,gBACdzD,KAAM,QACNmC,YAAaA,EACbG,OAAQ,WAGPoB,qDAAqD,GAAGyB,8DAA8D,MAAM0E,IAAI,SAAS/M,EAAQU,EAAOJ,GAC3J,YAmBA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAAS2B,KACPqC,EAAAA,WAAgBC,WAAW,OAAQqF,EAAAA,WAAgBC,EAAM/E,cApB3DzD,OAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAAA,WAAkB+E,CAElB,IAAIoB,GAASzG,EAAQ,sDAEjBuG,EAAU9C,EAAuBgD,GAEjCwG,EAAQjN,EAAQ,8DAEhBgN,EAASvJ,EAAuBwJ,GAEhC9E,EAASnI,EAAQ,+DAEjB0H,EAAUjE,EAAuB0E,EAQrC5B,GAAAA,WAAgBI,gBACdzD,KAAM,eACNmC,YAAaA,EACbG,OAAQ,YAGPoB,qDAAqD,GAAGsG,6DAA6D,GAAG7E,8DAA8D,MAAM8E,IAAI,SAASnN,EAAQU,EAAOJ,GAC3N,YAiBA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAIvF,QAAS2B,KACPa,OAAOkH,YAAY,WACjB1F,EAAAA,WAAgB2F,UAAU,EAAGJ,EAAMK,YAClCC,GAtBL9I,OAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAAA,WAAkB+E,CAElB,IAAIoB,GAASzG,EAAQ,sDAEjBuG,EAAU9C,EAAuBgD,GAEjCwG,EAAQjN,EAAQ,8DAEhBmI,EAASnI,EAAQ,+DAEjB0H,EAAUjE,EAAuB0E,GAIjCoF,EAAc,GAQlBhH,GAAAA,WAAgBI,gBACdzD,KAAM,aACNmC,YAAaA,EACbE,MAAO,YAGNqB,qDAAqD,GAAGsG,6DAA6D,GAAG7E,8DAA8D,MAAMmF,IAAI,SAASxN,EAAQU,EAAOJ,GAC3N,YAmBA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAAS2B,MACN,EAAG0B,EAAAA,aAA2B,EAAGC,EAAYC,SAASkE,EAAMhE,QAAQgE,EAAMsC,UAAW,oBACrF,EAAG1G,EAAAA,aAA2B,EAAGC,EAAYC,SAASkE,EAAMhE,QAAQgE,EAAMuC,iBAAkB,2BArB/FjJ,OAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAAA,WAAkB+E,CAElB,IAAI2B,GAAchH,EAAQ,eAEtByG,EAASzG,EAAQ,sDAEjBuG,EAAU9C,EAAuBgD,GAEjC0E,EAAQnL,EAAQ,0EAEhBqH,EAAkBrH,EAAQ,sEAE1B+G,EAAmBtD,EAAuB4D,EAS9Cd,GAAAA,WAAgBI,gBACdzD,KAAM,sBACNmC,YAAaA,EACbE,MAAO,YAGNoI,yEAAyE,GAAG/G,qDAAqD,GAAGW,qEAAqE,IAAIC,cAAc,gBAAgBoG,IAAI,SAAS5N,EAAQU,EAAOJ,GAC1Q,YAmBA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAAS2B,KACPqC,EAAAA,WAAgBC,WAAW,mBAAoBkG,EAAAA,eApBjDpJ,OAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAAA,WAAkB+E,CAElB,IAAIoB,GAASzG,EAAQ,sDAEjBuG,EAAU9C,EAAuBgD,GAEjCqH,EAAmB9N,EAAQ,0EAE3B6N,EAAoBpK,EAAuBqK,GAE3C3F,EAASnI,EAAQ,+DAEjB0H,EAAUjE,EAAuB0E,EAQrC5B,GAAAA,WAAgBI,gBACdzD,KAAM,2BACNmC,YAAaA,EACbG,OAAQ,YAGPoB,qDAAqD,GAAGmH,yEAAyE,GAAG1F,8DAA8D,MAAM2F,IAAI,SAAShO,EAAQU,EAAOJ,GACvO,YAuBA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAAS2B,GAAYI,GACfA,EAAQM,IAAI,iBACb,EAAG+E,EAAAA,aACFC,KAAMxE,EAAAA,WAAgBC,IAAI,kBAC1BwE,UAAWC,EAAAA,WACXC,OAAQ,EAAGC,EAAMD,OAAOxD,EAAAA,cA5B9BjD,OAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAAA,WAAkB+E,CAElB,IAAI8F,GAAQnL,EAAQ,sEAEhBiL,EAASxH,EAAuB0H,GAEhC1E,EAASzG,EAAQ,sDAEjBuG,EAAU9C,EAAuBgD,GAEjC0B,EAASnI,EAAQ,+DAEjB0H,EAAUjE,EAAuB0E,GAEjCiD,EAAmBpL,EAAQ,uEAE3B8K,EAAoBrH,EAAuB2H,EAc/C7E,GAAAA,WAAgBI,gBACdzD,KAAM,kBACNmC,YAAaA,EACbE,MAAO,YAGN0I,qEAAqE,GAAGrH,qDAAqD,GAAGyB,8DAA8D,IAAIiD,sEAAsE,MAAM4C,IAAI,SAASlO,EAAQU,EAAOJ,GAC7S,YAmBA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAAS2B,KACPqC,EAAAA,WAAgBC,WAAW,QAASwG,EAAAA,eApBtC1J,OAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAAA,WAAkB+E,CAElB,IAAIoB,GAASzG,EAAQ,sDAEjBuG,EAAU9C,EAAuBgD,GAEjC2H,EAASpO,EAAQ,+DAEjBmO,EAAU1K,EAAuB2K,GAEjCjG,EAASnI,EAAQ,+DAEjB0H,EAAUjE,EAAuB0E,EAQrC5B,GAAAA,WAAgBI,gBACdzD,KAAM,gBACNmC,YAAaA,EACbG,OAAQ,YAGPoB,qDAAqD,GAAGyH,8DAA8D,GAAGhG,8DAA8D,MAAMiG,IAAI,SAAStO,EAAQU,EAAOJ,GAC5N,YAmBA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAAS2B,KACPkJ,EAAAA,WAAiBjI,KAAK8C,EAAAA,YApBxB3E,OAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAAA,WAAkB+E,CAElB,IAAIoB,GAASzG,EAAQ,sDAEjBuG,EAAU9C,EAAuBgD,GAEjC8C,EAAWvJ,EAAQ,iEAEnBoJ,EAAY3F,EAAuB8F,GAEnCiF,EAAUxO,EAAQ,gEAElBuO,EAAW9K,EAAuB+K,EAQtCjI,GAAAA,WAAgBI,gBACdzD,KAAM,SACNmC,YAAaA,MAGZuB,qDAAqD,GAAG8C,gEAAgE,GAAG+E,+DAA+D,MAAMC,IAAI,SAAS1O,EAAQU,EAAOJ,GA8B/N,QAASqO,GAAkB7J,GACzB,MAAiB,QAAVA,GAA4BE,SAAVF,EAG3B,QAAS8J,GAAUC,GACjB,MAAKA,IAAkB,gBAANA,IAAsC,gBAAbA,GAAErO,OACtB,kBAAXqO,GAAEC,MAA0C,kBAAZD,GAAEE,OACpC,EAELF,EAAErO,OAAS,GAAqB,gBAATqO,GAAE,IAAwB,GAC9C,GALiE,EAQ1E,QAASG,GAASjP,EAAGkP,EAAGC,GACtB,GAAIjP,GAAG0E,CACP,IAAIgK,EAAkB5O,IAAM4O,EAAkBM,GAC5C,OAAO,CAET,IAAIlP,EAAEmC,YAAc+M,EAAE/M,UAAW,OAAO,CAGxC,IAAIiN,EAAYpP,GACd,MAAKoP,GAAYF,IAGjBlP,EAAIqP,EAAO7O,KAAKR,GAChBkP,EAAIG,EAAO7O,KAAK0O,GACTI,EAAUtP,EAAGkP,EAAGC,KAJd,CAMX,IAAIN,EAAS7O,GAAI,CACf,IAAK6O,EAASK,GACZ,OAAO,CAET,IAAIlP,EAAES,SAAWyO,EAAEzO,OAAQ,OAAO,CAClC,KAAKP,EAAI,EAAGA,EAAIF,EAAES,OAAQP,IACxB,GAAIF,EAAEE,KAAOgP,EAAEhP,GAAI,OAAO,CAE5B,QAAO,EAET,IACE,GAAIqP,GAAKC,EAAWxP,GAChByP,EAAKD,EAAWN,GACpB,MAAOzP,GACP,OAAO,EAIT,GAAI8P,EAAG9O,QAAUgP,EAAGhP,OAClB,OAAO,CAKT,KAHA8O,EAAGG,OACHD,EAAGC,OAEExP,EAAIqP,EAAG9O,OAAS,EAAGP,GAAK,EAAGA,IAC9B,GAAIqP,EAAGrP,IAAMuP,EAAGvP,GACd,OAAO,CAIX,KAAKA,EAAIqP,EAAG9O,OAAS,EAAGP,GAAK,EAAGA,IAE9B,GADA0E,EAAM2K,EAAGrP,IACJoP,EAAUtP,EAAE4E,GAAMsK,EAAEtK,GAAMuK,GAAO,OAAO,CAE/C,cAAcnP,UAAakP,GA5F7B,GAAIG,GAASrN,MAAMG,UAAU6M,MACzBQ,EAAavP,EAAQ,iBACrBmP,EAAcnP,EAAQ,yBAEtBqP,EAAY3O,EAAOJ,QAAU,SAAUoP,EAAQC,EAAUT,GAG3D,MAFKA,KAAMA,MAEPQ,IAAWC,GACN,EAEED,YAAkBE,OAAQD,YAAoBC,MAChDF,EAAOG,YAAcF,EAASE,WAI3BH,IAAWC,GAA6B,gBAAVD,IAAyC,gBAAZC,GAC9DT,EAAKY,OAASJ,IAAWC,EAAWD,GAAUC,EAS9CX,EAASU,EAAQC,EAAUT,MAsEnCa,wBAAwB,GAAGC,gBAAgB,KAAKC,IAAI,SAASjQ,EAAQU,EAAOJ,GAQ/E,QAAS4P,GAAUC,GACjB,MAAiD,sBAA1C1L,OAAOvC,UAAUkO,SAAS7P,KAAK4P,GAIxC,QAASE,GAAYF,GACnB,MAAOA,IACY,gBAAVA,IACiB,gBAAjBA,GAAO3P,QACdiE,OAAOvC,UAAUoO,eAAe/P,KAAK4P,EAAQ,YAC5C1L,OAAOvC,UAAUqO,qBAAqBhQ,KAAK4P,EAAQ,YACpD,EAlBJ,GAAIK,GAEI,sBAFqB,WAC3B,MAAO/L,QAAOvC,UAAUkO,SAAS7P,KAAKyB,aAGxC1B,GAAUI,EAAOJ,QAAUkQ,EAAyBN,EAAYG,EAEhE/P,EAAQ4P,UAAYA,EAKpB5P,EAAQ+P,YAAcA,OAUhBI,IAAI,SAASzQ,EAAQU,EAAOJ,GAKlC,QAASoQ,GAAMhN,GACb,GAAIiN,KACJ,KAAK,GAAIhM,KAAOjB,GAAKiN,EAAK1O,KAAK0C,EAC/B,OAAOgM,GAPTrQ,EAAUI,EAAOJ,QAAiC,kBAAhBmE,QAAOkM,KACrClM,OAAOkM,KAAOD,EAElBpQ,EAAQoQ,KAAOA,OAOTE,IAAI,SAAS5Q,EAAQU,EAAOJ,GAIlC,YAEAA,GAAQqD,YAAa,CACrB,IAAIkN,GAAO,MAEXvQ,GAAQuQ,KAAOA,CAIf,IAAIC,GAAU,SAEdxQ,GAAQwQ,QAAUA,CASlB,IAAIC,GAAM,KAEVzQ,GAAQyQ,IAAMA,EACdzQ,EAAQ,YACNuQ,KAAMA,EACNC,QAASA,EACTC,IAAKA,QAEDC,IAAI,SAAShR,EAAQU,EAAOJ,GAClC,YAKA,SAAS2Q,GAAUC,EAAOC,EAAMC,GAI9B,QAASC,KACPC,GAAS,EACTF,EAASjP,MAAMT,KAAMM,WAGvB,QAASuP,KACHD,IAEcJ,EAAdM,EACFL,EAAK5Q,KAAKmB,KAAM8P,IAAeD,EAAMF,GAErCA,EAAKlP,MAAMT,KAAMM,YAdrB,GAAIwP,GAAc,EACdF,GAAS,CAiBbC,KAtBFjR,EAAQqD,YAAa,EACrBrD,EAAQ2Q,UAAYA,OAuBdQ,IAAI,SAASzR,EAAQU,EAAOJ,IAClC,SAAWsB,GAEX,YAMA,SAAS6B,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAAWF,GAUzF,QAASgO,GAAU/M,GACjB,MAAOgN,GAAYhN,EAGrB,QAASiN,GAAUjN,EAAKkN,GACtB,IACE3L,OAAO4L,eAAeC,QAAQL,EAAU/M,GAAMqN,KAAKC,UAAUJ,IAC7D,MAAOK,GACP,GAAIA,EAAMhP,OAASiP,EAKjB,YAFyB,eAAzBvQ,EAAQU,IAAI8P,SAA4BC,EAAU,YAAW,EAAO,4FAA8FrN,OAKpK,IAAIkN,EAAMhP,OAASoP,GAAuD,IAAjCpM,OAAO4L,eAAetR,OAI7D,YAFyB,eAAzBoB,EAAQU,IAAI8P,SAA4BC,EAAU,YAAW,EAAO,0FAA4FrN,OAKlK,MAAMkN,IAIV,QAASK,GAAU5N,GACjB,GAAI6N,GAAOxN,MACX,KACEwN,EAAOtM,OAAO4L,eAAeW,QAAQf,EAAU/M,IAC/C,MAAOuN,GACP,GAAIA,EAAMhP,OAASiP,EAKjB,MAFyB,eAAzBvQ,EAAQU,IAAI8P,SAA4BC,EAAU,YAAW,EAAO,4FAA8FrN,OAE3J,KAIX,GAAIwN,EACF,IACE,MAAOR,MAAKU,MAAMF,GAClB,MAAON,IAKX,MAAO,MA/DT5R,EAAQqD,YAAa,EACrBrD,EAAQsR,UAAYA,EACpBtR,EAAQiS,UAAYA,CAIpB,IAAII,GAAW3S,EAAQ,WAEnBqS,EAAY5O,EAAuBkP,GAEnChB,EAAY,aACZW,EAAqB,qBACrBH,EAAgB,kBAqDjB5R,KAAKmB,KAAK1B,EAAQ,eAClB4S,SAAW,EAAEC,QAAU,KAAKC,IAAI,SAAS9S,EAAQU,EAAOJ,GAC3D,YAaA,SAASyS,GAAiBC,EAAMC,EAAOC,GACjCF,EAAKD,iBACPC,EAAKD,iBAAiBE,EAAOC,GAAU,GAEvCF,EAAKG,YAAY,KAAOF,EAAOC,GAInC,QAASE,GAAoBJ,EAAMC,EAAOC,GACpCF,EAAKI,oBACPJ,EAAKI,oBAAoBH,EAAOC,GAAU,GAE1CF,EAAKK,YAAY,KAAOJ,EAAOC,GAInC,QAASI,KAGP,MAAOpN,QAAOqN,SAASC,KAAKC,MAAM,KAAK,IAAM,GAG/C,QAASC,GAAgBC,GACvBzN,OAAOqN,SAASK,QAAQ1N,OAAOqN,SAASM,SAAW3N,OAAOqN,SAASO,OAAS,IAAMH,GAGpF,QAASI,KACP,MAAO7N,QAAOqN,SAASM,SAAW3N,OAAOqN,SAASO,OAAS5N,OAAOqN,SAASS,KAG7E,QAASC,GAAGvU,GACNA,GAAGwG,OAAOgO,QAAQD,GAAGvU,GAG3B,QAASyU,GAAoBC,EAAShD,GACpCA,EAASlL,OAAOmO,QAAQD,IAW1B,QAASE,KACP,GAAIC,GAAKC,UAAUC,SACnB,OAAkC,KAA7BF,EAAGG,QAAQ,eAAsD,KAA9BH,EAAGG,QAAQ,gBAA0D,KAAhCH,EAAGG,QAAQ,kBAAoD,KAAzBH,EAAGG,QAAQ,WAAoD,KAAhCH,EAAGG,QAAQ,iBAKjI,KAAxBH,EAAGG,QAAQ,UACN,EAEFxO,OAAOgO,SAAW,aAAehO,QAAOgO,SAPtC,EAcX,QAASS,KACP,GAAIJ,GAAKC,UAAUC,SACnB,OAAiC,KAA1BF,EAAGG,QAAQ,WA5EpBpU,EAAQqD,YAAa,EACrBrD,EAAQyS,iBAAmBA,EAC3BzS,EAAQ8S,oBAAsBA,EAC9B9S,EAAQgT,YAAcA,EACtBhT,EAAQoT,gBAAkBA,EAC1BpT,EAAQyT,cAAgBA,EACxBzT,EAAQ2T,GAAKA,EACb3T,EAAQ6T,oBAAsBA,EAC9B7T,EAAQgU,gBAAkBA,EAC1BhU,EAAQqU,iCAAmCA,OAqErCC,IAAI,SAAS5U,EAAQU,EAAOJ,GAClC,YAEAA,GAAQqD,YAAa,CACrB,IAAIkR,KAAiC,mBAAX3O,UAA0BA,OAAO8D,WAAY9D,OAAO8D,SAAS8K,cACvFxU,GAAQuU,UAAYA,OACdE,IAAI,SAAS/U,EAAQU,EAAOJ,IAClC,SAAWsB,GACX,YAMA,SAAS6B,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAAWF,GA+BzF,QAASsR,KAUP,QAASC,GAAmBC,GAC1BA,EAAeA,GAAgBhP,OAAOgO,QAAQrC,SAE9C,IAAI8B,GAAOwB,EAAUpB,gBACjBqB,EAAgBF,EAChBvQ,EAAMyQ,EAAczQ,IAEpBkN,EAAQ7M,MACRL,GACFkN,EAAQwD,EAAiB9C,UAAU5N,IAEnCkN,EAAQ,KACRlN,EAAMuP,EAAQxC,YAEV4D,GAAapP,OAAOgO,QAAQqB,aAAaC,KAAaN,GAAgBvQ,IAAKA,IAAQ,KAAMgP,GAG/F,IAAIJ,GAAWkC,EAAY,WAAW9B,EAEtC,OAAOO,GAAQwB,eAAeF,KAAajC,GAAY1B,MAAOA,IAAU7M,OAAWL,GAGrF,QAASgR,GAAsBC,GAG7B,QAASC,GAAiB5C,GACJjO,SAAhBiO,EAAMpB,OAEViE,EAAab,EAAmBhC,EAAMpB,QALxC,GAAIiE,GAAeF,EAAKE,YAUxB,OAFAX,GAAUpC,iBAAiB7M,OAAQ,WAAY2P,GAExC,WACLV,EAAU/B,oBAAoBlN,OAAQ,WAAY2P,IAItD,QAASE,GAAiBxC,GACxB,GAAIyC,GAAWzC,EAASyC,SACpBnC,EAAWN,EAASM,SACpBC,EAASP,EAASO,OAClBE,EAAOT,EAASS,KAChBnC,EAAQ0B,EAAS1B,MACjBoE,EAAS1C,EAAS0C,OAClBtR,EAAM4O,EAAS5O,GAEnB,IAAIsR,IAAWC,EAASnF,IAAxB,CAEAsE,EAAiBzD,UAAUjN,EAAKkN,EAEhC,IAAI8B,IAAQqC,GAAY,IAAMnC,EAAWC,EAASE,EAC9CkB,GACFvQ,IAAKA,EAGP,IAAIsR,IAAWC,EAASrF,KAAM,CAC5B,GAAIsF,EAEF,MADAjQ,QAAOqN,SAASC,KAAOG,GAChB,CAELzN,QAAOgO,QAAQkC,UAAUlB,EAAc,KAAMvB,OAE5C,CAEL,GAAIwC,EAEF,MADAjQ,QAAOqN,SAASK,QAAQD,IACjB,CAELzN,QAAOgO,QAAQqB,aAAaL,EAAc,KAAMvB,KAcxD,QAAS0C,GAAanD,GACI,MAAlBoD,IAAqBC,EAAuBZ,EAAsBzB,GAExE,IAAIsC,GAAWtC,EAAQmC,aAAanD,EAEpC,OAAO,YACLsD,IAEwB,MAAlBF,GAAqBC,KAI/B,QAASE,GAAOvD,GACU,MAAlBoD,IAAqBC,EAAuBZ,EAAsBzB,GAExE,IAAIsC,GAAWtC,EAAQuC,OAAOvD,EAE9B,OAAO,YACLsD,IAEwB,MAAlBF,GAAqBC,KAK/B,QAASG,GAAuBC,GACN,MAAlBL,IAAqBC,EAAuBZ,EAAsBzB,IAExEA,EAAQwC,uBAAuBC,GAIjC,QAASC,GAAyBD,GAChCzC,EAAQ0C,yBAAyBD,GAET,MAAlBL,GAAqBC,IA/H7B,GAAIM,GAAU7U,UAAUxB,QAAU,GAAsBwE,SAAjBhD,UAAU,MAAwBA,UAAU,EAElF8U,GAAsBjC,UAAmJ7P,OAA9G,eAAzBpD,EAAQU,IAAI8P,SAA4B2E,EAAY,YAAW,EAAO,+BAAiCA,EAAY,YAAW,EAEjK,IAAIC,GAAeH,EAAQG,aAEvB1B,EAAcH,EAAUb,kBACxB6B,GAAcb,GAAe0B,EA4E7B9C,EAAU+C,EAAmB,WAAWzB,KAAaqB,GACvD5B,mBAAoBA,EACpBc,iBAAkBA,EAClBnE,UAAWyD,EAAiBzD,aAG1B0E,EAAgB,EAChBC,EAAuBvR,MAwC3B,OAAOwQ,MAAatB,GAClBmC,aAAcA,EACdI,OAAQA,EACRC,uBAAwBA,EACxBE,yBAA0BA,IA1K9BtW,EAAQqD,YAAa,CAErB,IAAI6R,GAAW/Q,OAAOoD,QAAU,SAAU1D,GAAU,IAAK,GAAIlE,GAAI,EAAGA,EAAI+B,UAAUxB,OAAQP,IAAK,CAAE,GAAIiX,GAASlV,UAAU/B,EAAI,KAAK,GAAI0E,KAAOuS,GAAczS,OAAOvC,UAAUoO,eAAe/P,KAAK2W,EAAQvS,KAAQR,EAAOQ,GAAOuS,EAAOvS,IAAY,MAAOR,IAInPgT,EAAanX,EAAQ,aAErB+W,EAActT,EAAuB0T,GAErCjB,EAAWlW,EAAQ,aAEnB8W,EAAwB9W,EAAQ,0BAEhCmV,EAAYnV,EAAQ,cAEpBqV,EAAmBrV,EAAQ,qBAE3BoX,EAAoBpX,EAAQ,sBAE5BiX,EAAqBxT,EAAuB2T,GAE5CC,EAAarX,EAAQ,eAErByV,EAAchS,EAAuB4T,EAsJzC/W,GAAQ,WAAa0U,EACrBtU,EAAOJ,QAAUA,EAAQ,aACtBC,KAAKmB,KAAK1B,EAAQ,eAClBsX,YAAY,GAAGC,oBAAoB,GAAGC,aAAa,GAAGC,yBAAyB,GAAGC,qBAAqB,GAAGC,cAAc,GAAG/E,SAAW,EAAEgF,UAAY,KAAKC,IAAI,SAAS7X,EAAQU,EAAOJ,IACxL,SAAWsB,GACX,YAMA,SAAS6B,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAAWF,GAczF,QAASoU,GAAiBjB,GAOxB,QAASJ,GAAOvD,GAGd,MAFC4D,GAAsBjC,UAA+I7P,OAA1G,eAAzBpD,EAAQU,IAAI8P,SAA4B2E,EAAY,YAAW,EAAO,2BAA6BA,EAAY,YAAW,GAEtJ7C,EAAQuC,OAAOvD,GATxB,GAAIgB,GAAU6D,EAAgB,WAAWvC,GACvCrB,oBAAqBgB,EAAUhB,qBAC9B0C,GACD5C,GAAIkB,EAAUlB,KAShB,OAAOuB,MAAatB,GAClBuC,OAAQA,IAhCZnW,EAAQqD,YAAa,CAErB,IAAI6R,GAAW/Q,OAAOoD,QAAU,SAAU1D,GAAU,IAAK,GAAIlE,GAAI,EAAGA,EAAI+B,UAAUxB,OAAQP,IAAK,CAAE,GAAIiX,GAASlV,UAAU/B,EAAI,KAAK,GAAI0E,KAAOuS,GAAczS,OAAOvC,UAAUoO,eAAe/P,KAAK2W,EAAQvS,KAAQR,EAAOQ,GAAOuS,EAAOvS,IAAY,MAAOR,IAInPgT,EAAanX,EAAQ,aAErB+W,EAActT,EAAuB0T,GAErCL,EAAwB9W,EAAQ,0BAEhCmV,EAAYnV,EAAQ,cAEpBgY,EAAiBhY,EAAQ,mBAEzB+X,EAAkBtU,EAAuBuU,EAoB7C1X,GAAQ,WAAawX,EACrBpX,EAAOJ,QAAUA,EAAQ,aACtBC,KAAKmB,KAAK1B,EAAQ,eAClBwX,aAAa,GAAGC,yBAAyB,GAAGQ,kBAAkB,GAAGrF,SAAW,EAAEgF,UAAY,KAAKM,IAAI,SAASlY,EAAQU,EAAOJ,GAE9H,YAMA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAAWF,GA0BzF,QAASyU,GAAgB3X,GACvB,MAAO4X,MAAKC,SAASjI,SAAS,IAAIkI,OAAO,EAAG9X,GAG9C,QAAS+X,GAAkBxY,EAAGkP,GAC5B,MAAOlP,GAAE8T,WAAa5E,EAAE4E,UAAY9T,EAAE+T,SAAW7E,EAAE6E,QAEnD/T,EAAE4E,MAAQsK,EAAEtK,KAAO6T,EAAY,WAAWzY,EAAE8R,MAAO5C,EAAE4C,OAKvD,QAAS4G,KAaP,QAASpC,GAAaM,GAGpB,MAFA+B,GAAgBzW,KAAK0U,GAEd,WACL+B,EAAkBA,EAAgBC,OAAO,SAAUrT,GACjD,MAAOA,KAASqR,KAStB,QAASiC,KACP,MAAIC,IAAmBA,EAAgB5C,SAAWC,EAASnF,IAClD+H,EAAQpE,QAAQmE,EAAgBlU,KAC9B4O,EACFuF,EAAQpE,QAAQnB,EAAS5O,KAEzB,GAIX,QAASoU,GAAeC,GACtB,GAAIC,GAAUL,GAEdrF,GAAWyF,EAEPzF,EAAS0C,SAAWC,EAASrF,KAC/BiI,KAAa/X,OAAO+X,EAAQ/J,MAAM,EAAGkK,EAAU,IAAK1F,EAAS5O,MACpD4O,EAAS0C,SAAWC,EAASpF,UACtCgI,EAAQG,GAAW1F,EAAS5O,KAG9BuU,EAAgBrT,QAAQ,SAAUqN,GAChCA,EAASK,KAIb,QAASkD,GAAOvD,GAGd,GAFAgG,EAAgBjX,KAAKiR,GAEjBK,EACFL,EAASK,OACJ,CACL,GAAI4F,GAAYlE,GAChB6D,IAAWK,EAAUxU,KACrBoU,EAAeI,GAGjB,MAAO,YACLD,EAAkBA,EAAgBP,OAAO,SAAUrT,GACjD,MAAOA,KAAS4N,KAKtB,QAASkG,GAAoB7F,EAAUnC,GACrCiI,EAAYpI,UAAUyH,EAAgBlY,OAAQ,SAAU8Y,EAAO/H,EAAMF,GACnEkI,EAAoB,WAAWb,EAAgBY,GAAQ/F,EAAU,SAAUiG,GAC3D,MAAVA,EACFnI,EAAKmI,GAELjI,OAGH,SAAU6C,GACPD,GAA0C,gBAAZC,GAChCD,EAAoBC,EAAS,SAAUqF,GACrCrI,EAASqI,KAAO,KAGlBrI,EAASgD,KAAY,KAO3B,QAAS0B,GAAa4D,GAChBnG,GAAYgF,EAAkBhF,EAAUmG,KAE5Cb,EAAkBa,EAElBN,EAAoBM,EAAc,SAAUD,GAC1C,GAAIZ,IAAoBa,EAExB,GAAID,EAAI,CAEN,GAAIC,EAAazD,SAAWC,EAASrF,KAAM,CACzC,GAAI8I,GAAWC,EAAWrG,GACtBsG,EAAWD,EAAWF,EAEtBG,KAAaF,IAAUD,EAAazD,OAASC,EAASpF,SAGxDiF,EAAiB2D,MAAkB,GAAOX,EAAeW,OACxD,IAAInG,GAAYmG,EAAazD,SAAWC,EAASnF,IAAK,CAC3D,GAAI+I,GAAYhB,EAAQpE,QAAQnB,EAAS5O,KACrCoV,EAAYjB,EAAQpE,QAAQgF,EAAa/U,IAE3B,MAAdmV,GAAkC,KAAdC,GAAkB9F,EAAG6F,EAAYC,OAK/D,QAAS9X,GAAKsR,GACZuC,EAAaJ,EAAenC,EAAU2C,EAASrF,KAAMa,MAGvD,QAASkC,GAAQL,GACfuC,EAAaJ,EAAenC,EAAU2C,EAASpF,QAASY,MAG1D,QAASsI,KACP/F,EAAG,IAGL,QAASgG,KACPhG,EAAG,GAGL,QAASvC,KACP,MAAOyG,GAAgB+B,GAGzB,QAASN,GAAWrG,GAClB,GAAgB,MAAZA,GAAwC,gBAAbA,GAAuB,MAAOA,EAE7D,IAAIM,GAAWN,EAASM,SACpBC,EAASP,EAASO,OAClBE,EAAOT,EAASS,KAEhBwF,EAAS3F,CAMb,OAJIC,KAAQ0F,GAAU1F,GAElBE,IAAMwF,GAAUxF,GAEbwF,EAGT,QAASW,GAAW5G,GAClB,MAAOqG,GAAWrG,GAGpB,QAASmC,GAAenC,EAAU0C,GAChC,GAAItR,GAAM3C,UAAUxB,QAAU,GAAsBwE,SAAjBhD,UAAU,GAAmB0P,IAAc1P,UAAU,EAiBxF,OAfsB,gBAAXiU,KAOe,gBAAb1C,KAAuBA,EAAWkC,EAAY,WAAWlC,IAEpEA,EAAWiC,KAAajC,GAAY1B,MAAOoE,IAE3CA,EAAStR,EACTA,EAAM3C,UAAU,IAAM0P,KAGjB0I,EAAiB,WAAW7G,EAAU0C,EAAQtR,GAIvD,QAAS0V,GAASxI,GACZ0B,GACF+G,EAAoB/G,EAAU1B,GAC9BkH,EAAexF,IAEf+G,EAAoBrF,IAAsBpD,GAI9C,QAASyI,GAAoB/G,EAAU1B,GACrC0B,EAAS1B,MAAQ2D,KAAajC,EAAS1B,MAAOA,GAC9CD,EAAU2B,EAAS5O,IAAK4O,EAAS1B,OAInC,QAAS6E,GAAuBC,GACQ,KAAlC+B,EAAgBhE,QAAQiC,IAAc+B,EAAgBzW,KAAK0U,GAIjE,QAASC,GAAyBD,GAChC+B,EAAkBA,EAAgBC,OAAO,SAAUrT,GACjD,MAAOA,KAASqR,IAKpB,QAASP,GAAUvE,EAAO8B,GACJ,gBAATA,KAAmBA,EAAO8B,EAAY,WAAW9B,IAE5D1R,EAAKuT,GAAW3D,MAAOA,GAAS8B,IAIlC,QAAS4B,GAAa1D,EAAO8B,GACP,gBAATA,KAAmBA,EAAO8B,EAAY,WAAW9B,IAE5DC,EAAQ4B,GAAW3D,MAAOA,GAAS8B,IA1NrC,GAAIkD,GAAU7U,UAAUxB,QAAU,GAAsBwE,SAAjBhD,UAAU,MAAwBA,UAAU,GAC/EiT,EAAqB4B,EAAQ5B,mBAC7Bc,EAAmBc,EAAQd,iBAC3BnE,EAAYiF,EAAQjF,UACpBqC,EAAK4C,EAAQ5C,GACbiG,EAAYrD,EAAQqD,UACpB/F,EAAsB0C,EAAQ1C,mBAET,iBAAd+F,KAAwBA,EAAYK,EAE/C,IAAI7B,MAYAI,KACAI,KACA3F,EAAWvO,OAkEX6T,EAAkB7T,MAmItB,QACEqR,aAAcA,EACdI,OAAQA,EACRX,aAAcA,EACd7T,KAAMA,EACN2R,QAASA,EACTK,GAAIA,EACJ+F,OAAQA,EACRC,UAAWA,EACXvI,UAAWA,EACXkI,WAAYA,EACZO,WAAYA,EACZzE,eAAgBA;AAEhB2E,SAAUG,EAAY,WAAWH,EAAU,kEAC3C3D,uBAAwB8D,EAAY,WAAW9D,EAAwB,kEACvEE,yBAA0B4D,EAAY,WAAW5D,EAA0B,+FAC3ER,UAAWoE,EAAY,WAAWpE,EAAW,6CAC7Cb,aAAciF,EAAY,WAAWjF,EAAc,oDA1RvDjV,EAAQqD,YAAa,CAErB,IAAI6R,GAAW/Q,OAAOoD,QAAU,SAAU1D,GAAU,IAAK,GAAIlE,GAAI,EAAGA,EAAI+B,UAAUxB,OAAQP,IAAK,CAAE,GAAIiX,GAASlV,UAAU/B,EAAI,KAAK,GAAI0E,KAAOuS,GAAczS,OAAOvC,UAAUoO,eAAe/P,KAAK2W,EAAQvS,KAAQR,EAAOQ,GAAOuS,EAAOvS,IAAY,MAAOR,IAInPsW,EAAaza,EAAQ,cAErBwY,EAAc/U,EAAuBgX,GAErCpB,EAAcrZ,EAAQ,gBAEtBkW,EAAWlW,EAAQ,aAEnB0a,EAAmB1a,EAAQ,oBAE3Boa,EAAmB3W,EAAuBiX,GAE1CC,EAAqB3a,EAAQ,uBAE7BuZ,EAAsB9V,EAAuBkX,GAE7CtD,EAAarX,EAAQ,eAErByV,EAAchS,EAAuB4T,GAErCuD,EAAa5a,EAAQ,eAErBwa,EAAc/W,EAAuBmX,GAYrCL,EAAmB,CAsPvBja,GAAQ,WAAamY,EACrB/X,EAAOJ,QAAUA,EAAQ,aACtBgX,YAAY,GAAGuD,eAAe,GAAGC,mBAAmB,GAAGC,cAAc,GAAGpD,cAAc,GAAGqD,sBAAsB,GAAGC,aAAa,KAAKC,IAAI,SAASlb,EAAQU,EAAOJ,GAEnK,YAMA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAAWF,GAQzF,QAASgS,KACP,GAAInC,GAAWvR,UAAUxB,QAAU,GAAsBwE,SAAjBhD,UAAU,GAAmB,IAAMA,UAAU,GACjFiU,EAASjU,UAAUxB,QAAU,GAAsBwE,SAAjBhD,UAAU,GAAmBkU,EAASnF,IAAM/O,UAAU,GACxF2C,EAAM3C,UAAUxB,QAAU,GAAsBwE,SAAjBhD,UAAU,GAAmB,KAAOA,UAAU,GAE7EmZ,EAAanZ,UAAUxB,QAAU,GAAsBwE,SAAjBhD,UAAU,GAAmB,KAAOA,UAAU,EAEhE,iBAAbuR,KAAuBA,EAAWkC,EAAY,WAAWlC,IAE9C,gBAAX0C,KAOT1C,EAAWiC,KAAajC,GAAY1B,MAAOoE,IAE3CA,EAAStR,GAAOuR,EAASnF,IACzBpM,EAAMwW,EAGR,IAAItH,GAAWN,EAASM,UAAY,IAChCC,EAASP,EAASO,QAAU,GAC5BE,EAAOT,EAASS,MAAQ,GACxBnC,EAAQ0B,EAAS1B,OAAS,IAE9B,QACEgC,SAAUA,EACVC,OAAQA,EACRE,KAAMA,EACNnC,MAAOA,EACPoE,OAAQA,EACRtR,IAAKA,GA7CTrE,EAAQqD,YAAa,CAErB,IAAI6R,GAAW/Q,OAAOoD,QAAU,SAAU1D,GAAU,IAAK,GAAIlE,GAAI,EAAGA,EAAI+B,UAAUxB,OAAQP,IAAK,CAAE,GAAIiX,GAASlV,UAAU/B,EAAI,KAAK,GAAI0E,KAAOuS,GAAczS,OAAOvC,UAAUoO,eAAe/P,KAAK2W,EAAQvS,KAAQR,EAAOQ,GAAOuS,EAAOvS,IAAY,MAAOR,IAInP+R,EAAWlW,EAAQ,aAEnBqX,EAAarX,EAAQ,eAErByV,EAAchS,EAAuB4T,EAuCzC/W,GAAQ,WAAaoV,EACrBhV,EAAOJ,QAAUA,EAAQ,aACtBgX,YAAY,GAAGK,cAAc,KAAKyD,IAAI,SAASpb,EAAQU,EAAOJ,GAGjE,YAGA,SAAS+a,GAAUC,GACjB,MAAOA,GAFThb,EAAQqD,YAAa,EASrBrD,EAAQ,WAAa+a,EACrB3a,EAAOJ,QAAUA,EAAQ,gBACnBib,IAAI,SAASvb,EAAQU,EAAOJ,GAClC,YAGA,SAASkb,GAAYC,GACnB,GAAIC,GAAQD,EAAOC,MAAM,qBAEzB,OAAa,OAATA,EAAsBD,EAEnBA,EAAOE,UAAUD,EAAM,GAAGlb,QANnCF,EAAQqD,YAAa,EASrBrD,EAAQ,WAAakb,EACrB9a,EAAOJ,QAAUA,EAAQ,gBACnBsb,IAAI,SAAS5b,EAAQU,EAAOJ,IAClC,SAAWsB,GACX,YAIA,SAAS6B,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAAWF,GAUzF,QAASmY,GAAUlI,GACjB,GAAIE,GAAWiI,EAAc,WAAWnI,GACpCG,EAAS,GACTE,EAAO,EAEc,gBAAzBpS,EAAQU,IAAI8P,SAA4BC,EAAU,WAAWsB,IAASE,EAAU,oFAAqFF,GAAQ3O,MAE7K,IAAI+W,GAAYlI,EAASa,QAAQ,IACf,MAAdqH,IACF/H,EAAOH,EAAS8H,UAAUI,GAC1BlI,EAAWA,EAAS8H,UAAU,EAAGI,GAGnC,IAAIC,GAAcnI,EAASa,QAAQ,IAQnC,OAPoB,KAAhBsH,IACFlI,EAASD,EAAS8H,UAAUK,GAC5BnI,EAAWA,EAAS8H,UAAU,EAAGK,IAGlB,KAAbnI,IAAiBA,EAAW,MAG9BA,SAAUA,EACVC,OAAQA,EACRE,KAAMA,GApCV1T,EAAQqD,YAAa,CAIrB,IAAIgP,GAAW3S,EAAQ,WAEnBqS,EAAY5O,EAAuBkP,GAEnCsJ,EAAejc,EAAQ,iBAEvB8b,EAAgBrY,EAAuBwY,EA8B3C3b,GAAQ,WAAaub,EACrBnb,EAAOJ,QAAUA,EAAQ,aACtBC,KAAKmB,KAAK1B,EAAQ,eAClBkc,gBAAgB,GAAGtJ,SAAW,EAAEC,QAAU,KAAKsJ,IAAI,SAASnc,EAAQU,EAAOJ,IAC9E,SAAWsB,GACX,YAIA,SAAS6B,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAAWF,GAMzF,QAAS0Y,GAAkBzF,EAAMpD,EAAUnC,GACzC,GAAIoI,GAAS7C,EAAKpD,EAAUnC,EAExBuF,GAAKnW,OAAS,EAGhB4Q,EAASoI,GAEgB,eAAzB5X,EAAQU,IAAI8P,SAA4BC,EAAU,WAAsBrN,SAAXwU,EAAsB,oGAAsGxU,OAhB7L1E,EAAQqD,YAAa,CAIrB,IAAIgP,GAAW3S,EAAQ,WAEnBqS,EAAY5O,EAAuBkP,EAcvCrS,GAAQ,WAAa8b,EACrB1b,EAAOJ,QAAUA,EAAQ,aACtBC,KAAKmB,KAAK1B,EAAQ,eAClB4S,SAAW,EAAEC,QAAU,KAAKwJ,IAAI,SAASrc,EAAQU,EAAOJ,GAU3D,YAaA,IAAIsX,GAAY,SAAS0E,EAAWC,EAAQxc,EAAGkP,EAAGuN,EAAGC,EAAGjd,EAAGU,GAOzD,IAAKoc,EAAW,CACd,GAAIpK,EACJ,IAAelN,SAAXuX,EACFrK,EAAQ,GAAI/R,OACV,qIAGG,CACL,GAAI2B,IAAQ/B,EAAGkP,EAAGuN,EAAGC,EAAGjd,EAAGU,GACvBwc,EAAW,CACfxK,GAAQ,GAAI/R,OACVoc,EAAO3I,QAAQ,MAAO,WAAa,MAAO9R,GAAK4a,QAEjDxK,EAAMhP,KAAO,sBAIf,KADAgP,GAAMyK,YAAc,EACdzK,GAIVxR,GAAOJ,QAAUsX,OAEXgF,IAAI,SAAS5c,EAAQU,EAAOJ,GAUlC,YASA,IAAIuS,GAAU,YAyCdnS,GAAOJ,QAAUuS,OAEXgK,IAAI,SAAS7c,EAAQU,EAAOJ,GAClC,YAaA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS8Y,GAA2B7W,EAAM1F,GAAQ,IAAK0F,EAAQ,KAAM,IAAI8W,gBAAe,4DAAgE,QAAOxc,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B0F,EAAP1F,EAElO,QAASyc,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIlZ,WAAU,iEAAoEkZ,GAAeD,GAAS/a,UAAYuC,OAAO0Y,OAAOD,GAAcA,EAAWhb,WAAakb,aAAetY,MAAOmY,EAAU3Y,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe2Y,IAAYzY,OAAO4Y,eAAiB5Y,OAAO4Y,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GA2Eje,QAAS/V,GAAO0K,GACd,OACE7J,KAAM6J,EAAM0L,KAAKvV,KACjBwV,SAAU3L,EAAM0L,KAAKC,SACrBC,UAAW5L,EAAM0L,KAAKE,WAhG1B,GAAIxZ,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAQ6G,OAASA,CAEjB,IAAIuW,GAAS1d,EAAQ,SAEjB2d,EAAUla,EAAuBia,GAUjCE,EAAS,SAAUC,GAGrB,QAASD,KAGP,MAFA/Z,GAAgBnC,KAAMkc,GAEfd,EAA2Bpb,KAAM+C,OAAOqZ,eAAeF,GAAQzb,MAAMT,KAAMM,YA+DpF,MApEAgb,GAAUY,EAAQC,GAQlB5Z,EAAa2Z,IACXjZ,IAAK,UACLG,MAAO,WACLoB,OAAOqN,SAASwK,YAGlBpZ,IAAK,aACLG,MAAO,WACL,MAAIpD,MAAK0C,MAAMoZ,SACNQ,YAAYC,QAAQ,mFAAqFC,SAAUxc,KAAK0C,MAAMoZ,SAASU,WAAY,GACjJxc,KAAK0C,MAAMqZ,UACbO,YAAYC,QAAQ,uFAAyFC,SAAUxc,KAAK0C,MAAM4D,KAAKkW,WAAY,GADrJ,UAKTvZ,IAAK,eACLG,MAAO,WACL,MAAIpD,MAAK0C,MAAMoZ,UAAY9b,KAAK0C,MAAMqZ,UAC7B,oBAEA,kBAIX9Y,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,OACEqJ,UAAWzc,KAAK0c,gBAClBT,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,aACbR,EAAAA,WAAgB7I,cACd,KACEqJ,UAAW,QACbzc,KAAK2c,cAEPV,EAAAA,WAAgB7I,cACd,IACA,KACA6I,EAAAA,WAAgB7I,cACd,UACEwJ,KAAM,SAAUH,UAAW,kBAC3BI,QAAS7c,KAAK8c,SAChBP,QAAQ,gBAEV,IACAN,EAAAA,WAAgB7I,cACd,QACEqJ,UAAW,kCACbF,QAAQ,4BASbL,GACPD,EAAAA,WAAgBc,UAElBne,GAAAA,WAAkBsd,IASfc,MAAQ,UAAUC,IAAI,SAAS3e,EAAQU,EAAOJ,GACjD,YAYA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS8Y,GAA2B7W,EAAM1F,GAAQ,IAAK0F,EAAQ,KAAM,IAAI8W,gBAAe,4DAAgE,QAAOxc,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B0F,EAAP1F,EAElO,QAASyc,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIlZ,WAAU,iEAAoEkZ,GAAeD,GAAS/a,UAAYuC,OAAO0Y,OAAOD,GAAcA,EAAWhb,WAAakb,aAAetY,MAAOmY,EAAU3Y,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe2Y,IAAYzY,OAAO4Y,eAAiB5Y,OAAO4Y,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GAhBje,GAAIjZ,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,GAGT,IAAI4Y,GAAS1d,EAAQ,SAEjB2d,EAAUla,EAAuBia,GAUjCkB,EAAWnU,EAAE,QAAQC,KAAK,QAAU,eAEpCkT,EAAS,SAAUC,GAGrB,QAASD,KAGP,MAFA/Z,GAAgBnC,KAAMkc,GAEfd,EAA2Bpb,KAAM+C,OAAOqZ,eAAeF,GAAQzb,MAAMT,KAAMM,YA8BpF,MAnCAgb,GAAUY,EAAQC,GAQlB5Z,EAAa2Z,IACXjZ,IAAK,SACLG,MAAO,WACL,GAAI+Z,GAAOnd,KAAK0C,MAAMya,MAAQ,IAC1BC,EAAMF,CAUV,OANEE,IAFEpd,KAAK0C,MAAM4D,MAAQtG,KAAK0C,MAAM4D,KAAK+W,GAE9Brd,KAAK0C,MAAM4D,KAAKgX,YAAc,IAAMH,EAAO,IAAMnd,KAAK0C,MAAM4D,KAAK+W,GAAK,OAGtEF,EAAO,UAMlBla,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cAAc,OAASmK,IAAKvd,KAAKwd,SACtDf,UAAWzc,KAAK0C,MAAM+Z,WAAa,cACnC/b,MAAO6b,QAAQ,qBAKdL,GACPD,EAAAA,WAAgBc,UAElBne,GAAAA,WAAkBsd,IAEfc,MAAQ,UAAUS,IAAI,SAASnf,EAAQU,EAAOJ,GACjD,YAgBA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS8Y,GAA2B7W,EAAM1F,GAAQ,IAAK0F,EAAQ,KAAM,IAAI8W,gBAAe,4DAAgE,QAAOxc,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B0F,EAAP1F,EAElO,QAASyc,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIlZ,WAAU,iEAAoEkZ,GAAeD,GAAS/a,UAAYuC,OAAO0Y,OAAOD,GAAcA,EAAWhb,WAAakb,aAAetY,MAAOmY,EAAU3Y,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe2Y,IAAYzY,OAAO4Y,eAAiB5Y,OAAO4Y,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GApBje,GAAIjZ,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,GAGT,IAAI6F,GAAU3K,EAAQ,UAElBuK,EAAW9G,EAAuBkH,GAElC+S,EAAS1d,EAAQ,SAEjB2d,EAAUla,EAAuBia,GAUjCE,EAAS,SAAUC,GAGrB,QAASD,KAGP,MAFA/Z,GAAgBnC,KAAMkc,GAEfd,EAA2Bpb,KAAM+C,OAAOqZ,eAAeF,GAAQzb,MAAMT,KAAMM,YAuEpF,MA5EAgb,GAAUY,EAAQC,GAQlB5Z,EAAa2Z,IACXjZ,IAAK,mBACLG,MAAO,WAEL,MAAIpD,MAAK0C,MAAMgQ,QAAQgL,KACdzB,EAAAA,WAAgB7I,cAAc,OAASqJ,UAAW,OACvDkB,yBAA2BC,OAAQ5d,KAAK0C,MAAMgQ,QAAQgL,QAEjDzB,EAAAA,WAAgB7I,cACrB,KACEqJ,UAAW,QACbzc,KAAK0C,MAAMgQ,QAAQmL,UAMzB5a,IAAK,uBACLG,MAAO,WACL,MAAIpD,MAAK0C,MAAMob,QACT9d,KAAK0C,MAAMob,QAAQC,SAAS,EAAGlV,EAAAA,eAC1ByT,YAAYC,QAAQ,qCAAuCyB,WAAche,KAAK0C,MAAMob,QAAQG,YAAa,GAEzG1B,QAAQ,yBAGVA,QAAQ,6BAInBtZ,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,OACEqJ,UAAW,qCACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,aACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,iBACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,gBACbR,EAAAA,WAAgB7I,cACd,QACEqJ,UAAW,iBACb,kBAGJR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,gBACbzc,KAAKke,mBACLjC,EAAAA,WAAgB7I,cACd,KACEqJ,UAAW,oBACbzc,KAAKme,gCAUZjC,GACPD,EAAAA,WAAgBc,UAElBne,GAAAA,WAAkBsd,IAEfhT,OAAS,SAAS8T,MAAQ,UAAUoB,IAAI,SAAS9f,EAAQU,EAAOJ,GACnE,YAgBA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS8Y,GAA2B7W,EAAM1F,GAAQ,IAAK0F,EAAQ,KAAM,IAAI8W,gBAAe,4DAAgE,QAAOxc,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B0F,EAAP1F,EAElO,QAASyc,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIlZ,WAAU,iEAAoEkZ,GAAeD,GAAS/a,UAAYuC,OAAO0Y,OAAOD,GAAcA,EAAWhb,WAAakb,aAAetY,MAAOmY,EAAU3Y,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe2Y,IAAYzY,OAAO4Y,eAAiB5Y,OAAO4Y,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GApBje,GAAIjZ,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,GAGT,IAAI4Y,GAAS1d,EAAQ,SAEjB2d,EAAUla,EAAuBia,GAEjCqC,EAAU/f,EAAQ,YAElBggB,EAAWvc,EAAuBsc,GAYlCE,EAAS,SAAUpC,GAGrB,QAASoC,KAGP,MAFApc,GAAgBnC,KAAMue,GAEfnD,EAA2Bpb,KAAM+C,OAAOqZ,eAAemC,GAAQ9d,MAAMT,KAAMM,YA4BpF,MAjCAgb,GAAUiD,EAAQpC,GAQlB5Z,EAAagc,IACXtb,IAAK,SACLG,MAAO,WACL,GAAIqZ,GAAY,OAASzc,KAAK0C,MAAM+Z,UAChC+B,EAAWxe,KAAK0C,MAAM8b,QAQ1B,OANIxe,MAAK0C,MAAM+b,UACbhC,GAAa,eACb+B,GAAW,GAINvC,EAAAA,WAAgB7I,cACrB,UACEwJ,KAAM5c,KAAK0C,MAAMma,QAAU,SAAW,SACtCJ,UAAWA,EACX+B,SAAUA,EACV3B,QAAS7c,KAAK0C,MAAMma,SACtB7c,KAAK0C,MAAMgc,SACX1e,KAAK0C,MAAM+b,QAAUxC,EAAAA,WAAgB7I,cAAckL,EAAAA,WAAkB,MAAQ,UAM5EC,GACPtC,EAAAA,WAAgBc,UAElBne,GAAAA,WAAkB2f,EAElBA,EAAOI,cACLlC,UAAW,cAEXG,KAAM,SAEN6B,SAAS,EACTD,UAAU,EAEV3B,QAAS,QAGR+B,WAAW,GAAG5B,MAAQ,UAAU6B,IAAI,SAASvgB,EAAQU,EAAOJ,GAC/D,YA4BA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS8Y,GAA2B7W,EAAM1F,GAAQ,IAAK0F,EAAQ,KAAM,IAAI8W,gBAAe,4DAAgE,QAAOxc,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B0F,EAAP1F,EAElO,QAASyc,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIlZ,WAAU,iEAAoEkZ,GAAeD,GAAS/a,UAAYuC,OAAO0Y,OAAOD,GAAcA,EAAWhb,WAAakb,aAAetY,MAAOmY,EAAU3Y,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe2Y,IAAYzY,OAAO4Y,eAAiB5Y,OAAO4Y,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GAhCje,GAAIjZ,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,GAGT,IAAI4Y,GAAS1d,EAAQ,SAEjB2d,EAAUla,EAAuBia,GAEjC8C,EAAUxgB,EAAQ,aAIlBygB,GAFWhd,EAAuB+c,GAExBxgB,EAAQ,cAElB0gB,EAAWjd,EAAuBgd,GAElC/Z,EAAQ1G,EAAQ,uBAEhBqG,EAAS5C,EAAuBiD,GAEhC8C,EAAYxJ,EAAQ,2BAEpBqJ,EAAa5F,EAAuB+F,GAcpCoV,EAAWnU,EAAE,QAAQC,KAAK,QAAU,cAEpCkT,EAAS,SAAUC,GAGrB,QAASD,GAAOxZ,GACdP,EAAgBnC,KAAMkc,EAEtB,IAAIlY,GAAQoX,EAA2Bpb,KAAM+C,OAAOqZ,eAAeF,GAAQrd,KAAKmB,KAAM0C,GAsCtF,OApCAsB,GAAMib,WAAa,WACjB,GAAIjb,EAAMmM,MAAM+O,UACd,OAAO,CAGTlb,GAAM2U,UACJuG,WAAa,GAGf,IAAIC,GAAanb,EAAMtB,MAAM0c,OAAS,WAAa,WAC/CC,EAAStW,EAAE,aAEfpE,GAAAA,WAAe2a,KAAKtb,EAAMtB,MAAM4D,KAAKiZ,QAAQC,QAC3CA,OAAUL,EACVM,MACEC,OAAUL,EAAOA,OAAO,UACxBM,KAAQN,EAAOA,OAAO,WAEvBO,KAAK,SAAUC,GAChB7b,EAAMtB,MAAMod,WAAWD,EAAKvC,YAAauC,EAAK1K,SAC9CxN,EAAAA,WAAmBoY,QAAQF,EAAKG,SAC/B,SAAUC,GACc,MAArBA,EAAUC,QACZvY,EAAAA,WAAmB6I,MAAMyP,EAAUD,QACnChc,EAAM2U,UACJuG,WAAa,KAGflb,EAAMtB,MAAMyd,UAAUF,MAK5Bjc,EAAMmM,OACJ+O,WAAa,GAERlb,EA0IT,MArLAsX,GAAUY,EAAQC,GA8ClB5Z,EAAa2Z,IACXjZ,IAAK,gBACLG,MAAO,WACL,MAAIpD,MAAK0C,MAAM0c,OACNpf,KAAK0C,MAAMyS,QAAQiL,SAASjD,KAE5Bnd,KAAK0C,MAAMyS,QAAQkL,SAASlD,QAIvCla,IAAK,kBACLG,MAAO,WACL,MAAIpD,MAAK0C,MAAM0c,OACNpf,KAAK0C,MAAMyS,QAAQiL,SAASE,OAE5BtgB,KAAK0C,MAAMyS,QAAQkL,SAASC,UAIvCrd,IAAK,gBACLG,MAAO,WACL,MAAOpD,MAAK0C,MAAM0c,QAAUpf,KAAK0C,MAAM4D,KAAKgX,eAG9Cra,IAAK,eACLG,MAAO,WACL,OAAQ8Z,EAAUld,KAAKugB,kBAAoB,IAAMvgB,KAAKwgB,gBAAiBxgB,KAAK0C,MAAM4D,KAAK+W,GAAK,QAAQoD,KAAK,QAG3Gxd,IAAK,oBACLG,MAAO,WACL,GAAIsd,GAAS1gB,KAETqf,EAAStW,EAAE,aACfsW,GAAOsB,MAAM3gB,KAAK4gB,iBAElBvB,EAAOA,QACLsB,MAAS3gB,KAAK4gB,gBACdC,OAAU7gB,KAAK4gB,gBACfE,YACEvD,IAAOvd,KAAK+gB,gBAEdC,cAAe,WACb,GAAIN,EAAOhe,MAAM0c,OAAQ,CAEvB,GAAI6B,GAAY5B,EAAOA,OAAO,QAC1B6B,EAAY7B,EAAOA,OAAO,YAG9B,IAAI6B,EAAUP,MAAQO,EAAUL,OAAQ,CACtC,GAAIM,GAAiBD,EAAUP,MAAQM,EACnCG,GAAWD,EAAiBT,EAAOE,iBAAmB,EAE1DvB,GAAOA,OAAO,UACZlS,EAAKiU,EACLC,EAAK,QAEF,IAAIH,EAAUP,MAAQO,EAAUL,OAAQ,CAC7C,GAAIS,GAAkBJ,EAAUL,OAASI,EACrCM,GAAWD,EAAkBZ,EAAOE,iBAAmB,EAE3DvB,GAAOA,OAAO,UACZlS,EAAK,EACLkU,EAAKE,SAGJ,CAEL,GAAI9B,GAAOiB,EAAOhe,MAAMyS,QAAQkL,SAASZ,IACrCA,KACFJ,EAAOA,OAAO,OAAQI,EAAKE,MAC3BN,EAAOA,OAAO,UACZlS,EAAKsS,EAAKtS,EACVkU,EAAK5B,EAAK4B,YAQtBpe,IAAK,uBACLG,MAAO,WACL2F,EAAE,cAAcsW,OAAO,cAMzBpc,IAAK,SAILG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,MACA,KACA6I,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,gCACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,aACbR,EAAAA,WAAgB7I,cAAc,OAASqJ,UAAW,yBAClDR,EAAAA,WAAgB7I,cAAc,SAAWwJ,KAAM,QAASH,UAAW,8BAGvER,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,gBACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,4BACbR,EAAAA,WAAgB7I,cACd4L,EAAAA,YACEnC,QAAS7c,KAAKif,WACdR,QAASze,KAAKmQ,MAAM+O,UACpBzC,UAAW,yBACbzc,KAAK0C,MAAM0c,OAAS7C,QAAQ,cAAgBA,QAAQ,eAEtDN,EAAAA,WAAgB7I,cACd4L,EAAAA,YACEnC,QAAS7c,KAAK0C,MAAM8e,UACpBhD,SAAUxe,KAAKmQ,MAAM+O,UACrBzC,UAAW,yBACbF,QAAQ,kBASbL,GACPD,EAAAA,WAAgBc,UAElBne,GAAAA,WAAkBsd,IAEfuF,sBAAsB,GAAGC,0BAA0B,GAAGC,YAAY,GAAGC,YAAY,GAAG5E,MAAQ,UAAU6E,IAAI,SAASvjB,EAAQU,EAAOJ,GACrI,YAiCA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS8Y,GAA2B7W,EAAM1F,GAAQ,IAAK0F,EAAQ,KAAM,IAAI8W,gBAAe,4DAAgE,QAAOxc,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B0F,EAAP1F,EAElO,QAASyc,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIlZ,WAAU,iEAAoEkZ,GAAeD,GAAS/a,UAAYuC,OAAO0Y,OAAOD,GAAcA,EAAWhb,WAAakb,aAAetY,MAAOmY,EAAU3Y,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe2Y,IAAYzY,OAAO4Y,eAAiB5Y,OAAO4Y,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GArCje,GAAIjZ,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAQkjB,QAAUljB,EAAQmjB,YAAcze,MAExC,IAAI0Y,GAAS1d,EAAQ,SAEjB2d,EAAUla,EAAuBia,GAEjC+C,EAAUzgB,EAAQ,aAElB0gB,EAAWjd,EAAuBgd,GAElCha,EAASzG,EAAQ,eAEjBuG,EAAU9C,EAAuBgD,GAEjCC,EAAQ1G,EAAQ,uBAEhBqG,EAAS5C,EAAuBiD,GAEhC8C,EAAYxJ,EAAQ,2BAEpBqJ,EAAa5F,EAAuB+F,GAEpCka,EAAS1jB,EAAQ,qBAEjB2jB,EAAUlgB,EAAuBigB,GAejCD,EAAcnjB,EAAQmjB,YAAc,SAAU5F,GAGhD,QAAS4F,KACP,GAAIG,GAEAC,EAAOne,EAAOoe,CAElBjgB,GAAgBnC,KAAM+hB,EAEtB,KAAK,GAAIM,GAAO/hB,UAAUxB,OAAQsB,EAAOC,MAAMgiB,GAAOC,EAAO,EAAUD,EAAPC,EAAaA,IAC3EliB,EAAKkiB,GAAQhiB,UAAUgiB,EAGzB,OAAeH,GAASne,EAAQoX,EAA2Bpb,MAAOkiB,EAAwBnf,OAAOqZ,eAAe2F,IAAcljB,KAAK4B,MAAMyhB,GAAwBliB,MAAMX,OAAOe,KAAiB4D,EAAMyB,OAAS,WAC5MzB,EAAMtB,MAAM+C,OAAOzB,EAAMtB,MAAM6f,QAD1BH,EAEJD,EAAQ/G,EAA2BpX,EAAOoe,GAsC/C,MArDA9G,GAAUyG,EAAa5F,GAmBvB5Z,EAAawf,IACX9e,IAAK,eAILG,MAAO,WACL,MAAIpD,MAAK0C,MAAM8f,YAAcxiB,KAAK0C,MAAM6f,MAClCviB,KAAK0C,MAAM8b,SACN,8CAEA,iCAEAxe,KAAK0C,MAAM8b,SACb,8BAEA,oBAIXvb,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,UACEwJ,KAAM,SACNH,UAAWzc,KAAK0c,eAChB8B,SAAUxe,KAAK0C,MAAM8b,SACrB3B,QAAS7c,KAAKyF,QAChBwW,EAAAA,WAAgB7I,cAAc,OAASmK,IAAK1Y,EAAAA,WAAgBC,IAAI,aAAe9E,KAAK0C,MAAM6f,aAMzFR,GACP9F,EAAAA,WAAgBc,WAEd+E,EAAUljB,EAAQkjB,QAAU,SAAUW,GAGxC,QAASX,KAGP,MAFA3f,GAAgBnC,KAAM8hB,GAEf1G,EAA2Bpb,KAAM+C,OAAOqZ,eAAe0F,GAASrhB,MAAMT,KAAMM,YA0CrF,MA/CAgb,GAAUwG,EAASW,GAQnBlgB,EAAauf,IACX7e,IAAK,SACLG,MAAO,WACL,GAAIsf,GAAS1iB,IAGb,OAAOic,GAAAA,WAAgB7I,cACrB,OACEqJ,UAAW,mBACbR,EAAAA,WAAgB7I,cACd,KACA,KACApT,KAAK0C,MAAMlB,MAEbya,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,2BACZ,EAAGwF,EAAAA,YAAiBjiB,KAAK0C,MAAMigB,OAAQ,EAAG,MAAMC,IAAI,SAAUC,EAAKtkB,GAClE,MAAO0d,GAAAA,WAAgB7I,cACrB,OACEqJ,UAAW,MAAOxZ,IAAK1E,GACzBskB,EAAID,IAAI,SAAUhf,EAAMrF,GACtB,MAAO0d,GAAAA,WAAgB7I,cACrB,OACEqJ,UAAW,WAAYxZ,IAAK1E,GAC9BqF,EAAOqY,EAAAA,WAAgB7I,cAAc2O,GAAeQ,MAAO3e,EACzD4a,SAAUkE,EAAOhgB,MAAM8b,SACvB/Y,OAAQid,EAAOhgB,MAAM+C,OACrB+c,UAAWE,EAAOhgB,MAAM8f,YAAevG,EAAAA,WAAgB7I,cAAc,OAASqJ,UAAW,6BAWpGqF,GACP7F,EAAAA,WAAgBc,WAEdb,EAAS,SAAU4G,GAGrB,QAAS5G,GAAOxZ,GACdP,EAAgBnC,KAAMkc,EAEtB,IAAI6G,GAAS3H,EAA2Bpb,KAAM+C,OAAOqZ,eAAeF,GAAQrd,KAAKmB,KAAM0C,GA2CvF,OAzCAqgB,GAAOtd,OAAS,SAAU8c,GACxBQ,EAAOpK,UACL6J,UAAWD,KAIfQ,EAAOC,KAAO,WACZ,MAAID,GAAO5S,MAAM+O,WACR,GAGT6D,EAAOpK,UACLuG,WAAa,QAGfva,GAAAA,WAAe2a,KAAKyD,EAAOrgB,MAAM4D,KAAKiZ,QAAQC,QAC5CA,OAAQ,YACR+C,MAAOQ,EAAO5S,MAAMqS,YACnB5C,KAAK,SAAUqD,GAChBF,EAAOpK,UACLuG,WAAa,IAGfvX,EAAAA,WAAmBoY,QAAQkD,EAASjD,QACpC+C,EAAOrgB,MAAMod,WAAWmD,EAAS3F,YAAa2F,EAAS9N,UACtD,SAAU8K,GACc,MAArBA,EAAUC,QACZvY,EAAAA,WAAmB6I,MAAMyP,EAAUD,QACnC+C,EAAOpK,UACLuG,WAAa,KAGf6D,EAAOrgB,MAAMyd,UAAUF,OAK7B8C,EAAO5S,OACLqS,UAAa,KACbtD,WAAa,GAER6D,EA6DT,MA7GAzH,GAAUY,EAAQ4G,GAqDlBvgB,EAAa2Z,IACXjZ,IAAK,SAILG,MAAO,WACL,GAAI8f,GAASljB,IAGb,OAAOic,GAAAA,WAAgB7I,cACrB,MACA,KACA6I,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,mCACbzc,KAAK0C,MAAMyS,QAAQgO,UAAUP,IAAI,SAAUhf,EAAMrF,GAC/C,MAAO0d,GAAAA,WAAgB7I,cAAc0O,GAAWtgB,KAAMoC,EAAKpC,KACzDmhB,OAAQ/e,EAAK+e,OACbH,UAAWU,EAAO/S,MAAMqS,UACxBhE,SAAU0E,EAAO/S,MAAM+O,UACvBzZ,OAAQyd,EAAOzd,OACfxC,IAAK1E,OAGX0d,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,gBACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,OACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,4BACbR,EAAAA,WAAgB7I,cACd4L,EAAAA,YACEnC,QAAS7c,KAAKgjB,KACdvE,QAASze,KAAKmQ,MAAM+O,UACpBV,UAAWxe,KAAKmQ,MAAMqS,UACtB/F,UAAW,yBACbzc,KAAKmQ,MAAMqS,UAAYjG,QAAQ,eAAiBA,QAAQ,kBAE1DN,EAAAA,WAAgB7I,cACd4L,EAAAA,YACEnC,QAAS7c,KAAK0C,MAAM8e,UACpBhD,SAAUxe,KAAKmQ,MAAM+O,UACrBzC,UAAW,yBACbF,QAAQ,mBAUfL,GACPD,EAAAA,WAAgBc,UAElBne,GAAAA,WAAkBsd,IAEfkH,cAAc,GAAG3B,sBAAsB,GAAGC,0BAA0B,GAAG2B,oBAAoB,IAAIzB,YAAY,GAAG5E,MAAQ,UAAUsG,IAAI,SAAShlB,EAAQU,EAAOJ,GAC/J,YAgCA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS8Y,GAA2B7W,EAAM1F,GAAQ,IAAK0F,EAAQ,KAAM,IAAI8W,gBAAe,4DAAgE,QAAOxc,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B0F,EAAP1F,EAElO,QAASyc,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIlZ,WAAU,iEAAoEkZ,GAAeD,GAAS/a,UAAYuC,OAAO0Y,OAAOD,GAAcA,EAAWhb,WAAakb,aAAetY,MAAOmY,EAAU3Y,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe2Y,IAAYzY,OAAO4Y,eAAiB5Y,OAAO4Y,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GApCje,GAAIjZ,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,GAGT,IAAI4Y,GAAS1d,EAAQ,SAEjB2d,EAAUla,EAAuBia,GAEjC8C,EAAUxgB,EAAQ,aAElBilB,EAAWxhB,EAAuB+c,GAElCC,EAAUzgB,EAAQ,aAElB0gB,EAAWjd,EAAuBgd,GAElCV,EAAU/f,EAAQ,aAElBggB,EAAWvc,EAAuBsc,GAElCrZ,EAAQ1G,EAAQ,uBAEhBqG,EAAS5C,EAAuBiD,GAEhC8C,EAAYxJ,EAAQ,2BAEpBqJ,EAAa5F,EAAuB+F,GAYpCoU,EAAS,SAAUC,GAGrB,QAASD,GAAOxZ,GACdP,EAAgBnC,KAAMkc,EAEtB,IAAIlY,GAAQoX,EAA2Bpb,KAAM+C,OAAOqZ,eAAeF,GAAQrd,KAAKmB,KAAM0C,GAatF,OAXAsB,GAAMwf,YAAc,WAClBxf,EAAMyf,QAAQ,aAGhBzf,EAAM0f,aAAe,WACnB1f,EAAMyf,QAAQ,cAGhBzf,EAAMmM,OACJ+O,WAAa,GAERlb,EAwKT,MA1LAsX,GAAUY,EAAQC,GAqBlB5Z,EAAa2Z,IACXjZ,IAAK,UACLG,MAAO,SAAiB+b,GACtB,GAAIuB,GAAS1gB,IAEb,OAAIA,MAAKmQ,MAAM+O,WACN,GAGTlf,KAAK2Y,UACHuG,WAAa,QAGfva,GAAAA,WAAe2a,KAAKtf,KAAK0C,MAAM4D,KAAKiZ,QAAQC,QAC1CA,OAAQL,IACPS,KAAK,SAAUqD,GAChBvC,EAAO/H,UACLuG,WAAa,IAGfvX,EAAAA,WAAmBoY,QAAQkD,EAASjD,QACpCU,EAAOhe,MAAMod,WAAWmD,EAAS3F,YAAa2F,EAAS9N,UACtD,SAAU8K,GACc,MAArBA,EAAUC,QACZvY,EAAAA,WAAmB6I,MAAMyP,EAAUD,QACnCU,EAAO/H,UACLuG,WAAa,KAGfwB,EAAOhe,MAAMyd,UAAUF,SAQ7Bhd,IAAK,oBAILG,MAAO,WACL,MAAIpD,MAAK0C,MAAMyS,QAAQwO,SAEd1H,EAAAA,WAAgB7I,cACrB4L,EAAAA,YACEnC,QAAS7c,KAAKwjB,YACdhF,SAAUxe,KAAKmQ,MAAM+O,UACrBzC,UAAW,6CACbF,QAAQ,yBAID,QAIbtZ,IAAK,gBACLG,MAAO,WACL,MAAIpD,MAAK0C,MAAMyS,QAAQkL,SAEdpE,EAAAA,WAAgB7I,cACrB4L,EAAAA,YACEnC,QAAS7c,KAAK0C,MAAMkhB,SACpBpF,SAAUxe,KAAKmQ,MAAM+O,UACrBzC,UAAW,yCACbF,QAAQ,2BAID,QAIbtZ,IAAK,kBACLG,MAAO,WACL,MAAIpD,MAAK0C,MAAMyS,QAAQiK,OAEdnD,EAAAA,WAAgB7I,cACrB4L,EAAAA,YACEnC,QAAS7c,KAAK0C,MAAMmhB,WACpBrF,SAAUxe,KAAKmQ,MAAM+O,UACrBzC,UAAW,2CACbF,QAAQ,qBAID,QAIbtZ,IAAK,mBACLG,MAAO,WACL,MAAIpD,MAAK0C,MAAMyS,QAAQgO,UAEdlH,EAAAA,WAAgB7I,cACrB4L,EAAAA,YACEnC,QAAS7c,KAAK0C,MAAMohB,YACpBtF,SAAUxe,KAAKmQ,MAAM+O,UACrBzC,UAAW,4CACbF,QAAQ,6BAID,QAIbtZ,IAAK,mBACLG,MAAO,WACL,MAAIpD,MAAKmQ,MAAM+O,UAENjD,EAAAA,WAAgB7I,cACrB,OACEqJ,UAAW,kCACbR,EAAAA,WAAgB7I,cAAcmQ,EAAAA,YAAoBjd,KAAMtG,KAAK0C,MAAM4D,KAAM6W,KAAM,QAC/ElB,EAAAA,WAAgB7I,cAAckL,EAAAA,WAAkB,OAKzCrC,EAAAA,WAAgB7I,cACrB,OACEqJ,UAAW,kBACbR,EAAAA,WAAgB7I,cAAcmQ,EAAAA,YAAoBjd,KAAMtG,KAAK0C,MAAM4D,KAAM6W,KAAM,YAMvFla,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,OACEqJ,UAAW,iCACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,OACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,YACbzc,KAAK+jB,oBAEP9H,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,YACbzc,KAAKgkB,oBACL/H,EAAAA,WAAgB7I,cACd4L,EAAAA,YACEnC,QAAS7c,KAAK0jB,aACdlF,SAAUxe,KAAKmQ,MAAM+O,UACrBzC,UAAW,6CACbF,QAAQ,kCAEVvc,KAAKikB,gBACLjkB,KAAKkkB,kBACLlkB,KAAKmkB,0BAQRjI,GACPD,EAAAA,WAAgBc,UAElBne,GAAAA,WAAkBsd,IAEfuF,sBAAsB,GAAGC,0BAA0B,GAAGC,YAAY,GAAGC,YAAY,GAAGwC,YAAY,GAAGpH,MAAQ,UAAUqH,IAAI,SAAS/lB,EAAQU,EAAOJ,GACpJ,YA4CA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS8Y,GAA2B7W,EAAM1F,GAAQ,IAAK0F,EAAQ,KAAM,IAAI8W,gBAAe,4DAAgE,QAAOxc,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B0F,EAAP1F,EAElO,QAASyc,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIlZ,WAAU,iEAAoEkZ,GAAeD,GAAS/a,UAAYuC,OAAO0Y,OAAOD,GAAcA,EAAWhb,WAAakb,aAAetY,MAAOmY,EAAU3Y,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe2Y,IAAYzY,OAAO4Y,eAAiB5Y,OAAO4Y,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GA6Mje,QAAS/V,GAAO0K,GACd,OACE7J,KAAQ6J,EAAM0L,KAAKvV,MA/PvB,GAAI/D,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAQ0lB,kBAAoBhhB,OAC5B1E,EAAQ6G,OAASA,CAEjB,IAAIuW,GAAS1d,EAAQ,SAEjB2d,EAAUla,EAAuBia,GAEjCjX,EAASzG,EAAQ,WAEjBuG,EAAU9C,EAAuBgD,GAEjCwf,EAAQjmB,EAAQ,UAEhBkmB,EAASziB,EAAuBwiB,GAEhCE,EAAUnmB,EAAQ,YAElBomB,EAAW3iB,EAAuB0iB,GAElCE,EAAWrmB,EAAQ,aAEnBsmB,EAAY7iB,EAAuB4iB,GAEnCE,EAAevmB,EAAQ,mBAEvBwmB,EAAgB/iB,EAAuB8iB,GAEvCnY,EAASpO,EAAQ,wBAEjB0G,EAAQ1G,EAAQ,uBAEhBqG,EAAS5C,EAAuBiD,GAEhCyB,EAASnI,EAAQ,wBAEjB0H,EAAUjE,EAAuB0E,GAiBjC6d,EAAoB1lB,EAAQ0lB,kBAAoB,SAAUnI,GAG5D,QAASmI,KAGP,MAFAniB,GAAgBnC,KAAMskB,GAEflJ,EAA2Bpb,KAAM+C,OAAOqZ,eAAekI,GAAmB7jB,MAAMT,KAAMM,YA6C/F,MAlDAgb,GAAUgJ,EAAmBnI,GAQ7B5Z,EAAa+hB,IACXrhB,IAAK,iBACLG,MAAO,WACL,MAAIpD,MAAK0C,MAAMqiB,OAEN9I,EAAAA,WAAgB7I,cAAc,KAAOuK,yBAA2BC,OAAQ5d,KAAK0C,MAAMqiB,UAGjF,QAIb9hB,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,OACEqJ,UAAW,cACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,gBACbR,EAAAA,WAAgB7I,cACd,QACEqJ,UAAW,iBACb,0BAGJR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,gBACbR,EAAAA,WAAgB7I,cACd,KACEqJ,UAAW,QACbzc,KAAK0C,MAAMgQ,SAEb1S,KAAKglB,uBAONV,GACPrI,EAAAA,WAAgBc,WAEdb,EAAS,SAAUuG,GAGrB,QAASvG,KACP,GAAIgG,GAEAC,EAAOzB,EAAQ0B,CAEnBjgB,GAAgBnC,KAAMkc,EAEtB,KAAK,GAAImG,GAAO/hB,UAAUxB,OAAQsB,EAAOC,MAAMgiB,GAAOC,EAAO,EAAUD,EAAPC,EAAaA,IAC3EliB,EAAKkiB,GAAQhiB,UAAUgiB,EAGzB,OAAeH,GAASzB,EAAStF,EAA2Bpb,MAAOkiB,EAAwBnf,OAAOqZ,eAAeF,IAASrd,KAAK4B,MAAMyhB,GAAwBliB,MAAMX,OAAOe,KAAkBsgB,EAAOP,UAAY,SAAU3P,GACvNkQ,EAAO/H,UACLnI,MAAOA,KAERkQ,EAAOc,UAAY,WACpBd,EAAO/H,UACLrP,UAAazE,EAAAA,cAEd6b,EAAOmD,WAAa,WACrBnD,EAAO/H,UACLrP,UAAaob,EAAAA,cAEdhE,EAAOkD,SAAW,WACnBlD,EAAO/H,UACLrP,UAAakb,EAAAA,cAEd9D,EAAOoD,YAAc,WACtBpD,EAAO/H,UACLrP,UAAasb,EAAAA,cAEdlE,EAAOuE,aAAe,SAAUC,EAAY/P,GAC7CnP,EAAAA,WAAgB2F,UAAU,EAAGe,EAAOyY,cAAczE,EAAOhe,MAAM4D,KAAM4e,IAErExE,EAAO/H,UACLrP,UAAazE,EAAAA,WACbsQ,QAASA,KAzBNiN,EA2BJD,EAAQ/G,EAA2BsF,EAAQ0B,GAiGhD,MAzIA9G,GAAUY,EAAQuG,GA2ClBlgB,EAAa2Z,IACXjZ,IAAK,oBACLG,MAAO,WACL,GAAIsf,GAAS1iB,IAEb2E,GAAAA,WAAeG,IAAI9E,KAAK0C,MAAM4D,KAAKiZ,QAAQC,QAAQI,KAAK,SAAUzK,GAChEuN,EAAO/J,UACLrP,UAAazE,EAAAA,WACbsQ,QAAWA,EACX3E,MAAS,QAEV,SAAUyP,GACXyC,EAAOvC,UAAUF,QAOrBhd,IAAK,UAILG,MAAO,WACL,MAAIpD,MAAKmQ,MACHnQ,KAAKmQ,MAAMK,MAENyL,EAAAA,WAAgB7I,cAAckR,GAAqB5R,QAAS1S,KAAKmQ,MAAMK,MAAMwP,OAClF+E,OAAQ/kB,KAAKmQ,MAAMK,MAAMuU,SAIlB9I,EAAAA,WAAgB7I,cAAcpT,KAAKmQ,MAAM7G,WAAa6L,QAASnV,KAAKmQ,MAAMgF,QAC/E7O,KAAMtG,KAAK0C,MAAM4D,KACjBwZ,WAAY9f,KAAKilB,aACjB9E,UAAWngB,KAAKmgB,UAChBqB,UAAWxhB,KAAKwhB,UAChBoC,SAAU5jB,KAAK4jB,SACfC,WAAY7jB,KAAK6jB,WACjBC,YAAa9jB,KAAK8jB,cAKf7H,EAAAA,WAAgB7I,cAAc0R,EAAAA,WAAuB,SAKlE7hB,IAAK,eACLG,MAAO,WACL,MAAIpD,MAAKmQ,OAASnQ,KAAKmQ,MAAMK,MACpB,iDAEA,sCAIXvN,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,OACEqJ,UAAWzc,KAAK0c,eAChB0I,KAAM,YACRnJ,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,iBACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,gBACbR,EAAAA,WAAgB7I,cACd,UACEwJ,KAAM,SAAUH,UAAW,QAAS4I,eAAgB,QACpDC,aAAc/I,QAAQ,UACxBN,EAAAA,WAAgB7I,cACd,QACEmS,cAAe,QACjB,MAGJtJ,EAAAA,WAAgB7I,cACd,MACEqJ,UAAW,eACbF,QAAQ,wBAGZvc,KAAKwlB,gBAONtJ,GACPD,EAAAA,WAAgBc,UAElBne,GAAAA,WAAkBsd,IAOfuJ,uBAAuB,GAAGhE,sBAAsB,GAAGiE,uBAAuB,IAAIC,kBAAkB,GAAGC,SAAS,GAAGC,YAAY,GAAGC,UAAU,GAAGC,WAAW,GAAG/I,MAAQ,UAAUgJ,IAAI,SAAS1nB,EAAQU,EAAOJ,GAC1M,YAgCA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS8Y,GAA2B7W,EAAM1F,GAAQ,IAAK0F,EAAQ,KAAM,IAAI8W,gBAAe,4DAAgE,QAAOxc,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B0F,EAAP1F,EAElO,QAASyc,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIlZ,WAAU,iEAAoEkZ,GAAeD,GAAS/a,UAAYuC,OAAO0Y,OAAOD,GAAcA,EAAWhb,WAAakb,aAAetY,MAAOmY,EAAU3Y,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe2Y,IAAYzY,OAAO4Y,eAAiB5Y,OAAO4Y,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GApCje,GAAIjZ,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,GAGT,IAAI4Y,GAAS1d,EAAQ,SAEjB2d,EAAUla,EAAuBia,GAEjCuI,EAAQjmB,EAAQ,UAEhBkmB,EAASziB,EAAuBwiB,GAEhCxF,EAAUzgB,EAAQ,aAElB0gB,EAAWjd,EAAuBgd,GAElC/Z,EAAQ1G,EAAQ,uBAEhBqG,EAAS5C,EAAuBiD,GAEhC8C,EAAYxJ,EAAQ,2BAEpBqJ,EAAa5F,EAAuB+F,GAEpCme,EAAY3nB,EAAQ,yBAEpB4nB,EAAankB,EAAuBkkB,GAapC/J,EAAS,SAAUC,GAGrB,QAASD,GAAOxZ,GACdP,EAAgBnC,KAAMkc,EAEtB,IAAIlY,GAAQoX,EAA2Bpb,KAAM+C,OAAOqZ,eAAeF,GAAQrd,KAAKmB,KAAM0C,GAuDtF,OArDAsB,GAAMmiB,SAAW,WACf7d,SAASC,eAAe,wBAAwB6d,SAGlDpiB,EAAMqiB,WAAa,WACjB,GAAI9D,GAAQja,SAASC,eAAe,wBAAwB+d,MAAM,GAE9DC,EAAkBviB,EAAMwiB,aAAajE,EACzC,IAAIgE,EAEF,WADA5e,GAAAA,WAAmB6I,MAAM+V,EAI3BviB,GAAM2U,UACJ4J,MAAOA,EACPkE,QAAWC,IAAIC,gBAAgBpE,GAC/BqE,SAAY,GAGd,IAAI/G,GAAO,GAAIgH,SACfhH,GAAKiH,OAAO,SAAU,UACtBjH,EAAKiH,OAAO,QAASvE,GAErB5d,EAAAA,WAAeya,OAAOpb,EAAMtB,MAAM4D,KAAKiZ,QAAQC,OAAQK,EAAM,SAAU+G,GACrE5iB,EAAM2U,UACJiO,SAAUA,MAEXhH,KAAK,SAAUC,GAChB7b,EAAM2U,UACJxD,QAAW0K,EAAK1K,QAChB4R,SAAYlH,EAAKG,SAEnBrY,EAAAA,WAAmBqf,KAAKzK,QAAQ,2DAC/B,SAAU0D,GACc,MAArBA,EAAUC,QACZvY,EAAAA,WAAmB6I,MAAMyP,EAAUD,QACnChc,EAAM2U,UACJuG,WAAa,EACbqD,MAAS,KACTqE,SAAY,KAGd5iB,EAAMtB,MAAMyd,UAAUF,MAK5Bjc,EAAMmM,OACJoS,MAAS,KACTkE,QAAW,KACXG,SAAY,EACZG,SAAY,MAEP/iB,EAoKT,MAhOAsX,GAAUY,EAAQC,GA+DlB5Z,EAAa2Z,IACXjZ,IAAK,eACLG,MAAO,SAAsBmf,GAC3B,GAAIA,EAAMpF,KAAOnd,KAAK0C,MAAMyS,QAAQiK,OAAO6H,MACzC,MAAO3K,aAAYC,QAAQ,6CACzB2K,UAAa,EAAGhB,EAAAA,YAAoB3D,EAAMpF,QACzC,EAGL,IAAIgK,GAAiB5K,QAAQ,uCAC7B,IAAyE,KAArEvc,KAAK0C,MAAMyS,QAAQiK,OAAOgI,mBAAmBpU,QAAQuP,EAAM3F,MAC7D,MAAOuK,EAGT,IAAIE,IAAiB,EACjBC,EAAkB/E,EAAM/gB,KAAK+lB,aAOjC,OANAvnB,MAAK0C,MAAMyS,QAAQiK,OAAOoI,mBAAmB5E,IAAI,SAAU6E,GACrDH,EAAgB1Q,OAA0B,GAAnB6Q,EAAU3oB,UAAiB2oB,IACpDJ,GAAiB,KAIhBA,GAIE,EAHEF,KASXlkB,IAAK,wBAILG,MAAO,SAA+B+R,GACpC,GAAIuS,GAAavS,EAAQqS,mBAAmB5E,IAAI,SAAU6E,GACxD,MAAOA,GAAU7Q,OAAO,IAG1B,OAAO0F,aAAYC,QAAQ,2CACzB+J,MAASoB,EAAWjH,KAAK,MACzBwG,OAAU,EAAGf,EAAAA,YAAoB/Q,EAAQ8R,SACxC,MAGLhkB,IAAK,kBACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,OACEqJ,UAAW,kCACbR,EAAAA,WAAgB7I,cACd4L,EAAAA,YACEvC,UAAW,gBACXI,QAAS7c,KAAKmmB,UAChBlK,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,iBACb,SAEFF,QAAQ,gBAEVN,EAAAA,WAAgB7I,cACd,KACEqJ,UAAW,cACbzc,KAAK2nB,sBAAsB3nB,KAAK0C,MAAMyS,QAAQiK,aAMpDnc,IAAK,yBACLG,MAAO,WACL,MAAOkZ,aAAYC,QAAQ,4BACzBqK,SAAY5mB,KAAKmQ,MAAMyW,WACtB,MAGL3jB,IAAK,oBACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,OACEqJ,UAAW,kCACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,mBACbR,EAAAA,WAAgB7I,cAAc,OAASmK,IAAKvd,KAAKmQ,MAAMsW,UACvDxK,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,YACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,eAAgB2I,KAAM,cACjCwC,gBAAiB,wBACjBC,gBAAiB,IAAKC,gBAAiB,MACvCC;AAASpH,MAAO3gB,KAAKmQ,MAAMyW,SAAW,MACxC3K,EAAAA,WAAgB7I,cACd,QACEqJ,UAAW,WACbzc,KAAKgoB,iCASjB/kB,IAAK,eACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,MACA,KACA6I,EAAAA,WAAgB7I,cAAc,SAAWwJ,KAAM,OAC7CS,GAAI,uBACJZ,UAAW,qBACXwL,SAAUjoB,KAAKqmB,aACjBrmB,KAAKmQ,MAAMoS,MAAQviB,KAAKkoB,oBAAsBloB,KAAKkkB,kBACnDjI,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,gBACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,4BACbR,EAAAA,WAAgB7I,cACd4L,EAAAA,YACEnC,QAAS7c,KAAK0C,MAAM8e,UACpBhD,WAAYxe,KAAKmQ,MAAMoS,MACvB9F,UAAW,yBACbF,QAAQ,iBAQlBtZ,IAAK,aACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cAAcoR,EAAAA,YAAkBrP,QAASnV,KAAKmQ,MAAMgF,QACzE7O,KAAMtG,KAAK0C,MAAM4D,KACjB8Y,OAAQpf,KAAKmQ,MAAM4W,SACnBjH,WAAY9f,KAAK0C,MAAMod,WACvBK,UAAWngB,KAAK0C,MAAMyd,UACtBqB,UAAWxhB,KAAK0C,MAAM8e,eAI1Bve,IAAK,SACLG,MAAO,WAEL,MAAOpD,MAAKmQ,MAAM4W,SAAW/mB,KAAKmoB,aAAenoB,KAAKooB,mBAKnDlM,GACPD,EAAAA,WAAgBc,UAElBne,GAAAA,WAAkBsd,IAEfuF,sBAAsB,GAAGC,0BAA0B,GAAG2G,wBAAwB,IAAIzG,YAAY,GAAGgE,SAAS,GAAG5I,MAAQ,UAAUsL,IAAI,SAAShqB,EAAQU,EAAOJ,GAC9J,YAYA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS8Y,GAA2B7W,EAAM1F,GAAQ,IAAK0F,EAAQ,KAAM,IAAI8W,gBAAe,4DAAgE,QAAOxc,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B0F,EAAP1F,EAElO,QAASyc,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIlZ,WAAU,iEAAoEkZ,GAAeD,GAAS/a,UAAYuC,OAAO0Y,OAAOD,GAAcA,EAAWhb,WAAakb,aAAetY,MAAOmY,EAAU3Y,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe2Y,IAAYzY,OAAO4Y,eAAiB5Y,OAAO4Y,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GAhBje,GAAIjZ,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,GAGT,IAAI4Y,GAAS1d,EAAQ,SAEjB2d,EAAUla,EAAuBia,GAUjCE,EAAS,SAAUC,GAGrB,QAASD,KAGP,MAFA/Z,GAAgBnC,KAAMkc,GAEfd,EAA2Bpb,KAAM+C,OAAOqZ,eAAeF,GAAQzb,MAAMT,KAAMM,YAuHpF,MA5HAgb,GAAUY,EAAQC,GAQlB5Z,EAAa2Z,IACXjZ,IAAK,cACLG,MAAO,WACL,MAAwC,mBAA1BpD,MAAK0C,MAAM6lB,cAG3BtlB,IAAK,eACLG,MAAO,WACL,GAAIqZ,GAAY,YAShB,OARIzc,MAAKwoB,gBACP/L,GAAa,gBAEXA,GAD4B,OAA1Bzc,KAAK0C,MAAM6lB,WACA,eAEA,cAGV9L,KAGTxZ,IAAK,cACLG,MAAO,WACL,GAAIsd,GAAS1gB,IAEb,OAAIA,MAAK0C,MAAM6lB,WAENtM,EAAAA,WAAgB7I,cACrB,OACEqJ,UAAW,qBACbzc,KAAK0C,MAAM6lB,WAAW3F,IAAI,SAAUpS,EAAOjS,GACzC,MAAO0d,GAAAA,WAAgB7I,cACrB,KACEnQ,IAAKyd,EAAOhe,MAAPge,OAAmB,eAAiBniB,GAC3CiS,MAMG,QAIbvN,IAAK,kBACLG,MAAO,WACL,MAAIpD,MAAKwoB,cAEAvM,EAAAA,WAAgB7I,cACrB,QACEqJ,UAAW,sCACX8I,cAAe,OAAQtiB,IAAKjD,KAAK0C,MAAL1C,OAAiB,gBAC/CA,KAAK0C,MAAM6lB,WAAa,QAAU,SAI3B,QAIbtlB,IAAK,yBACLG,MAAO,WACL,MAAIpD,MAAKwoB,cAEAvM,EAAAA,WAAgB7I,cACrB,QACEiK,GAAIrd,KAAK0C,MAAL1C,OAAiB,UAAWyc,UAAW,WAC7Czc,KAAK0C,MAAM6lB,WAAahM,QAAQ,WAAaA,QAAQ,cAI9C,QAIbtZ,IAAK,cACLG,MAAO,WACL,MAAIpD,MAAK0C,MAAM+lB,SAENxM,EAAAA,WAAgB7I,cACrB,KACEqJ,UAAW,cACbzc,KAAK0C,MAAM+lB,UAIJ,QAIbxlB,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,OACEqJ,UAAWzc,KAAK0c,gBAClBT,EAAAA,WAAgB7I,cACd,SACEqJ,UAAW,kBAAoBzc,KAAK0C,MAAMgmB,YAAc,IACxDC,QAAS3oB,KAAK0C,MAAL1C,QAAkB,IAC7BA,KAAK0C,MAAMkmB,MAAQ,KAErB3M,EAAAA,WAAgB7I,cACd,OACEqJ,UAAWzc,KAAK0C,MAAMmmB,cAAgB,IACxC7oB,KAAK0C,MAAMgc,SACX1e,KAAK8oB,kBACL9oB,KAAK+oB,yBACL/oB,KAAKgpB,cACLhpB,KAAKipB,cACLjpB,KAAK0C,MAAMwmB,OAAS,WAOrBhN,GACPD,EAAAA,WAAgBc,UAElBne,GAAAA,WAAkBsd,IAEfc,MAAQ,UAAUmM,IAAI,SAAS7qB,EAAQU,EAAOJ,GACjD,YAcA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASonB,GAAgBpnB,EAAKiB,EAAKG,GAAiK,MAApJH,KAAOjB,GAAOe,OAAOC,eAAehB,EAAKiB,GAAOG,MAAOA,EAAOR,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBd,EAAIiB,GAAOG,EAAgBpB,EAE3M,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS8Y,GAA2B7W,EAAM1F,GAAQ,IAAK0F,EAAQ,KAAM,IAAI8W,gBAAe,4DAAgE,QAAOxc,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B0F,EAAP1F,EAElO,QAASyc,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIlZ,WAAU,iEAAoEkZ,GAAeD,GAAS/a,UAAYuC,OAAO0Y,OAAOD,GAAcA,EAAWhb,WAAakb,aAAetY,MAAOmY,EAAU3Y,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe2Y,IAAYzY,OAAO4Y,eAAiB5Y,OAAO4Y,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GApBje,GAAIjZ,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,GAGT,IAAI4Y,GAAS1d,EAAQ,SAEjB2d,EAAUla,EAAuBia,GAEjCqN,EAAc/qB,EAAQ,uBAYtBgrB,GAAoB,EAAGD,EAAYE,YAEnCrN,EAAS,SAAUC,GAGrB,QAASD,KACP,GAAIgG,GAEAC,EAAOne,EAAOoe,CAElBjgB,GAAgBnC,KAAMkc,EAEtB,KAAK,GAAImG,GAAO/hB,UAAUxB,OAAQsB,EAAOC,MAAMgiB,GAAOC,EAAO,EAAUD,EAAPC,EAAaA,IAC3EliB,EAAKkiB,GAAQhiB,UAAUgiB,EAGzB,OAAeH,GAASne,EAAQoX,EAA2Bpb,MAAOkiB,EAAwBnf,OAAOqZ,eAAeF,IAASrd,KAAK4B,MAAMyhB,GAAwBliB,MAAMX,OAAOe,KAAiB4D,EAAMwlB,UAAY,SAAUhoB,GACpN,MAAO,UAAU+P,GACf,GAAIkY,GAAWL,KAAoB5nB,EAAM+P,EAAM9O,OAAOW,OAElDsmB,EAAa1lB,EAAMmM,MAAMwZ,UAC7BD,GAAWloB,GAAQwC,EAAM4lB,cAAcpoB,EAAMioB,EAASjoB,IACtDioB,EAASE,OAASD,EAElB1lB,EAAM2U,SAAS8Q,KAEhBzlB,EAAM6lB,aAAe,SAAUtY,GAGhC,GADAA,EAAMuY,kBACF9lB,EAAMmM,MAAM+O,WAIZlb,EAAM+lB,QAAS,CACjB/lB,EAAM2U,UAAWuG,WAAW,GAC5B,IAAI8K,GAAUhmB,EAAMimB,MAEhBD,GACFA,EAAQpK,KAAK,SAAUG,GACrB/b,EAAM2U,UAAWuG,WAAW,IAC5Blb,EAAMkmB,cAAcnK,IACnB,SAAUE,GACXjc,EAAM2U,UAAWuG,WAAW,IAC5Blb,EAAMmmB,YAAYlK,KAGpBjc,EAAM2U,UAAWuG,WAAW,MA9B3BkD,EAiCJD,EAAQ/G,EAA2BpX,EAAOoe,GAgI/C,MA9KA9G,GAAUY,EAAQC,GAiDlB5Z,EAAa2Z,IACXjZ,IAAK,WACLG,MAAO,WACL,GAAIumB,KACJ,KAAK3pB,KAAKmQ,MAAMia,WACd,MAAOT,EAGT,IAAIS,IACFb,SAAUvpB,KAAKmQ,MAAMia,WAAWb,UAAYvpB,KAAKmQ,MAAMia,WACvDC,SAAUrqB,KAAKmQ,MAAMia,WAAWC,cAG9BC,IAGJ,KAAK,GAAI9oB,KAAQ4oB,GAAWb,SACtBa,EAAWb,SAAS3a,eAAepN,IAAS4oB,EAAWb,SAAS/nB,IAClE8oB,EAAgB/pB,KAAKiB,EAKzB,KAAK,GAAIA,KAAQ4oB,GAAWC,SACtBD,EAAWC,SAASzb,eAAepN,IAAS4oB,EAAWC,SAAS7oB,IAClE8oB,EAAgB/pB,KAAKiB,EAKzB,KAAK,GAAIjD,KAAK+rB,GAAiB,CAC7B,GAAI9oB,GAAO8oB,EAAgB/rB,GACvBgsB,EAAcvqB,KAAK4pB,cAAcpoB,EAAMxB,KAAKmQ,MAAM3O,GAElC,QAAhB+oB,EACFZ,EAAOnoB,GAAQ,KACN+oB,IACTZ,EAAOnoB,GAAQ+oB,GAInB,MAAOZ,MAGT1mB,IAAK,UACLG,MAAO,WACL,GAAIumB,GAAS3pB,KAAKwqB,UAClB,KAAK,GAAIC,KAASd,GAChB,GAAIA,EAAO/a,eAAe6b,IACF,OAAlBd,EAAOc,GACT,OAAO,CAKb,QAAO,KAGTxnB,IAAK,gBACLG,MAAO,SAAuB5B,EAAM4B,GAClC,GAAIumB,KACJ,KAAK3pB,KAAKmQ,MAAMia,WACd,MAAOT,EAGT,IAAIS,IACFb,UAAWvpB,KAAKmQ,MAAMia,WAAWb,UAAYvpB,KAAKmQ,MAAMia,YAAY5oB,GACpE6oB,UAAWrqB,KAAKmQ,MAAMia,WAAWC,cAAgB7oB,IAG/CkpB,EAAgBpB,EAAiBlmB,KAAU,CAE/C,IAAIgnB,EAAWb,SAAU,CACvB,GAAImB,EACFf,GAAUe,OAEV,KAAK,GAAInsB,KAAK6rB,GAAWb,SAAU,CACjC,GAAIhD,GAAkB6D,EAAWb,SAAShrB,GAAG6E,EACzCmjB,IACFoD,EAAOppB,KAAKgmB,GAKlB,MAAOoD,GAAO7qB,OAAS6qB,EAAS,KAC3B,GAAIe,KAAkB,GAASN,EAAWC,SAAU,CACzD,IAAK,GAAI9rB,KAAK6rB,GAAWC,SAAU,CACjC,GAAI9D,GAAkB6D,EAAWC,SAAS9rB,GAAG6E,EACzCmjB,IACFoD,EAAOppB,KAAKgmB,GAIhB,MAAOoD,GAAO7qB,OAAS6qB,EAAS,KAGlC,OAAO,KAMT1mB,IAAK,QACLG,MAAO,WACL,OAAO,KAGTH,IAAK,OACLG,MAAO,WACL,MAAO,SAGTH,IAAK,gBACLG,MAAO,SAAuB2c,OAI9B9c,IAAK,cAGLG,MAAO,SAAqB6c,QAKvB/D,GACPD,EAAAA,WAAgBc,UAElBne,GAAAA,WAAkBsd,IAEfyO,sBAAsB,IAAI3N,MAAQ,UAAU4N,IAAI,SAAStsB,EAAQU,EAAOJ,GAC3E,YAYA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS8Y,GAA2B7W,EAAM1F,GAAQ,IAAK0F,EAAQ,KAAM,IAAI8W,gBAAe,4DAAgE,QAAOxc,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B0F,EAAP1F,EAElO,QAASyc,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIlZ,WAAU,iEAAoEkZ,GAAeD,GAAS/a,UAAYuC,OAAO0Y,OAAOD,GAAcA,EAAWhb,WAAakb,aAAetY,MAAOmY,EAAU3Y,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe2Y,IAAYzY,OAAO4Y,eAAiB5Y,OAAO4Y,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GAhBje,GAAIjZ,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,GAGT,IAAI4Y,GAAS1d,EAAQ,SAEjB2d,EAAUla,EAAuBia,GAUjCE,EAAS,SAAUC,GAGrB,QAASD,KAGP,MAFA/Z,GAAgBnC,KAAMkc,GAEfd,EAA2Bpb,KAAM+C,OAAOqZ,eAAeF,GAAQzb,MAAMT,KAAMM,YAkCpF,MAvCAgb,GAAUY,EAAQC,GAQlB5Z,EAAa2Z,IACXjZ,IAAK,WACLG,MAAO,WACL,MAAIpD,MAAK0C,MAAMuP,KACkD,IAAxD3J,SAASuJ,SAASM,SAASa,QAAQhT,KAAK0C,MAAMuP,OAE9C,KAIXhP,IAAK,eACLG,MAAO,WACL,MAAIpD,MAAK6qB,YACC7qB,KAAK0C,MAAM+Z,WAAa,IAAM,KAAOzc,KAAK0C,MAAMooB,iBAAmB,UAEpE9qB,KAAK0C,MAAM+Z,WAAa,MAInCxZ,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,MACEqJ,UAAWzc,KAAK0c,gBAClB1c,KAAK0C,MAAMgc,cAMVxC,GACPD,EAAAA,WAAgBc,UAElBne,GAAAA,WAAkBsd,IAEfc,MAAQ,UAAU+N,IAAI,SAASzsB,EAAQU,EAAOJ,GACjD,YAYA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS8Y,GAA2B7W,EAAM1F,GAAQ,IAAK0F,EAAQ,KAAM,IAAI8W,gBAAe,4DAAgE,QAAOxc,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B0F,EAAP1F,EAElO,QAASyc,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIlZ,WAAU,iEAAoEkZ,GAAeD,GAAS/a,UAAYuC,OAAO0Y,OAAOD,GAAcA,EAAWhb,WAAakb,aAAetY,MAAOmY,EAAU3Y,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe2Y,IAAYzY,OAAO4Y,eAAiB5Y,OAAO4Y,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GAhBje,GAAIjZ,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,GAGT,IAAI4Y,GAAS1d,EAAQ,SAEjB2d,EAAUla,EAAuBia,GAUjCE,EAAS,SAAUC,GAGrB,QAASD,KAGP,MAFA/Z,GAAgBnC,KAAMkc,GAEfd,EAA2Bpb,KAAM+C,OAAOqZ,eAAeF,GAAQzb,MAAMT,KAAMM,YAgBpF,MArBAgb,GAAUY,EAAQC,GAQlB5Z,EAAa2Z,IACXjZ,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,OACEqJ,UAAWzc,KAAK0C,MAAM+Z,WAAa,UACrCR,EAAAA,WAAgB7I,cAAc,OAASqJ,UAAW,+BAMjDP,GACPD,EAAAA,WAAgBc,UAElBne,GAAAA,WAAkBsd,IAEfc,MAAQ,UAAUgO,IAAI,SAAS1sB,EAAQU,EAAOJ,GACjD,YAgBA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS8Y,GAA2B7W,EAAM1F,GAAQ,IAAK0F,EAAQ,KAAM,IAAI8W,gBAAe,4DAAgE,QAAOxc,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B0F,EAAP1F,EAElO,QAASyc,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIlZ,WAAU,iEAAoEkZ,GAAeD,GAAS/a,UAAYuC,OAAO0Y,OAAOD,GAAcA,EAAWhb,WAAakb,aAAetY,MAAOmY,EAAU3Y,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe2Y,IAAYzY,OAAO4Y,eAAiB5Y,OAAO4Y,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GApBje,GAAIjZ,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,GAGT,IAAI4Y,GAAS1d,EAAQ,SAEjB2d,EAAUla,EAAuBia,GAEjCqC,EAAU/f,EAAQ,YAElBggB,EAAWvc,EAAuBsc,GAYlCnC,EAAS,SAAUC,GAGrB,QAASD,KAGP,MAFA/Z,GAAgBnC,KAAMkc,GAEfd,EAA2Bpb,KAAM+C,OAAOqZ,eAAeF,GAAQzb,MAAMT,KAAMM,YAgBpF,MArBAgb,GAAUY,EAAQC,GAQlB5Z,EAAa2Z,IACXjZ,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,OACEqJ,UAAW,2BACbR,EAAAA,WAAgB7I,cAAckL,EAAAA,WAAkB,WAM/CpC,GACPD,EAAAA,WAAgBc,UAElBne,GAAAA,WAAkBsd,IAEf0C,WAAW,GAAG5B,MAAQ,UAAUiO,IAAI,SAAS3sB,EAAQU,EAAOJ,GAC/D,YAqEA,SAASssB,GAAwBlpB,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAImpB,KAAa,IAAW,MAAPnpB,EAAe,IAAK,GAAIiB,KAAOjB,GAAWe,OAAOvC,UAAUoO,eAAe/P,KAAKmD,EAAKiB,KAAMkoB,EAAOloB,GAAOjB,EAAIiB,GAAgC,OAAtBkoB,GAAAA,WAAiBnpB,EAAYmpB,EAElQ,QAASppB,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS8Y,GAA2B7W,EAAM1F,GAAQ,IAAK0F,EAAQ,KAAM,IAAI8W,gBAAe,4DAAgE,QAAOxc,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B0F,EAAP1F,EAElO,QAASyc,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIlZ,WAAU,iEAAoEkZ,GAAeD,GAAS/a,UAAYuC,OAAO0Y,OAAOD,GAAcA,EAAWhb,WAAakb,aAAetY,MAAOmY,EAAU3Y,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe2Y,IAAYzY,OAAO4Y,eAAiB5Y,OAAO4Y,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GA3Eje,GAAIjZ,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAQwsB,gBAAkBxsB,EAAQysB,sBAAwBzsB,EAAQ0sB,cAAgB1sB,EAAQ2sB,eAAiBjoB,MAE3G,IAAI2F,GAAU3K,EAAQ,UAElBuK,EAAW9G,EAAuBkH,GAElC+S,EAAS1d,EAAQ,SAEjB2d,EAAUla,EAAuBia,GAEjC8C,EAAUxgB,EAAQ,aAElBilB,EAAWxhB,EAAuB+c,GAElCC,EAAUzgB,EAAQ,aAElB0gB,EAAWjd,EAAuBgd,GAElCyM,EAAQltB,EAAQ,WAEhBmtB,EAAS1pB,EAAuBypB,GAEhCE,EAAaptB,EAAQ,iBAErBqtB,EAAc5pB,EAAuB2pB,GAErCrN,EAAU/f,EAAQ,aAElBggB,EAAWvc,EAAuBsc,GAElCtZ,EAASzG,EAAQ,eAEjBuG,EAAU9C,EAAuBgD,GAEjCqH,EAAmB9N,EAAQ,mCAE3BoO,EAASpO,EAAQ,wBAEjB0G,EAAQ1G,EAAQ,uBAEhBqG,EAAS5C,EAAuBiD,GAEhCgF,EAAa1L,EAAQ,6BAErBwL,EAAc/H,EAAuBiI,GAErClC,EAAYxJ,EAAQ,2BAEpBqJ,EAAa5F,EAAuB+F,GAEpCrB,EAASnI,EAAQ,wBAEjB0H,EAAUjE,EAAuB0E,GAEjCmlB,EAAUttB,EAAQ,sBAElBqY,EAASuU,EAAwBU,GAEjCvC,EAAc/qB,EAAQ,0BAEtB8rB,EAAac,EAAwB7B,GAkBrCkC,EAAiB3sB,EAAQ2sB,eAAiB,SAAUM,GAGtD,QAASN,GAAe7oB,GACtBP,EAAgBnC,KAAMurB,EAEtB,IAAIvnB,GAAQoX,EAA2Bpb,KAAM+C,OAAOqZ,eAAemP,GAAgB1sB,KAAKmB,KAAM0C,GAe9F,OAbAsB,GAAMmM,OACJqM,SAAU,GAEV4N,YACE5N,UAAW4N,EAAW0B,kBAAmB1B,EAAW2B,mBAClDC,oBAAqBtpB,EAAMyS,QAAQ8W,aACjC7B,EAAW8B,mBACbC,oBAAqBzpB,EAAMyS,QAAQiX,eAIvClN,WAAW,GAENlb,EAqHT,MAzIAsX,GAAUiQ,EAAgBM,GAuB1BtpB,EAAagpB,IACXtoB,IAAK,cACLG,MAAO,WACL,GAAIipB,KAEJ,IAAIrsB,KAAK0C,MAAMyS,QAAQmX,aAAe,EAAG,CACvC,GAAI5Z,GAAU6Z,SAAS,2DAA4D,4DAA6DvsB,KAAK0C,MAAMyS,QAAQmX,aAEnKD,GAAQ9rB,KAAK+b,YAAY5J,GACvB4Z,aAAgBtsB,KAAK0C,MAAMyS,QAAQmX,eAClC,IAGL,GAAItsB,KAAK0C,MAAM4D,KAAKkmB,IAAIC,oBAAsB,EAAG,CAC/C,GAAI/Z,GAAU6Z,SAAS,yDAA0D,0DAA2DvsB,KAAK0C,MAAM4D,KAAKkmB,IAAIC,oBAEhKJ,GAAQ9rB,KAAK+b,YAAY5J,GACvB+Z,oBAAuBzsB,KAAK0C,MAAM4D,KAAKkmB,IAAIC,sBAC1C,IAGL,MAAOJ,GAAQvtB,OAASutB,EAAQ5L,KAAK,KAAO,QAG9Cxd,IAAK,QACLG,MAAO,WACL,GAAIumB,GAAS3pB,KAAKwqB,UAClB,OAAIb,GAAOnN,UACT7U,EAAAA,WAAmB6I,MAAMmZ,EAAOnN,SAAS,KAClC,GACJxc,KAAKmQ,MAAMqM,SAASkQ,SAAW1sB,KAAK0C,MAAM4D,KAAKkW,UAClD7U,EAAAA,WAAmBqf,KAAKzK,QAAQ,+CACzB,IAEA,KAIXtZ,IAAK,OACLG,MAAO,WACL,MAAOuB,GAAAA,WAAe2a,KAAKtf,KAAK0C,MAAM4D,KAAKiZ,QAAQ/C,UACjDA,SAAYxc,KAAKmQ,MAAMqM,cAI3BvZ,IAAK,gBACLG,MAAO,SAAuB2c,GAC5B/f,KAAK2Y,UACH6D,SAAY,KAGdxc,KAAK0C,MAAMiqB,SAAS5M,EAAQvD,SAAUuD,EAAQ6M,KAAM7M,EAAQ5K,YAG9DlS,IAAK,cACLG,MAAO,SAAqB6c,GAC1BtY,EAAAA,WAAmBklB,SAAS5M,MAG9Bhd,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,QACE0Z,SAAU9sB,KAAK6pB,aAAcpN,UAAW,mBAC1CR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,kCACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,iBACbR,EAAAA,WAAgB7I,cACd,MACEqJ,UAAW,eACbF,QAAQ,qBAGZN,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,cACbR,EAAAA,WAAgB7I,cACduY,EAAAA,YACE/C,MAAOrM,QAAQ,gBAAiBwQ,MAAO,cACvCrE,WAAY,WAAYG,aAAc,WACtCJ,SAAUzoB,KAAKipB,eACjBhN,EAAAA,WAAgB7I,cAAc,SAAWwJ,KAAM,OAAQS,GAAI,cAAeZ,UAAW,eACnF+B,SAAUxe,KAAKmQ,MAAM+O,UACrB+I,SAAUjoB,KAAKwpB,UAAU,YACzBpmB,MAAOpD,KAAKmQ,MAAMqM,aAGxBP,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,gBACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,OACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,4BACbR,EAAAA,WAAgB7I,cACd4L,EAAAA,YACEvC,UAAW,cAAegC,QAASze,KAAKmQ,MAAM+O,WAChD3C,QAAQ,6BAWjBgP,GACPE,EAAAA,YAEEH,EAAgB1sB,EAAQ0sB,cAAgB,SAAUnP,GAGpD,QAASmP,KAGP,MAFAnpB,GAAgBnC,KAAMsrB,GAEflQ,EAA2Bpb,KAAM+C,OAAOqZ,eAAekP,GAAe7qB,MAAMT,KAAMM,YA4D3F,MAjEAgb,GAAUgQ,EAAenP,GAQzB5Z,EAAa+oB,IACXroB,IAAK,cACLG,MAAO,WACL,MAAIpD,MAAK0C,MAAMyS,QAAQ6X,QACd1Q,YAAYC,QAAQ,8DAAgE0Q,YAAejtB,KAAK0C,MAAMyS,QAAQ6X,QAAQ/O,YAAa,GAE3I1B,QAAQ,+CAInBtZ,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,OACEqJ,UAAW,kCACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,iBACbR,EAAAA,WAAgB7I,cACd,MACEqJ,UAAW,eACbF,QAAQ,qBAGZN,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,iCACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,gBACbR,EAAAA,WAAgB7I,cACd,QACEqJ,UAAW,iBACb,iBAGJR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,gBACbR,EAAAA,WAAgB7I,cACd,KACEqJ,UAAW,QACbF,QAAQ,kDAEVN,EAAAA,WAAgB7I,cACd,KACEqJ,UAAW,cACbzc,KAAKipB,sBASVqC,GACPrP,EAAAA,WAAgBc,WAEdsO,EAAwBzsB,EAAQysB,sBAAwB,SAAU5I,GAGpE,QAAS4I,KAGP,MAFAlpB,GAAgBnC,KAAMqrB,GAEfjQ,EAA2Bpb,KAAM+C,OAAOqZ,eAAeiP,GAAuB5qB,MAAMT,KAAMM,YA6BnG,MAlCAgb,GAAU+P,EAAuB5I,GAQjClgB,EAAa8oB,IACXpoB,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,OACEqJ,UAAW,kCACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,iBACbR,EAAAA,WAAgB7I,cACd,MACEqJ,UAAW,eACbF,QAAQ,qBAGZN,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,iCACbR,EAAAA,WAAgB7I,cAAckL,EAAAA,YAAoB7B,UAAW,+BAO9D4O,GACPpP,EAAAA,WAAgBc,WAEdqO,EAAkBxsB,EAAQwsB,gBAAkB,SAAUtI,GAGxD,QAASsI,KAGP,MAFAjpB,GAAgBnC,KAAMorB,GAEfhQ,EAA2Bpb,KAAM+C,OAAOqZ,eAAegP,GAAiB3qB,MAAMT,KAAMM,YAqM7F,MA1MAgb,GAAU8P,EAAiBtI,GAQ3BvgB,EAAa6oB,IACXnoB,IAAK,mBACLG,MAAO,SAA0BQ,GAC/B,MAAIA,GAAKspB,WAEAjR,EAAAA,WAAgB7I,cACrB,KACEtB,KAAMlO,EAAKspB,WAAWC,aAAc1Q,UAAW,eACjDR,EAAAA,WAAgB7I,cAAcmQ,EAAAA,YAAoBjd,KAAM1C,EAAKspB,WAAY/P,KAAM,SAKxElB,EAAAA,WAAgB7I,cACrB,QACEqJ,UAAW,eACbR,EAAAA,WAAgB7I,cAAcmQ,EAAAA,YAAoBpG,KAAM,YAMhEla,IAAK,iBACLG,MAAO,SAAwBQ,GAC7B,MAAIA,GAAKspB,WAEAjR,EAAAA,WAAgB7I,cACrB,KACEtB,KAAMlO,EAAKspB,WAAWC,aAAc1Q,UAAW,cACjD7Y,EAAKspB,WAAW1Q,UAKTP,EAAAA,WAAgB7I,cACrB,QACEqJ,UAAW,cACb7Y,EAAKwpB,wBAMbnqB,IAAK,gBACLG,MAAO,WACL,GAAI8f,GAASljB,IAGb,OAAOic,GAAAA,WAAgB7I,cACrB,OACEqJ,UAAW,6BACbR,EAAAA,WAAgB7I,cACd,MACEqJ,UAAW,cACbzc,KAAK0C,MAAM2qB,QAAQzK,IAAI,SAAUhf,GAC/B,MAAOqY,GAAAA,WAAgB7I,cACrB,MACEqJ,UAAW,kBAAmBxZ,IAAKW,EAAKyZ,IAC1CpB,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,0BACbyG,EAAOoK,iBAAiB1pB,IAE1BqY,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,0BACbyG,EAAOqK,eAAe3pB,IAExBqY,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,mBACb7Y,EAAK4pB,aACLvR,EAAAA,WAAgB7I,cACd,QACEqJ,UAAW,iBACb,iBAEF7Y,EAAK6pB,cAEPxR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,wBACbR,EAAAA,WAAgB7I,cACd,QACE1S,MAAOkD,EAAK8pB,WAAW7S,OAAO,QAChCjX,EAAK8pB,WAAWzP,oBAU9Bhb,IAAK,qBACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,OACEqJ,UAAW,6BACbR,EAAAA,WAAgB7I,cACd,MACEqJ,UAAW,cACbR,EAAAA,WAAgB7I,cACd,MACEqJ,UAAW,iCACbF,QAAQ,8DAOhBtZ,IAAK,uBACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,OACEqJ,UAAW,+BACbR,EAAAA,WAAgB7I,cACd,MACEqJ,UAAW,cACb9F,EAAOgX,MAAM,EAAG,GAAG/K,IAAI,SAAUrkB,GAC/B,MAAO0d,GAAAA,WAAgB7I,cACrB,MACEqJ,UAAW,kBAAmBxZ,IAAK1E,GACrC0d,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,0BACbR,EAAAA,WAAgB7I,cACd,QACEqJ,UAAW,eACbR,EAAAA,WAAgB7I,cAAcmQ,EAAAA,YAAoBpG,KAAM,UAG5DlB,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,0BACbR,EAAAA,WAAgB7I,cACd,QACEqJ,UAAW,kBAAmBsL,OAASpH,MAAOhK,EAAAA,OAAW,GAAI,KAAO,OACtE,MAGJsF,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,mBACbR,EAAAA,WAAgB7I,cACd,QACEqJ,UAAW,kBAAmBsL,OAASpH,MAAOhK,EAAAA,OAAW,GAAI,IAAM,OACrE,KAEFsF,EAAAA,WAAgB7I,cACd,QACEqJ,UAAW,iBACb,iBAEFR,EAAAA,WAAgB7I,cACd,QACEqJ,UAAW,kBAAmBsL,OAASpH,MAAOhK,EAAAA,OAAW,GAAI,IAAM,OACrE,MAGJsF,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,wBACbR,EAAAA,WAAgB7I,cACd,QACEqJ,UAAW,kBAAmBsL,OAASpH,MAAOhK,EAAAA,OAAW,GAAI,KAAO,OACtE,cAUd1T,IAAK,SACLG,MAAO,WACL,MAAIpD,MAAK0C,MAAMkrB,SACT5tB,KAAK0C,MAAM2qB,QAAQvuB,OACdkB,KAAK6tB,gBAEL7tB,KAAK8tB,qBAGP9tB,KAAK+tB,2BAKX3C,GACPnP,EAAAA,WAAgBc,WAEdb,EAAS,SAAU8R,GAGrB,QAAS9R,GAAOxZ,GACdP,EAAgBnC,KAAMkc,EAEtB,IAAI+R,GAAS7S,EAA2Bpb,KAAM+C,OAAOqZ,eAAeF,GAAQrd,KAAKmB,KAAM0C,GAiBvF,OAfAurB,GAAOnO,WAAa,SAAUtD,EAAUoQ,EAAMzX,GAC5C8Y,EAAOtV,UACLxD,QAASA,IAGXnP,EAAAA,WAAgB2F,UAAU,EAAGS,EAAiB8hB,gBAAiB1R,SAAUA,EAAUoQ,KAAMA,GAAQqB,EAAOvrB,MAAM4D,KAAM2nB,EAAOvrB,MAAM4D,OACjIN,EAAAA,WAAgB2F,UAAU,EAAGe,EAAOyhB,gBAAgBF,EAAOvrB,MAAM4D,KAAMkW,EAAUoQ,IAEjFjlB,EAAAA,WAAmBoY,QAAQxD,QAAQ,kDAGrC0R,EAAO9d,OACLyd,UAAU,EACVzY,QAAS,MAEJ8Y,EAqET,MA3FA3S,GAAUY,EAAQ8R,GAyBlBzrB,EAAa2Z,IACXjZ,IAAK,oBACLG,MAAO,WACL,GAAIgrB,GAASpuB,IAEb8J,GAAAA,WAAoBukB,KAClB3tB,MAAO6b,QAAQ,mBACf+R,OAAQ/R,QAAQ,yBAGlBgS,QAAQC,KAAK7pB,EAAAA,WAAeG,IAAI9E,KAAK0C,MAAM4D,KAAKiZ,QAAQ/C,UAAW7X,EAAAA,WAAeG,IAAID,EAAAA,WAAgBC,IAAI,yBAA2BwB,KAAMtG,KAAK0C,MAAM4D,KAAK+W,OAAQuC,KAAK,SAAUC,GAChLuO,EAAOzV,UACLiV,UAAU,EACVzY,SACEmX,aAAczM,EAAK,GAAGyM,aACtBL,WAAYpM,EAAK,GAAGoM,WACpBG,WAAYvM,EAAK,GAAGuM,WACpBY,QAASnN,EAAK,GAAGmN,SAAW,EAAGnkB,EAAAA,YAAkBgX,EAAK,GAAGmN,SAAW,QAIxEhnB,EAAAA,WAAgB2F,UAAU,EAAGS,EAAiBqiB,WAAW5O,EAAK,GAAG6O,eAOrEzrB,IAAK,gBAILG,MAAO,WACL,MAAIpD,MAAKmQ,MAAMyd,SACT5tB,KAAKmQ,MAAMgF,QAAQmX,aAAe,EAE7BrQ,EAAAA,WAAgB7I,cAAcmY,GAAkBjlB,KAAMtG,KAAK0C,MAAM4D,KACtE6O,QAASnV,KAAKmQ,MAAMgF,QACpBwX,SAAU3sB,KAAK8f,aAIR7D,EAAAA,WAAgB7I,cAAckY,GAAiBnW,QAASnV,KAAKmQ,MAAMgF,UAKrE8G,EAAAA,WAAgB7I,cAAciY,EAAuB,SAKlEpoB,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,MACA,KACApT,KAAK2uB,gBACL1S,EAAAA,WAAgB7I,cAAcgY,GAAmBwC,SAAU5tB,KAAKmQ,MAAMyd,SACpEP,QAASrtB,KAAK0C,MAAM,2BAMrBwZ,GACPD,EAAAA,WAAgBc,UAElBne,GAAAA,WAAkBsd,IAEfkH,cAAc,GAAGwL,kCAAkC,GAAGnJ,uBAAuB,GAAGhE,sBAAsB,GAAGoN,4BAA4B,GAAGnN,0BAA0B,GAAGgE,uBAAuB,IAAIoJ,qBAAqB,IAAIC,yBAAyB,IAAIpN,YAAY,GAAGC,YAAY,GAAGoN,UAAU,GAAGC,gBAAgB,GAAG7K,YAAY,GAAGlb,OAAS,SAAS8T,MAAQ,UAAUkS,IAAI,SAAS5wB,EAAQU,EAAOJ,GACtY,YAkDA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS8Y,GAA2B7W,EAAM1F,GAAQ,IAAK0F,EAAQ,KAAM,IAAI8W,gBAAe,4DAAgE,QAAOxc,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B0F,EAAP1F,EAElO,QAASyc,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIlZ,WAAU,iEAAoEkZ,GAAeD,GAAS/a,UAAYuC,OAAO0Y,OAAOD,GAAcA,EAAWhb,WAAakb,aAAetY,MAAOmY,EAAU3Y,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe2Y,IAAYzY,OAAO4Y,eAAiB5Y,OAAO4Y,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GAtDje,GAAIjZ,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,GAGT,IAAI4Y,GAAS1d,EAAQ,SAEjB2d,EAAUla,EAAuBia,GAEjC+C,EAAUzgB,EAAQ,aAElB0gB,EAAWjd,EAAuBgd,GAElCyM,EAAQltB,EAAQ,WAEhBmtB,EAAS1pB,EAAuBypB,GAEhCE,EAAaptB,EAAQ,iBAErBqtB,EAAc5pB,EAAuB2pB,GAErCyD,EAAU7wB,EAAQ,aAElB8wB,EAAWrtB,EAAuBotB,GAElCE,EAAe/wB,EAAQ,oBAEvBgxB,EAAgBvtB,EAAuBstB,GAEvC9oB,EAAQjI,EAAQ,uBAEhB0G,EAAQ1G,EAAQ,uBAEhBqG,EAAS5C,EAAuBiD,GAEhCgF,EAAa1L,EAAQ,6BAErBwL,EAAc/H,EAAuBiI,GAErClC,EAAYxJ,EAAQ,2BAEpBqJ,EAAa5F,EAAuB+F,GAEpCrB,EAASnI,EAAQ,wBAEjB0H,EAAUjE,EAAuB0E,GAcjCyV,EAAS,SAAU2P,GAGrB,QAAS3P,GAAOxZ,GACdP,EAAgBnC,KAAMkc,EAEtB,IAAIlY,GAAQoX,EAA2Bpb,KAAM+C,OAAOqZ,eAAeF,GAAQrd,KAAKmB,KAAM0C,GAwCtF,OAtCAsB,GAAMmM,OACJ+O,WAAa,EAEbqQ,mBAAsB7sB,EAAM4D,KAAKipB,mBACjCC,iCAAoC9sB,EAAM4D,KAAKkpB,iCAC/CC,6BAAgC/sB,EAAM4D,KAAKmpB,6BAC3CC,6BAAgChtB,EAAM4D,KAAKopB,6BAE3C/F,WAGF3lB,EAAM2rB,8BACJvsB,MAAS,EACTwsB,KAAQ,eACRhH,MAASrM,QAAQ,eAEjBnZ,MAAS,EACTwsB,KAAQ,WACRhH,MAASrM,QAAQ,oBAEjBnZ,MAAS,EACTwsB,KAAQ,gBACRhH,MAASrM,QAAQ,YAGnBvY,EAAM6rB,qBACJzsB,MAAS,EACTwsB,KAAQ,kBACRhH,MAASrM,QAAQ,QAEjBnZ,MAAS,EACTwsB,KAAQ,WACRhH,MAASrM,QAAQ,cAEjBnZ,MAAS,EACTwsB,KAAQ,OACRhH,MAASrM,QAAQ,uCAEZvY,EAyJT,MAtMAsX,GAAUY,EAAQ2P,GAgDlBtpB,EAAa2Z,IACXjZ,IAAK,OACLG,MAAO,WACL,MAAOuB,GAAAA,WAAe2a,KAAKtf,KAAK0C,MAAM4D,KAAKiZ,QAAQpK,SACjDoa,mBAAsBvvB,KAAKmQ,MAAMof,mBACjCC,iCAAoCxvB,KAAKmQ,MAAMqf,iCAC/CC,6BAAgCzvB,KAAKmQ,MAAMsf,6BAC3CC,6BAAgC1vB,KAAKmQ,MAAMuf,kCAI/CzsB,IAAK,gBACLG,MAAO,WACL4C,EAAAA,WAAgB2F,UAAU,EAAGpF,EAAMupB,YACjCP,mBAAsBvvB,KAAKmQ,MAAMof,mBACjCC,iCAAoCxvB,KAAKmQ,MAAMqf,iCAC/CC,6BAAgCzvB,KAAKmQ,MAAMsf,6BAC3CC,6BAAgC1vB,KAAKmQ,MAAMuf,gCAE7C/nB,EAAAA,WAAmBoY,QAAQxD,QAAQ,6CAGrCtZ,IAAK,cACLG,MAAO,SAAqB6c,GACD,MAArBA,EAAUC,OACZvY,EAAAA,WAAmB6I,MAAM+L,QAAQ,sCAEjC5U,EAAAA,WAAmBklB,SAAS5M,MAIhChd,IAAK,oBACLG,MAAO,WACL0G,EAAAA,WAAoBukB,KAClB3tB,MAAO6b,QAAQ,iBACf+R,OAAQ/R,QAAQ,4BAIpBtZ,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,QACE0Z,SAAU9sB,KAAK6pB,aAAcpN,UAAW,mBAC1CR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,kCACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,iBACbR,EAAAA,WAAgB7I,cACd,MACEqJ,UAAW,eACbF,QAAQ,0BAGZN,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,cACbR,EAAAA,WAAgB7I,cACd,WACA,KACA6I,EAAAA,WAAgB7I,cACd,SACA,KACAmJ,QAAQ,qBAEVN,EAAAA,WAAgB7I,cACduY,EAAAA,YACE/C,MAAOrM,QAAQ,oBACfkM,SAAUlM,QAAQ,6GAClBwQ,MAAO,wBACPrE,WAAY,WAAYG,aAAc,YACxC5M,EAAAA,WAAgB7I,cAAckc,EAAAA,YAAyBjS,GAAI,wBACzDmB,SAAUxe,KAAKmQ,MAAM+O,UACrB6Q,OAAQ,aACRC,QAAS,iBACTC,QAAS1T,QAAQ,mCACjB2T,SAAU3T,QAAQ,qCAClB0L,SAAUjoB,KAAKwpB,UAAU,sBACzBpmB,MAAOpD,KAAKmQ,MAAMof,sBAEtBtT,EAAAA,WAAgB7I,cACduY,EAAAA,YACE/C,MAAOrM,QAAQ,8BACfwQ,MAAO,sCACPrE,WAAY,WAAYG,aAAc,YACxC5M,EAAAA,WAAgB7I,cAAcgc,EAAAA,YAAoB/R,GAAI,sCACpDmB,SAAUxe,KAAKmQ,MAAM+O,UACrB+I,SAAUjoB,KAAKwpB,UAAU,oCACzBpmB,MAAOpD,KAAKmQ,MAAMqf,iCAClBW,QAASnwB,KAAK2vB,gCAGpB1T,EAAAA,WAAgB7I,cACd,WACA,KACA6I,EAAAA,WAAgB7I,cACd,SACA,KACAmJ,QAAQ,4BAEVN,EAAAA,WAAgB7I,cACduY,EAAAA,YACE/C,MAAOrM,QAAQ,mBACfwQ,MAAO,kCACPrE,WAAY,WAAYG,aAAc,YACxC5M,EAAAA,WAAgB7I,cAAcgc,EAAAA,YAAoB/R,GAAI,kCACpDmB,SAAUxe,KAAKmQ,MAAM+O,UACrB+I,SAAUjoB,KAAKwpB,UAAU,gCACzBpmB,MAAOpD,KAAKmQ,MAAMsf,6BAClBU,QAASnwB,KAAK6vB,sBAElB5T,EAAAA,WAAgB7I,cACduY,EAAAA,YACE/C,MAAOrM,QAAQ,sBACfwQ,MAAO,kCACPrE,WAAY,WAAYG,aAAc,YACxC5M,EAAAA,WAAgB7I,cAAcgc,EAAAA,YAAoB/R,GAAI,kCACpDmB,SAAUxe,KAAKmQ,MAAM+O,UACrB+I,SAAUjoB,KAAKwpB,UAAU,gCACzBpmB,MAAOpD,KAAKmQ,MAAMuf,6BAClBS,QAASnwB,KAAK6vB,wBAItB5T,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,gBACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,OACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,4BACbR,EAAAA,WAAgB7I,cACd4L,EAAAA,YACEvC,UAAW,cAAegC,QAASze,KAAKmQ,MAAM+O,WAChD3C,QAAQ,0BAWjBL,GACPuP,EAAAA,WAEF7sB,GAAAA,WAAkBsd,IAEfkU,sBAAsB,GAAG3O,sBAAsB,GAAGoN,4BAA4B,GAAGnN,0BAA0B,GAAGgE,uBAAuB,IAAI9D,YAAY,GAAGoN,UAAU,GAAGC,gBAAgB,GAAGoB,YAAY,GAAGC,mBAAmB,GAAGtT,MAAQ,UAAUuT,IAAI,SAASjyB,EAAQU,EAAOJ,GAC9Q,YAuBA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS8Y,GAA2B7W,EAAM1F,GAAQ,IAAK0F,EAAQ,KAAM,IAAI8W,gBAAe,4DAAgE,QAAOxc,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B0F,EAAP1F,EAElO,QAASyc,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIlZ,WAAU,iEAAoEkZ,GAAeD,GAAS/a,UAAYuC,OAAO0Y,OAAOD,GAAcA,EAAWhb,WAAakb,aAAetY,MAAOmY,EAAU3Y,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe2Y,IAAYzY,OAAO4Y,eAAiB5Y,OAAO4Y,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GA3Bje,GAAIjZ,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAQ4xB,WAAa5xB,EAAQ6xB,QAAUntB,MAEvC,IAAI0Y,GAAS1d,EAAQ,SAEjB2d,EAAUla,EAAuBia,GAEjC0U,EAAepyB,EAAQ,gBAEvBqyB,EAAMryB,EAAQ,SAEdsyB,EAAO7uB,EAAuB4uB,GAE9B5rB,EAASzG,EAAQ,cAEPyD,GAAuBgD,GAavBnG,EAAQ6xB,QAAU,SAAUtU,GAGxC,QAASsU,KAGP,MAFAtuB,GAAgBnC,KAAMywB,GAEfrV,EAA2Bpb,KAAM+C,OAAOqZ,eAAeqU,GAAShwB,MAAMT,KAAMM,YAgCrF,MArCAgb,GAAUmV,EAAStU,GAQnB5Z,EAAakuB,IACXxtB,IAAK,SACLG,MAAO,WACL,GAAIsd,GAAS1gB,IAGb,OAAOic,GAAAA,WAAgB7I,cACrB,OACEqJ,UAAW,uBACbzc,KAAK0C,MAAMyS,QAAQyN,IAAI,SAAUiO,GAC/B,MAAO5U,GAAAA,WAAgB7I,cACrBsd,EAAaI,MACXC,GAAIrQ,EAAOhe,MAAMsuB,QAAUH,EAAOvnB,UAAY,IAC9CmT,UAAW,kBACXqO,gBAAiB,SACjB7nB,IAAK4tB,EAAOvnB,WACd2S,EAAAA,WAAgB7I,cACd,QACEqJ,UAAW,iBACboU,EAAOjB,MAETiB,EAAOrvB,aAQVivB,GACPxU,EAAAA,WAAgBc,WAEDne,EAAQ4xB,WAAa,SAAU/N,GAG9C,QAAS+N,KAGP,MAFAruB,GAAgBnC,KAAMwwB,GAEfpV,EAA2Bpb,KAAM+C,OAAOqZ,eAAeoU,GAAY/vB,MAAMT,KAAMM,YAkCxF,MAvCAgb,GAAUkV,EAAY/N,GAQtBlgB,EAAaiuB,IACXvtB,IAAK,SACLG,MAAO,WACL,GAAI2f,GAAS/iB,IAGb,OAAOic,GAAAA,WAAgB7I,cACrB,MACEqJ,UAAW,gBAAiB2I,KAAM,QACpCplB,KAAK0C,MAAMyS,QAAQyN,IAAI,SAAUiO,GAC/B,MAAO5U,GAAAA,WAAgB7I,cACrBwd,EAAAA,YACE3e,KAAM8Q,EAAOrgB,MAAMsuB,QAAUH,EAAOvnB,UAAY,IAChDrG,IAAK4tB,EAAOvnB,WACd2S,EAAAA,WAAgB7I,cACdsd,EAAaI,MACXC,GAAIhO,EAAOrgB,MAAMsuB,QAAUH,EAAOvnB,UAAY,KAChD2S,EAAAA,WAAgB7I,cACd,QACEqJ,UAAW,iBACboU,EAAOjB,MAETiB,EAAOrvB,cASZgvB,GACPvU,EAAAA,WAAgBc,aAEfqG,cAAc,GAAG6N,QAAQ,GAAGjU,MAAQ,QAAQkU,eAAe,iBAAiBC,IAAI,SAAS7yB,EAAQU,EAAOJ,GAC3G,YAkCA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS8Y,GAA2B7W,EAAM1F,GAAQ,IAAK0F,EAAQ,KAAM,IAAI8W,gBAAe,4DAAgE,QAAOxc,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B0F,EAAP1F,EAElO,QAASyc,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIlZ,WAAU,iEAAoEkZ,GAAeD,GAAS/a,UAAYuC,OAAO0Y,OAAOD,GAAcA,EAAWhb,WAAakb,aAAetY,MAAOmY,EAAU3Y,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe2Y,IAAYzY,OAAO4Y,eAAiB5Y,OAAO4Y,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GAsHje,QAAS/V,GAAO2rB,GACd,OACEC,KAAQD,EAAMC,KAAKA,KACnB/qB,KAAQ8qB,EAAMvV,KAAKvV,KACnBgrB,mBAAoBF,EAAM,qBAI9B,QAAS5nB,KACP,QACEyI,KAAMpN,EAAAA,WAAgBC,IAAI,cAAgB,iBAC1CwE,WAAY,EAAGhE,EAAYC,SAASE,GAAQ8rB,EAAAA,cAE5Ctf,KAAMpN,EAAAA,WAAgBC,IAAI,cAAgB,mBAC1CwE,WAAY,EAAGhE,EAAYC,SAASE,GAAQ+rB,EAAAA;GAE5Cvf,KAAMpN,EAAAA,WAAgBC,IAAI,cAAgB,uBAC1CwE,WAAY,EAAGhE,EAAYC,SAASE,GAAQgsB,EAAAA,cA7KhD,GAAIlvB,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAQ6G,OAASA,EACjB7G,EAAQ4K,MAAQA,CAEhB,IAAIwS,GAAS1d,EAAQ,SAEjB2d,EAAUla,EAAuBia,GAEjC1W,EAAchH,EAAQ,eAEtBozB,EAAQpzB,EAAQ,UAEhBqzB,EAAgBrzB,EAAQ,mBAExBizB,EAAiBxvB,EAAuB4vB,GAExCC,EAAkBtzB,EAAQ,qBAE1BkzB,EAAmBzvB,EAAuB6vB,GAE1CC,EAAqBvzB,EAAQ,yBAE7BmzB,EAAsB1vB,EAAuB8vB,GAE7C9sB,EAASzG,EAAQ,eAEjBuG,EAAU9C,EAAuBgD,GAUjCmX,EAAS,SAAUC,GAGrB,QAASD,GAAOxZ,GACdP,EAAgBnC,KAAMkc,EAEtB,IAAIlY,GAAQoX,EAA2Bpb,KAAM+C,OAAOqZ,eAAeF,GAAQrd,KAAKmB,KAAM0C,GAiBtF,OAfAsB,GAAM8tB,UAAY,WACZ9tB,EAAMmM,MAAM4hB,SACd/tB,EAAM2U,UACJoZ,UAAU,IAGZ/tB,EAAM2U,UACJoZ,UAAU,KAKhB/tB,EAAMmM,OACJ4hB,UAAU,GAEL/tB,EAyFT,MA/GAsX,GAAUY,EAAQC,GA2BlB5Z,EAAa2Z,IACXjZ,IAAK,wBAILG,MAAO,WACL,MAAIpD,MAAKmQ,MAAM4hB,SACN,gCAEA,8BAIX9uB,IAAK,yBACLG,MAAO,WACL,MAAIpD,MAAKmQ,MAAM4hB,SACN,mBAEA,iBAIX9uB,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,OACEqJ,UAAW,qBACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,eACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,aACbR,EAAAA,WAAgB7I,cACd,MACEqJ,UAAW,aACbF,QAAQ,wBAEVN,EAAAA,WAAgB7I,cACd,UACEqJ,UAAW,mEACXG,KAAM,SACNC,QAAS7c,KAAK8xB,UACdE,gBAAiB,OACjBC,gBAAiBjyB,KAAKmQ,MAAM4hB,SAAW,OAAS,SAClD9V,EAAAA,WAAgB7I,cACd,KACEqJ,UAAW,iBACb,WAKRR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAWzc,KAAKkyB,0BAClBjW,EAAAA,WAAgB7I,cAAcse,EAAMlB,YAAcrb,QAAStQ,EAAAA,WAAgBC,IAAI,gBAC7EksB,QAASnsB,EAAAA,WAAgBC,IAAI,iBAEjCmX,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,aACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,OACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,gCACbR,EAAAA,WAAgB7I,cAAcse,EAAMjB,SAAWtb,QAAStQ,EAAAA,WAAgBC,IAAI,gBAC1EksB,QAASnsB,EAAAA,WAAgBC,IAAI,iBAEjCmX,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,YACbzc,KAAK0C,MAAMgc,iBAShBxC,GACPD,EAAAA,WAAgBc,UAElBne,GAAAA,WAAkBsd,IAsBfkH,cAAc,GAAG+O,oBAAoB,GAAGC,kBAAkB,GAAGC,SAAS,GAAGC,wBAAwB,GAAGtV,MAAQ,QAAQlX,cAAc,gBAAgBysB,IAAI,SAASj0B,EAAQU,EAAOJ,GACjL,YA6CA,SAASssB,GAAwBlpB,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAImpB,KAAa,IAAW,MAAPnpB,EAAe,IAAK,GAAIiB,KAAOjB,GAAWe,OAAOvC,UAAUoO,eAAe/P,KAAKmD,EAAKiB,KAAMkoB,EAAOloB,GAAOjB,EAAIiB,GAAgC,OAAtBkoB,GAAAA,WAAiBnpB,EAAYmpB,EAElQ,QAASppB,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS8Y,GAA2B7W,EAAM1F,GAAQ,IAAK0F,EAAQ,KAAM,IAAI8W,gBAAe,4DAAgE,QAAOxc,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B0F,EAAP1F,EAElO,QAASyc,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIlZ,WAAU,iEAAoEkZ,GAAeD,GAAS/a,UAAYuC,OAAO0Y,OAAOD,GAAcA,EAAWhb,WAAakb,aAAetY,MAAOmY,EAAU3Y,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe2Y,IAAYzY,OAAO4Y,eAAiB5Y,OAAO4Y,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GAnDje,GAAIjZ,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAQ4zB,eAAiB5zB,EAAQ6zB,YAAcnvB,MAE/C,IAAI0Y,GAAS1d,EAAQ,SAEjB2d,EAAUla,EAAuBia,GAEjC+C,EAAUzgB,EAAQ,aAElB0gB,EAAWjd,EAAuBgd,GAElCyM,EAAQltB,EAAQ,WAEhBmtB,EAAS1pB,EAAuBypB,GAEhCE,EAAaptB,EAAQ,iBAErBqtB,EAAc5pB,EAAuB2pB,GAErC3mB,EAASzG,EAAQ,eAEjBuG,EAAU9C,EAAuBgD,GAEjCC,EAAQ1G,EAAQ,uBAEhBqG,EAAS5C,EAAuBiD,GAEhCgF,EAAa1L,EAAQ,6BAErBwL,EAAc/H,EAAuBiI,GAErClC,EAAYxJ,EAAQ,2BAEpBqJ,EAAa5F,EAAuB+F,GAEpCuhB,EAAc/qB,EAAQ,0BAEtB8rB,EAAac,EAAwB7B,GAarCoJ,EAAc7zB,EAAQ6zB,YAAc,SAAU5G,GAGhD,QAAS4G,GAAY/vB,GACnBP,EAAgBnC,KAAMyyB,EAEtB,IAAIzuB,GAAQoX,EAA2Bpb,KAAM+C,OAAOqZ,eAAeqW,GAAa5zB,KAAKmB,KAAM0C,GAa3F,OAXAsB,GAAMmM,OACJuiB,UAAW,GACXC,SAAU,GAEVvI,YACEsI,WAAYtI,EAAWwI,SACvBD,aAGFzT,WAAW,GAENlb,EAuHT,MAzIAsX,GAAUmX,EAAa5G,GAqBvBtpB,EAAakwB,IACXxvB,IAAK,QACLG,MAAO,WACL,GAAIumB,GAAS3pB,KAAKwqB,WACdqI,GAAW7yB,KAAKmQ,MAAMuiB,UAAUhG,OAAO5tB,OAAQkB,KAAKmQ,MAAMwiB,SAASjG,OAAO5tB,OAE9E,OAA2B,KAAvB+zB,EAAQ7f,QAAQ,IAClBrL,EAAAA,WAAmB6I,MAAM+L,QAAQ,0BAC1B,GAGLoN,EAAO+I,WACT/qB,EAAAA,WAAmB6I,MAAMmZ,EAAO+I,UAAU,KACnC,IAGF,KAGTzvB,IAAK,OACLG,MAAO,WACL,MAAOuB,GAAAA,WAAe2a,KAAKtf,KAAK0C,MAAM4D,KAAKiZ,QAAQuT,cACjDJ,UAAW1yB,KAAKmQ,MAAMuiB,UACtBC,SAAU3yB,KAAKmQ,MAAMwiB,cAIzB1vB,IAAK,gBACLG,MAAO,SAAuB6f,GAC5BjjB,KAAK2Y,UACH+Z,UAAW,GACXC,SAAU,KAGZhrB,EAAAA,WAAmBoY,QAAQkD,EAASjD,WAGtC/c,IAAK,cACLG,MAAO,SAAqB6c,GACD,MAArBA,EAAUC,OACRD,EAAUyS,UACZ/qB,EAAAA,WAAmB6I,MAAMyP,EAAUyS,WAEnC/qB,EAAAA,WAAmB6I,MAAMyP,EAAU0S,UAGrChrB,EAAAA,WAAmBklB,SAAS5M,MAIhChd,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,QACE0Z,SAAU9sB,KAAK6pB,aAAcpN,UAAW,mBAC1CR,EAAAA,WAAgB7I,cAAc,SAAWwJ,KAAM,OAAQmL,OAASgL,QAAS,UACzE9W,EAAAA,WAAgB7I,cAAc,SAAWwJ,KAAM,WAAYmL,OAASgL,QAAS,UAC7E9W,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,kCACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,iBACbR,EAAAA,WAAgB7I,cACd,MACEqJ,UAAW,eACbF,QAAQ,2BAGZN,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,cACbR,EAAAA,WAAgB7I,cACduY,EAAAA,YACE/C,MAAOrM,QAAQ,cAAewQ,MAAO,eACrCrE,WAAY,WAAYG,aAAc,YACxC5M,EAAAA,WAAgB7I,cAAc,SAAWwJ,KAAM,OAAQS,GAAI,eAAgBZ,UAAW,eACpF+B,SAAUxe,KAAKmQ,MAAM+O,UACrB+I,SAAUjoB,KAAKwpB,UAAU,aACzBpmB,MAAOpD,KAAKmQ,MAAMuiB,aAEtBzW,EAAAA,WAAgB7I,cAAc,KAAM,MACpC6I,EAAAA,WAAgB7I,cACduY,EAAAA,YACE/C,MAAOrM,QAAQ,yBAA0BwQ,MAAO,cAChDrE,WAAY,WAAYG,aAAc,YACxC5M,EAAAA,WAAgB7I,cAAc,SAAWwJ,KAAM,WAAYS,GAAI,cAAeZ,UAAW,eACvF+B,SAAUxe,KAAKmQ,MAAM+O,UACrB+I,SAAUjoB,KAAKwpB,UAAU,YACzBpmB,MAAOpD,KAAKmQ,MAAMwiB,aAGxB1W,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,gBACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,OACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,4BACbR,EAAAA,WAAgB7I,cACd4L,EAAAA,YACEvC,UAAW,cAAegC,QAASze,KAAKmQ,MAAM+O,WAChD3C,QAAQ,2BAWjBkW,GACPhH,EAAAA,YAEE+G,EAAiB5zB,EAAQ4zB,eAAiB,SAAUQ,GAGtD,QAASR,GAAe9vB,GACtBP,EAAgBnC,KAAMwyB,EAEtB,IAAI9R,GAAStF,EAA2Bpb,KAAM+C,OAAOqZ,eAAeoW,GAAgB3zB,KAAKmB,KAAM0C,GAe/F,OAbAge,GAAOvQ,OACL8iB,aAAc,GACdC,gBAAiB,GACjBP,SAAU,GAEVvI,YACE6I,cAAe7I,EAAW+I,kBAAkBtuB,EAAAA,WAAgBC,IAAI,cAChEouB,mBACAP,aAGFzT,WAAW,GAENwB,EAsIT,MA1JApF,GAAUkX,EAAgBQ,GAuB1BzwB,EAAaiwB,IACXvvB,IAAK,QACLG,MAAO,WACL,GAAIumB,GAAS3pB,KAAKwqB,WACdqI,GAAW7yB,KAAKmQ,MAAM8iB,aAAavG,OAAO5tB,OAAQkB,KAAKmQ,MAAM+iB,gBAAgBxG,OAAO5tB,OAAQkB,KAAKmQ,MAAMwiB,SAASjG,OAAO5tB,OAE3H,OAA2B,KAAvB+zB,EAAQ7f,QAAQ,IAClBrL,EAAAA,WAAmB6I,MAAM+L,QAAQ,0BAC1B,GAGLoN,EAAOsJ,cACTtrB,EAAAA,WAAmB6I,MAAMmZ,EAAOsJ,aAAa,KACtC,GAGLjzB,KAAKmQ,MAAM8iB,aAAavG,SAAW1sB,KAAKmQ,MAAM+iB,gBAAgBxG,QAChE/kB,EAAAA,WAAmB6I,MAAM+L,QAAQ,kCAC1B,IAGF,KAGTtZ,IAAK,OACLG,MAAO,WACL,MAAOuB,GAAAA,WAAe2a,KAAKtf,KAAK0C,MAAM4D,KAAKiZ,QAAQ6T,iBACjDH,aAAcjzB,KAAKmQ,MAAM8iB,aACzBN,SAAU3yB,KAAKmQ,MAAMwiB,cAIzB1vB,IAAK,gBACLG,MAAO,SAAuB6f,GAC5BjjB,KAAK2Y,UACHsa,aAAc,GACdC,gBAAiB,GACjBP,SAAU,KAGZhrB,EAAAA,WAAmBoY,QAAQkD,EAASjD,WAGtC/c,IAAK,cACLG,MAAO,SAAqB6c,GACD,MAArBA,EAAUC,OACRD,EAAUgT,aACZtrB,EAAAA,WAAmB6I,MAAMyP,EAAUgT,cAEnCtrB,EAAAA,WAAmB6I,MAAMyP,EAAU0S,UAGrChrB,EAAAA,WAAmBklB,SAAS5M,MAIhChd,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,QACE0Z,SAAU9sB,KAAK6pB,aAAcpN,UAAW,mBAC1CR,EAAAA,WAAgB7I,cAAc,SAAWwJ,KAAM,OAAQmL,OAASgL,QAAS,UACzE9W,EAAAA,WAAgB7I,cAAc,SAAWwJ,KAAM,WAAYmL,OAASgL,QAAS,UAC7E9W,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,kCACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,iBACbR,EAAAA,WAAgB7I,cACd,MACEqJ,UAAW,eACbF,QAAQ,qBAGZN,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,cACbR,EAAAA,WAAgB7I,cACduY,EAAAA,YACE/C,MAAOrM,QAAQ,gBAAiBwQ,MAAO,kBACvCrE,WAAY,WAAYG,aAAc,YACxC5M,EAAAA,WAAgB7I,cAAc,SAAWwJ,KAAM,WAAYS,GAAI,kBAAmBZ,UAAW,eAC3F+B,SAAUxe,KAAKmQ,MAAM+O,UACrB+I,SAAUjoB,KAAKwpB,UAAU,gBACzBpmB,MAAOpD,KAAKmQ,MAAM8iB,gBAEtBhX,EAAAA,WAAgB7I,cACduY,EAAAA,YACE/C,MAAOrM,QAAQ,mBAAoBwQ,MAAO,qBAC1CrE,WAAY,WAAYG,aAAc,YACxC5M,EAAAA,WAAgB7I,cAAc,SAAWwJ,KAAM,WAAYS,GAAI,qBAAsBZ,UAAW,eAC9F+B,SAAUxe,KAAKmQ,MAAM+O,UACrB+I,SAAUjoB,KAAKwpB,UAAU,mBACzBpmB,MAAOpD,KAAKmQ,MAAM+iB,mBAEtBjX,EAAAA,WAAgB7I,cAAc,KAAM,MACpC6I,EAAAA,WAAgB7I,cACduY,EAAAA,YACE/C,MAAOrM,QAAQ,yBAA0BwQ,MAAO,cAChDrE,WAAY,WAAYG,aAAc,YACxC5M,EAAAA,WAAgB7I,cAAc,SAAWwJ,KAAM,WAAYS,GAAI,cAAeZ,UAAW,eACvF+B,SAAUxe,KAAKmQ,MAAM+O,UACrB+I,SAAUjoB,KAAKwpB,UAAU,YACzBpmB,MAAOpD,KAAKmQ,MAAMwiB,aAGxB1W,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,gBACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,OACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,4BACbR,EAAAA,WAAgB7I,cACd4L,EAAAA,YACEvC,UAAW,cAAegC,QAASze,KAAKmQ,MAAM+O,WAChD3C,QAAQ,6BAWjBiW,GACP/G,EAAAA,YAEEvP,EAAS,SAAUC,GAGrB,QAASD,KAGP,MAFA/Z,GAAgBnC,KAAMkc,GAEfd,EAA2Bpb,KAAM+C,OAAOqZ,eAAeF,GAAQzb,MAAMT,KAAMM,YAuCpF,MA5CAgb,GAAUY,EAAQC,GAQlB5Z,EAAa2Z,IACXjZ,IAAK,oBACLG,MAAO,WACL0G,EAAAA,WAAoBukB,KAClB3tB,MAAO6b,QAAQ,4BACf+R,OAAQ/R,QAAQ,4BAIpBtZ,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,MACA,KACA6I,EAAAA,WAAgB7I,cAAcqf,GAAensB,KAAMtG,KAAK0C,MAAM4D,OAC9D2V,EAAAA,WAAgB7I,cAAcof,GAAkBlsB,KAAMtG,KAAK0C,MAAM4D,OACjE2V,EAAAA,WAAgB7I,cACd,KACEqJ,UAAW,gBACbR,EAAAA,WAAgB7I,cACd,QACEqJ,UAAW,iBACb,WAEFR,EAAAA,WAAgB7I,cACd,KACEtB,KAAMjN,EAAAA,WAAgBC,IAAI,2BAC5ByX,QAAQ,oCAQXL,GACPD,EAAAA,WAAgBc,UAElBne,GAAAA,WAAkBsd,IAEfkH,cAAc,GAAG3B,sBAAsB,GAAGoN,4BAA4B,GAAGnN,0BAA0B,GAAGqN,yBAAyB,IAAInN,YAAY,GAAGoN,UAAU,GAAGC,gBAAgB,GAAGjS,MAAQ,UAAUqW,IAAI,SAAS/0B,EAAQU,EAAOJ,GACnO,YAiBA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS8Y,GAA2B7W,EAAM1F,GAAQ,IAAK0F,EAAQ,KAAM,IAAI8W,gBAAe,4DAAgE,QAAOxc,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B0F,EAAP1F,EAElO,QAASyc,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIlZ,WAAU,iEAAoEkZ,GAAeD,GAAS/a,UAAYuC,OAAO0Y,OAAOD,GAAcA,EAAWhb,WAAakb,aAAetY,MAAOmY,EAAU3Y,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe2Y,IAAYzY,OAAO4Y,eAAiB5Y,OAAO4Y,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GArBje,GAAIjZ,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAQ00B,OAAS10B,EAAQ20B,OAASjwB,MAElC,IAAI0Y,GAAS1d,EAAQ,SAEjB2d,EAAUla,EAAuBia,GAEjClP,EAAUxO,EAAQ,sBAElBuO,EAAW9K,EAAuB+K,GAUlCymB,EAAS30B,EAAQ20B,QAAU,sBAAuB,uBAAwB,uBAAwB,uBAAwB,wBAE1HD,EAAS10B,EAAQ00B,QAAU/W,QAAQ,kCAAmCA,QAAQ,6BAA8BA,QAAQ,gCAAiCA,QAAQ,+BAAgCA,QAAQ,qCAErML,EAAS,SAAUC,GAGrB,QAASD,GAAOxZ,GACdP,EAAgBnC,KAAMkc,EAEtB,IAAIlY,GAAQoX,EAA2Bpb,KAAM+C,OAAOqZ,eAAeF,GAAQrd,KAAKmB,KAAM0C,GAKtF,OAHAsB,GAAMwvB,OAAS,EACfxvB,EAAMyvB,UAAY,KAClBzvB,EAAM0vB,WACC1vB,EAuET,MAjFAsX,GAAUY,EAAQC,GAalB5Z,EAAa2Z,IACXjZ,IAAK,WACLG,MAAO,SAAkBuvB,EAAUgB,GACjC,GAAIjT,GAAS1gB,KAET4zB,GAAa,CAwBjB,OAtBIjB,GAASjG,SAAW1sB,KAAKyzB,YAC3BG,GAAa,GAGXD,EAAO70B,SAAWkB,KAAK0zB,QAAQ50B,OACjC80B,GAAa,EAEbD,EAAO/Q,IAAI,SAAUxf,EAAO7E,GACtB6E,EAAMspB,SAAWhM,EAAOgT,QAAQn1B,KAClCq1B,GAAa,KAKfA,IACF5zB,KAAKwzB,OAAS3mB,EAAAA,WAAiBgnB,cAAclB,EAAUgB,GACvD3zB,KAAKyzB,UAAYd,EAASjG,OAC1B1sB,KAAK0zB,QAAUC,EAAO/Q,IAAI,SAAUxf,GAClC,MAAOA,GAAMspB,UAIV1sB,KAAKwzB,UAGdvwB,IAAK,SACLG,MAAO,WAEL,GAAI0wB,GAAQ9zB,KAAK+zB,SAAS/zB,KAAK0C,MAAMiwB,SAAU3yB,KAAK0C,MAAMixB,OAE1D,OAAO1X,GAAAA,WAAgB7I,cACrB,OACEqJ,UAAW,gCACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,YACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,gBAAkB8W,EAAOO,GACpC/L,OAASpH,MAAO,GAAK,GAAKmT,EAAQ,KAClC1O,KAAM,eACNwC,gBAAiBkM,EACjBjM,gBAAiB,IACjBC,gBAAiB,KACnB7L,EAAAA,WAAgB7I,cACd,QACEqJ,UAAW,WACb6W,EAAOQ,MAIb7X,EAAAA,WAAgB7I,cACd,KACEqJ,UAAW,cACb6W,EAAOQ,SAOR5X,GACPD,EAAAA,WAAgBc,UAElBne,GAAAA,WAAkBsd,IAEf8X,qBAAqB,IAAIhX,MAAQ,UAAUiX,IAAI,SAAS31B,EAAQU,EAAOJ,GAC1E,YAoCA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS8Y,GAA2B7W,EAAM1F,GAAQ,IAAK0F,EAAQ,KAAM,IAAI8W,gBAAe,4DAAgE,QAAOxc,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B0F,EAAP1F,EAElO,QAASyc,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIlZ,WAAU,iEAAoEkZ,GAAeD,GAAS/a,UAAYuC,OAAO0Y,OAAOD,GAAcA,EAAWhb,WAAakb,aAAetY,MAAOmY,EAAU3Y,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe2Y,IAAYzY,OAAO4Y,eAAiB5Y,OAAO4Y,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GAxCje,GAAIjZ,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,GAGT,IAAI4Y,GAAS1d,EAAQ,SAEjB2d,EAAUla,EAAuBia,GAEjCqC,EAAU/f,EAAQ,YAElBggB,EAAWvc,EAAuBsc,GAElC6V,EAAY51B,EAAQ,iBAEpB61B,EAAapyB,EAAuBmyB,GAEpCtsB,EAAWtJ,EAAQ,uBAEnBmJ,EAAY1F,EAAuB6F,GAEnCb,EAASzI,EAAQ,qBAEjBwI,EAAU/E,EAAuBgF,GAEjCe,EAAYxJ,EAAQ,wBAEpBqJ,EAAa5F,EAAuB+F,GAEpCgF,EAAUxO,EAAQ,sBAElBuO,EAAW9K,EAAuB+K,GAgBlCoP,EAAS,SAAUC,GAGrB,QAASD,GAAOxZ,GACdP,EAAgBnC,KAAMkc,EAEtB,IAAIlY,GAAQoX,EAA2Bpb,KAAM+C,OAAOqZ,eAAeF,GAAQrd,KAAKmB,KAAM0C,GA6BtF,OA3BAsB,GAAMowB,kBAAoB,WAC0B,WAA9C9vB,OAAOQ,IAAI,YAAYuvB,mBACzB1sB,EAAAA,WAAmBqf,KAAKzK,QAAQ,8CACvBvY,EAAMmM,MAAMyd,SACrB9mB,EAAAA,WAAgBwtB,KAAKH,EAAAA,aAErBnwB,EAAM2U,UACJuG,WAAa,IAGfqP,QAAQC,KAAK/mB,EAAAA,WAAkB8sB,OAAQ1nB,EAAAA,WAAiB0nB,SAAS3U,KAAK,WAC/D5b,EAAMmM,MAAMyd,UACf5pB,EAAM2U,UACJuG,WAAa,EACb0O,UAAY,IAIhB9mB,EAAAA,WAAgBwtB,KAAKH,EAAAA,gBAK3BnwB,EAAMmM,OACJ+O,WAAa,EACb0O,UAAY,GAEP5pB,EA6BT,MA/DAsX,GAAUY,EAAQC,GAuClB5Z,EAAa2Z,IACXjZ,IAAK,eAILG,MAAO,WACL,MAAOpD,MAAK0C,MAAM+Z,WAAazc,KAAKmQ,MAAM+O,UAAY,eAAiB,OAGzEjc,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,UACEwJ,KAAM,SAAUC,QAAS7c,KAAKo0B,kBAC9B3X,UAAW,OAASzc,KAAK0c,eACzB8B,SAAUxe,KAAKmQ,MAAMyd,UACvBrR,QAAQ,YACRvc,KAAKmQ,MAAM+O,UAAYjD,EAAAA,WAAgB7I,cAAckL,EAAAA,WAAkB,MAAQ,UAM9EpC,GACPD,EAAAA,WAAgBc,UAElBne,GAAAA,WAAkBsd,IAEfsY,sBAAsB,GAAGC,oBAAoB,GAAGC,uBAAuB,GAAGV,qBAAqB,IAAIpV,WAAW,GAAG+V,gBAAgB,GAAG3X,MAAQ,UAAU4X,IAAI,SAASt2B,EAAQU,EAAOJ,GACrL,YA6DA,SAASssB,GAAwBlpB,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAImpB,KAAa,IAAW,MAAPnpB,EAAe,IAAK,GAAIiB,KAAOjB,GAAWe,OAAOvC,UAAUoO,eAAe/P,KAAKmD,EAAKiB,KAAMkoB,EAAOloB,GAAOjB,EAAIiB,GAAgC,OAAtBkoB,GAAAA,WAAiBnpB,EAAYmpB,EAElQ,QAASppB,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS8Y,GAA2B7W,EAAM1F,GAAQ,IAAK0F,EAAQ,KAAM,IAAI8W,gBAAe,4DAAgE,QAAOxc,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B0F,EAAP1F,EAElO,QAASyc,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIlZ,WAAU,iEAAoEkZ,GAAeD,GAAS/a,UAAYuC,OAAO0Y,OAAOD,GAAcA,EAAWhb,WAAakb,aAAetY,MAAOmY,EAAU3Y,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe2Y,IAAYzY,OAAO4Y,eAAiB5Y,OAAO4Y,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GAnEje,GAAIjZ,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAQi2B,iBAAmBj2B,EAAQk2B,aAAexxB,MAElD,IAAI0Y,GAAS1d,EAAQ,SAEjB2d,EAAUla,EAAuBia,GAEjC+C,EAAUzgB,EAAQ,YAElB0gB,EAAWjd,EAAuBgd,GAElCyM,EAAQltB,EAAQ,UAEhBmtB,EAAS1pB,EAAuBypB,GAEhCE,EAAaptB,EAAQ,gBAErBqtB,EAAc5pB,EAAuB2pB,GAErCqJ,EAAoBz2B,EAAQ,uBAE5B02B,EAAqBjzB,EAAuBgzB,GAE5ChwB,EAASzG,EAAQ,YAEjBuG,EAAU9C,EAAuBgD,GAEjCC,EAAQ1G,EAAQ,oBAEhBqG,EAAS5C,EAAuBiD,GAEhCuB,EAAQjI,EAAQ,oBAEhB4H,EAASnE,EAAuBwE,GAEhCqB,EAAWtJ,EAAQ,uBAEnBmJ,EAAY1F,EAAuB6F,GAEnCb,EAASzI,EAAQ,qBAEjBwI,EAAU/E,EAAuBgF,GAEjCe,EAAYxJ,EAAQ,wBAEpBqJ,EAAa5F,EAAuB+F,GAEpCR,EAAchJ,EAAQ,wBAEtB+I,EAAetF,EAAuBuF,GAEtC+hB,EAAc/qB,EAAQ,uBAEtB8rB,EAAac,EAAwB7B,GAerCyL,EAAel2B,EAAQk2B,aAAe,SAAUjJ,GAGlD,QAASiJ,GAAapyB,GACpBP,EAAgBnC,KAAM80B,EAEtB,IAAI9wB,GAAQoX,EAA2Bpb,KAAM+C,OAAOqZ,eAAe0Y,GAAcj2B,KAAKmB,KAAM0C,GAmB5F,OAjBAsB,GAAMmM,OACJ+O,WAAa,EAEb1C,SAAY,GACZoW,MAAS,GACTD,SAAY,GACZsC,QAAW,GAEX7K,YACE5N,UAAa4N,EAAW0B,kBAAmB1B,EAAW2B,kBAAkBlnB,EAAAA,WAAgBC,IAAI,aAAcslB,EAAW8B,kBAAkBrnB,EAAAA,WAAgBC,IAAI,cAC3J8tB,OAAUxI,EAAWwI,SACrBD,UAAavI,EAAW+I,kBAAkBtuB,EAAAA,WAAgBC,IAAI,cAC9DmwB,QAAWxtB,EAAAA,WAAkBytB,aAG/BvL,WAEK3lB,EA6JT,MArLAsX,GAAUwZ,EAAcjJ,GA2BxBtpB,EAAauyB,IACX7xB,IAAK,QACLG,MAAO,WACL,MAAIpD,MAAKm1B,WACA,GAEPxtB,EAAAA,WAAmB6I,MAAM+L,QAAQ,0BACjCvc,KAAK2Y,UACHgR,OAAU3pB,KAAKwqB,cAEV,MAIXvnB,IAAK,OACLG,MAAO,WACL,MAAOuB,GAAAA,WAAe2a,KAAKza,EAAAA,WAAgBC,IAAI,cAC7C0X,SAAYxc,KAAKmQ,MAAMqM,SACvBoW,MAAS5yB,KAAKmQ,MAAMyiB,MACpBD,SAAY3yB,KAAKmQ,MAAMwiB,SACvBsC,QAAWj1B,KAAKmQ,MAAM8kB,aAI1BhyB,IAAK,gBACLG,MAAO,SAAuBgyB,GAC5Bp1B,KAAK0C,MAAMgN,SAAS0lB,MAGtBnyB,IAAK,cACLG,MAAO,SAAqB6c,GACD,MAArBA,EAAUC,QACZlgB,KAAK2Y,UACHgR,OAAU5mB,OAAOoD,UAAWnG,KAAKmQ,MAAMwZ,OAAQ1J,KAEjDtY,EAAAA,WAAmB6I,MAAM+L,QAAQ,2BACH,MAArB0D,EAAUC,QAAkBD,EAAUoV,MAC9C,EAAGhuB,EAAAA,YAAsB4Y,EAAUoV,KACpCvuB,EAAAA,WAAgBwuB,QAEhB3tB,EAAAA,WAAmBklB,SAAS5M,MAIhChd,IAAK,mBACLG,MAAO,WACL,MAAIyB,GAAAA,WAAgBC,IAAI,wBAEfmX,EAAAA,WAAgB7I,cACrB,KACEtB,KAAMjN,EAAAA,WAAgBC,IAAI,wBAC1BrC,OAAQ,UACV8Z,QAAQ,6DAID,QAIbtZ,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,OACEqJ,UAAW,8BAA+B2I,KAAM,YAClDnJ,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,iBACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,gBACbR,EAAAA,WAAgB7I,cACd,UACEwJ,KAAM,SAAUH,UAAW,QAAS4I,eAAgB,QACpDC,aAAc/I,QAAQ,UACxBN,EAAAA,WAAgB7I,cACd,QACEmS,cAAe,QACjB,MAGJtJ,EAAAA,WAAgB7I,cACd,MACEqJ,UAAW,eACbF,QAAQ,cAGZN,EAAAA,WAAgB7I,cACd,QACE0Z,SAAU9sB,KAAK6pB,aAAcpN,UAAW,mBAC1CR,EAAAA,WAAgB7I,cAAc,SAAWwJ,KAAM,OAAQmL,OAASgL,QAAS,UACzE9W,EAAAA,WAAgB7I,cAAc,SAAWwJ,KAAM,WAAYmL,OAASgL,QAAS,UAC7E9W,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,cACbR,EAAAA,WAAgB7I,cACduY,EAAAA,YACE/C,MAAOrM,QAAQ,YAAawQ,MAAO,cACnCrE,WAAY,WAAYG,aAAc,WACtCN,WAAYvoB,KAAKmQ,MAAMwZ,OAAOnN,UAChCP,EAAAA,WAAgB7I,cAAc,SAAWwJ,KAAM,OAAQS,GAAI,cAAeZ,UAAW,eACnF8Y,mBAAoB,qBACpB/W,SAAUxe,KAAKmQ,MAAM+O,UACrB+I,SAAUjoB,KAAKwpB,UAAU,YACzBpmB,MAAOpD,KAAKmQ,MAAMqM,YAEtBP,EAAAA,WAAgB7I,cACduY,EAAAA,YACE/C,MAAOrM,QAAQ,UAAWwQ,MAAO,WACjCrE,WAAY,WAAYG,aAAc,WACtCN,WAAYvoB,KAAKmQ,MAAMwZ,OAAOiJ,OAChC3W,EAAAA,WAAgB7I,cAAc,SAAWwJ,KAAM,OAAQS,GAAI,WAAYZ,UAAW,eAChF8Y,mBAAoB,kBACpB/W,SAAUxe,KAAKmQ,MAAM+O,UACrB+I,SAAUjoB,KAAKwpB,UAAU,SACzBpmB,MAAOpD,KAAKmQ,MAAMyiB,SAEtB3W,EAAAA,WAAgB7I,cACduY,EAAAA,YACE/C,MAAOrM,QAAQ,YAAawQ,MAAO,cACnCrE,WAAY,WAAYG,aAAc,WACtCN,WAAYvoB,KAAKmQ,MAAMwZ,OAAOgJ,SAC9BzJ,MAAOjN,EAAAA,WAAgB7I,cAAc4hB,EAAAA,YAA8BrC,SAAU3yB,KAAKmQ,MAAMwiB,SACtFgB,QAAS3zB,KAAKmQ,MAAMqM,SAAUxc,KAAKmQ,MAAMyiB,UAC7C3W,EAAAA,WAAgB7I,cAAc,SAAWwJ,KAAM,WAAYS,GAAI,cAAeZ,UAAW,eACvF8Y,mBAAoB,qBACpB/W,SAAUxe,KAAKmQ,MAAM+O,UACrB+I,SAAUjoB,KAAKwpB,UAAU,YACzBpmB,MAAOpD,KAAKmQ,MAAMwiB,YAEtBlrB,EAAAA,WAAkB6B,WAChBksB,KAAMx1B,KACN0oB,WAAY,WACZG,aAAc,cAGlB5M,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,gBACbzc,KAAKy1B,mBACLxZ,EAAAA,WAAgB7I,cACd4L,EAAAA,YACEvC,UAAW,cAAegC,QAASze,KAAKmQ,MAAM+O,WAChD3C,QAAQ,6BAUfuY,GACPrJ,EAAAA,YAEEoJ,EAAmBj2B,EAAQi2B,iBAAmB,SAAU1Y,GAG1D,QAAS0Y,KAGP,MAFA1yB,GAAgBnC,KAAM60B,GAEfzZ,EAA2Bpb,KAAM+C,OAAOqZ,eAAeyY,GAAkBp0B,MAAMT,KAAMM,YAoF9F,MAzFAgb,GAAUuZ,EAAkB1Y,GAQ5B5Z,EAAasyB,IACX5xB,IAAK,UACLG,MAAO,WACL,MAA8B,SAA1BpD,KAAK0C,MAAMgzB,WACNnZ,QAAQ,+GACoB,UAA1Bvc,KAAK0C,MAAMgzB,WACbnZ,QAAQ,oIADV,UAKTtZ,IAAK,eACLG,MAAO,WACL,MAA8B,SAA1BpD,KAAK0C,MAAMgzB,WACNnZ,QAAQ,kGACoB,UAA1Bvc,KAAK0C,MAAMgzB,WACbnZ,QAAQ,8DADV,UAKTtZ,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,OACEqJ,UAAW,4CACX2I,KAAM,YACRnJ,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,iBACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,gBACbR,EAAAA,WAAgB7I,cACd,UACEwJ,KAAM,SAAUH,UAAW,QAAS4I,eAAgB,QACpDC,aAAc/I,QAAQ,UACxBN,EAAAA,WAAgB7I,cACd,QACEmS,cAAe,QACjB,MAGJtJ,EAAAA,WAAgB7I,cACd,MACEqJ,UAAW,eACbF,QAAQ,2BAGZN,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,cACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,gBACbR,EAAAA,WAAgB7I,cACd,QACEqJ,UAAW,iBACb,iBAGJR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,gBACbR,EAAAA,WAAgB7I,cACd,KACEqJ,UAAW,QACbH,YAAYtc,KAAK21B,WAAanZ,SAAYxc,KAAK0C,MAAM8Z,WAAY,IAEnEP,EAAAA,WAAgB7I,cACd,IACA,KACAkJ,YAAYtc,KAAK41B,gBAAkBhD,MAAS5yB,KAAK0C,MAAMkwB,QAAS,YAUvEiC,GACP5Y,EAAAA,WAAgBc,WAEdb,EAAS,SAAUuG,GAGrB,QAASvG,GAAOxZ,GACdP,EAAgBnC,KAAMkc,EAEtB,IAAIwG,GAAStH,EAA2Bpb,KAAM+C,OAAOqZ,eAAeF,GAAQrd,KAAKmB,KAAM0C,GAgBvF,OAdAggB,GAAOmT,qBAAuB,SAAUT,GACP,WAA3BA,EAAYM,YACd5uB,EAAAA,WAAgBwuB,OAChBpvB,EAAAA,WAAe4vB,OAAOV,IAEtB1S,EAAO/J,UACLgU,SAAYyI,KAKlB1S,EAAOvS,OACLwc,UAAY,GAEPjK,EAuBT,MA5CApH,GAAUY,EAAQuG,GA0BlBlgB,EAAa2Z,IACXjZ,IAAK,SAILG,MAAO,WAEL,MAAIpD,MAAKmQ,MAAMwc,SACN1Q,EAAAA,WAAgB7I,cAAcyhB,GAAoBa,WAAY11B,KAAKmQ,MAAMwc,SAAS+I,WACvFlZ,SAAUxc,KAAKmQ,MAAMwc,SAASnQ,SAC9BoW,MAAO5yB,KAAKmQ,MAAMwc,SAASiG,QAEtB3W,EAAAA,WAAgB7I,cAAc0hB,GAAgBplB,SAAU1P,KAAK61B,2BAMnE3Z,GACPD,EAAAA,WAAgBc,UAElBne,GAAAA,WAAkBsd,IAEf6Z,WAAW,GAAGC,mBAAmB,GAAGC,mBAAmB,GAAGzB,sBAAsB,GAAGC,oBAAoB,GAAGC,uBAAuB,GAAGwB,uBAAuB,IAAIvL,sBAAsB,IAAIwL,WAAW,GAAGC,SAAS,GAAGC,eAAe,GAAGC,sBAAsB,GAAGtZ,MAAQ,UAAUuZ,IAAI,SAASj4B,EAAQU,EAAOJ,GAC/S,YAyCA,SAASssB,GAAwBlpB,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAImpB,KAAa,IAAW,MAAPnpB,EAAe,IAAK,GAAIiB,KAAOjB,GAAWe,OAAOvC,UAAUoO,eAAe/P,KAAKmD,EAAKiB,KAAMkoB,EAAOloB,GAAOjB,EAAIiB,GAAgC,OAAtBkoB,GAAAA,WAAiBnpB,EAAYmpB,EAElQ,QAASppB,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS8Y,GAA2B7W,EAAM1F,GAAQ,IAAK0F,EAAQ,KAAM,IAAI8W,gBAAe,4DAAgE,QAAOxc,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B0F,EAAP1F,EAElO,QAASyc,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIlZ,WAAU,iEAAoEkZ,GAAeD,GAAS/a,UAAYuC,OAAO0Y,OAAOD,GAAcA,EAAWhb,WAAakb,aAAetY,MAAOmY,EAAU3Y,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe2Y,IAAYzY,OAAO4Y,eAAiB5Y,OAAO4Y,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GA/Cje,GAAIjZ,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAQ43B,SAAW53B,EAAQ63B,gBAAkBnzB,MAE7C,IAAI0Y,GAAS1d,EAAQ,SAEjB2d,EAAUla,EAAuBia,GAEjCjX,EAASzG,EAAQ,YAEjBuG,EAAU9C,EAAuBgD,GAEjCga,EAAUzgB,EAAQ,YAElB0gB,EAAWjd,EAAuBgd,GAElCyM,EAAQltB,EAAQ,UAEhBmtB,EAAS1pB,EAAuBypB,GAEhCxmB,EAAQ1G,EAAQ,oBAEhBqG,EAAS5C,EAAuBiD,GAEhC8C,EAAYxJ,EAAQ,wBAEpBqJ,EAAa5F,EAAuB+F,GAEpCuhB,EAAc/qB,EAAQ,uBAEtB8rB,EAAac,EAAwB7B,GAErC/hB,EAAchJ,EAAQ,wBAEtB+I,EAAetF,EAAuBuF,GAatCmvB,EAAkB73B,EAAQ63B,gBAAkB,SAAU5K,GAGxD,QAAS4K,GAAgB/zB,GACvBP,EAAgBnC,KAAMy2B,EAEtB,IAAIzyB,GAAQoX,EAA2Bpb,KAAM+C,OAAOqZ,eAAeqa,GAAiB53B,KAAKmB,KAAM0C,GAW/F,OATAsB,GAAMmM,OACJ+O,WAAa,EAEb0T,MAAS,GAETxI,YACEwI,OAAUxI,EAAWwI,WAGlB5uB,EAuET,MAvFAsX,GAAUmb,EAAiB5K,GAmB3BtpB,EAAak0B,IACXxzB,IAAK,QACLG,MAAO,WACL,MAAIpD,MAAKm1B,WACA,GAEPxtB,EAAAA,WAAmB6I,MAAM+L,QAAQ,kCAC1B,MAIXtZ,IAAK,OACLG,MAAO,WACL,MAAOuB,GAAAA,WAAe2a,KAAKza,EAAAA,WAAgBC,IAAI,wBAC7C8tB,MAAS5yB,KAAKmQ,MAAMyiB,WAIxB3vB,IAAK,gBACLG,MAAO,SAAuBgyB,GAC5Bp1B,KAAK0C,MAAMgN,SAAS0lB,MAGtBnyB,IAAK,cACLG,MAAO,SAAqB6c,IACrB,iBAAkB,kBAAkBjN,QAAQiN,EAAUvhB,MAAQ,GACjEiJ,EAAAA,WAAmBqf,KAAK/G,EAAUD,QACJ,MAArBC,EAAUC,QAAkBD,EAAUoV,KAC9C,EAAGhuB,EAAAA,YAAsB4Y,EAAUoV,KAEpC1tB,EAAAA,WAAmBklB,SAAS5M,MAIhChd,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,OACEqJ,UAAW,oDACbR,EAAAA,WAAgB7I,cACd,QACE0Z,SAAU9sB,KAAK6pB,cACjB5N,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,cACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,iBACbR,EAAAA,WAAgB7I,cAAc,SAAWwJ,KAAM,OAAQH,UAAW,eAChEia,YAAana,QAAQ,uBACrBiC,SAAUxe,KAAKmQ,MAAM+O,UACrB+I,SAAUjoB,KAAKwpB,UAAU,SACzBpmB,MAAOpD,KAAKmQ,MAAMyiB,UAGxB3W,EAAAA,WAAgB7I,cACd4L,EAAAA,YACEvC,UAAW,wBACXgC,QAASze,KAAKmQ,MAAM+O,WACtB3C,QAAQ,oBAQXka,GACPhL,EAAAA,YAEE+K,EAAW53B,EAAQ43B,SAAW,SAAUra,GAG1C,QAASqa,KAGP,MAFAr0B,GAAgBnC,KAAMw2B,GAEfpb,EAA2Bpb,KAAM+C,OAAOqZ,eAAeoa,GAAU/1B,MAAMT,KAAMM,YAkDtF,MAvDAgb,GAAUkb,EAAUra,GAQpB5Z,EAAai0B,IACXvzB,IAAK,aACLG,MAAO,WACL,MAAOkZ,aAAYC,QAAQ,0CACzBqW,MAAO5yB,KAAK0C,MAAM4D,KAAKssB,QACtB,MAGL3vB,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,OACEqJ,UAAW,8DACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,gBACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,gBACbR,EAAAA,WAAgB7I,cACd,QACEqJ,UAAW,iBACb,UAGJR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,gBACbR,EAAAA,WAAgB7I,cACd,IACA,KACApT,KAAK2c,eAGTV,EAAAA,WAAgB7I,cACd,UACEwJ,KAAM,SAAUH,UAAW,4BAC3BI,QAAS7c,KAAK0C,MAAMgN,UACtB6M,QAAQ,+BAQXia,GACPva,EAAAA,WAAgBc,WAEdb,EAAS,SAAUuG,GAGrB,QAASvG,GAAOxZ,GACdP,EAAgBnC,KAAMkc,EAEtB,IAAIwG,GAAStH,EAA2Bpb,KAAM+C,OAAOqZ,eAAeF,GAAQrd,KAAKmB,KAAM0C,GAiBvF,OAfAggB,GAAOiK,SAAW,SAAUyI,GAC1B1S,EAAO/J,UACLgU,SAAUyI,KAId1S,EAAOiU,MAAQ,WACbjU,EAAO/J,UACLgU,UAAU,KAIdjK,EAAOvS,OACLwc,UAAU,GAELjK,EAqBT,MA3CApH,GAAUY,EAAQuG,GA2BlBlgB,EAAa2Z,IACXjZ,IAAK,SAILG,MAAO,WAEL,MAAIpD,MAAKmQ,MAAMwc,SACN1Q,EAAAA,WAAgB7I,cAAcojB,GAAYlwB,KAAMtG,KAAKmQ,MAAMwc,SAAUjd,SAAU1P,KAAK22B,QAEpF1a,EAAAA,WAAgB7I,cAAcqjB,GAAmB/mB,SAAU1P,KAAK2sB,eAMtEzQ,GACPD,EAAAA,WAAgBc,UAElBne,GAAAA,WAAkBsd,IAEf6Z,WAAW,GAAGC,mBAAmB,GAAGtB,uBAAuB,GAAGwB,uBAAuB,IAAIvL,sBAAsB,IAAIwL,WAAW,GAAGC,SAAS,GAAGpZ,MAAQ,UAAU4Z,IAAI,SAASt4B,EAAQU,EAAOJ,GAC9L,YA6CA,SAASssB,GAAwBlpB,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAImpB,KAAa,IAAW,MAAPnpB,EAAe,IAAK,GAAIiB,KAAOjB,GAAWe,OAAOvC,UAAUoO,eAAe/P,KAAKmD,EAAKiB,KAAMkoB,EAAOloB,GAAOjB,EAAIiB,GAAgC,OAAtBkoB,GAAAA,WAAiBnpB,EAAYmpB,EAElQ,QAASppB,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS8Y,GAA2B7W,EAAM1F,GAAQ,IAAK0F,EAAQ,KAAM,IAAI8W,gBAAe,4DAAgE,QAAOxc,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B0F,EAAP1F,EAElO,QAASyc,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIlZ,WAAU,iEAAoEkZ,GAAeD,GAAS/a,UAAYuC,OAAO0Y,OAAOD,GAAcA,EAAWhb,WAAakb,aAAetY,MAAOmY,EAAU3Y,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe2Y,IAAYzY,OAAO4Y,eAAiB5Y,OAAO4Y,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GAnDje,GAAIjZ,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAQi4B,oBAAsBj4B,EAAQ43B,SAAW53B,EAAQk4B,iBAAmBxzB,MAE5E,IAAI0Y,GAAS1d,EAAQ,SAEjB2d,EAAUla,EAAuBia,GAEjC+a,EAAYz4B,EAAQ,aAEpB04B,EAAaj1B,EAAuBg1B,GAEpChyB,EAASzG,EAAQ,YAEjBuG,EAAU9C,EAAuBgD,GAEjCga,EAAUzgB,EAAQ,YAElB0gB,EAAWjd,EAAuBgd,GAElCyM,EAAQltB,EAAQ,UAEhBmtB,EAAS1pB,EAAuBypB,GAEhCxmB,EAAQ1G,EAAQ,oBAEhBqG,EAAS5C,EAAuBiD,GAEhC8C,EAAYxJ,EAAQ,wBAEpBqJ,EAAa5F,EAAuB+F,GAEpCuhB,EAAc/qB,EAAQ,uBAEtB8rB,EAAac,EAAwB7B,GAErC/hB,EAAchJ,EAAQ,wBAEtB+I,EAAetF,EAAuBuF,GActCwvB,EAAmBl4B,EAAQk4B,iBAAmB,SAAUjL,GAG1D,QAASiL,GAAiBp0B,GACxBP,EAAgBnC,KAAM82B,EAEtB,IAAI9yB,GAAQoX,EAA2Bpb,KAAM+C,OAAOqZ,eAAe0a,GAAkBj4B,KAAKmB,KAAM0C,GAWhG,OATAsB,GAAMmM,OACJ+O,WAAa,EAEb0T,MAAS,GAETxI,YACEwI,OAAUxI,EAAWwI,WAGlB5uB,EAuET,MAvFAsX,GAAUwb,EAAkBjL,GAmB5BtpB,EAAau0B,IACX7zB,IAAK,QACLG,MAAO,WACL,MAAIpD,MAAKm1B,WACA,GAEPxtB,EAAAA,WAAmB6I,MAAM+L,QAAQ,kCAC1B,MAIXtZ,IAAK,OACLG,MAAO,WACL,MAAOuB,GAAAA,WAAe2a,KAAKza,EAAAA,WAAgBC,IAAI,4BAC7C8tB,MAAS5yB,KAAKmQ,MAAMyiB,WAIxB3vB,IAAK,gBACLG,MAAO,SAAuBgyB,GAC5Bp1B,KAAK0C,MAAMgN,SAAS0lB,MAGtBnyB,IAAK,cACLG,MAAO,SAAqB6c,IACrB,gBAAiB,kBAAkBjN,QAAQiN,EAAUvhB,MAAQ,GAChEsB,KAAK0C,MAAMu0B,iBAAiBhX,GACE,MAArBA,EAAUC,QAAkBD,EAAUoV,KAC9C,EAAGhuB,EAAAA,YAAsB4Y,EAAUoV,KAEpC1tB,EAAAA,WAAmBklB,SAAS5M,MAIhChd,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,OACEqJ,UAAW,mDACbR,EAAAA,WAAgB7I,cACd,QACE0Z,SAAU9sB,KAAK6pB,cACjB5N,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,cACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,iBACbR,EAAAA,WAAgB7I,cAAc,SAAWwJ,KAAM,OAAQH,UAAW,eAChEia,YAAana,QAAQ,uBACrBiC,SAAUxe,KAAKmQ,MAAM+O,UACrB+I,SAAUjoB,KAAKwpB,UAAU,SACzBpmB,MAAOpD,KAAKmQ,MAAMyiB,UAGxB3W,EAAAA,WAAgB7I,cACd4L,EAAAA,YACEvC,UAAW,wBACXgC,QAASze,KAAKmQ,MAAM+O,WACtB3C,QAAQ,oBAQXua,GACPrL,EAAAA,YAEE+K,EAAW53B,EAAQ43B,SAAW,SAAUra,GAG1C,QAASqa,KAGP,MAFAr0B,GAAgBnC,KAAMw2B,GAEfpb,EAA2Bpb,KAAM+C,OAAOqZ,eAAeoa,GAAU/1B,MAAMT,KAAMM,YAkDtF,MAvDAgb,GAAUkb,EAAUra,GAQpB5Z,EAAai0B,IACXvzB,IAAK,aACLG,MAAO,WACL,MAAOkZ,aAAYC,QAAQ,8CACzBqW,MAAO5yB,KAAK0C,MAAM4D,KAAKssB,QACtB,MAGL3vB,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,OACEqJ,UAAW,6DACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,gBACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,gBACbR,EAAAA,WAAgB7I,cACd,QACEqJ,UAAW,iBACb,UAGJR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,gBACbR,EAAAA,WAAgB7I,cACd,IACA,KACApT,KAAK2c,eAGTV,EAAAA,WAAgB7I,cACd,UACEwJ,KAAM,SAAUH,UAAW,4BAC3BI,QAAS7c,KAAK0C,MAAMgN,UACtB6M,QAAQ,+BAQXia,GACPva,EAAAA,WAAgBc,WAEd8Z,EAAsBj4B,EAAQi4B,oBAAsB,SAAUpU,GAGhE,QAASoU,KAGP,MAFA10B,GAAgBnC,KAAM62B,GAEfzb,EAA2Bpb,KAAM+C,OAAOqZ,eAAeya,GAAqBp2B,MAAMT,KAAMM,YAkEjG,MAvEAgb,GAAUub,EAAqBpU,GAQ/BlgB,EAAas0B,IACX5zB,IAAK,oBACLG,MAAO,WACL,MAA8B,kBAA1BpD,KAAK0C,MAAMgzB,WAENzZ,EAAAA,WAAgB7I,cACrB,IACA,KACA6I,EAAAA,WAAgB7I,cACd,KACEtB,KAAMjN,EAAAA,WAAgBC,IAAI,2BAC5ByX,QAAQ,4BAKH,QAIbtZ,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,OACEqJ,UAAW,wEACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,aACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW;EACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,gBACbR,EAAAA,WAAgB7I,cACd,QACEqJ,UAAW,iBACb,iBAGJR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,gBACbR,EAAAA,WAAgB7I,cACd,KACEqJ,UAAW,QACbF,QAAQ,8BAEVN,EAAAA,WAAgB7I,cACd,IACA,KACApT,KAAK0C,MAAMgQ,SAEb1S,KAAKk3B,4BASVL,GACP5a,EAAAA,WAAgBc,WAEdb,EAAS,SAAU4G,GAGrB,QAAS5G,GAAOxZ,GACdP,EAAgBnC,KAAMkc,EAEtB,IAAI6G,GAAS3H,EAA2Bpb,KAAM+C,OAAOqZ,eAAeF,GAAQrd,KAAKmB,KAAM0C,GAiBvF,OAfAqgB,GAAO4J,SAAW,SAAUyI,GAC1BrS,EAAOpK,UACLgU,SAAUyI,KAIdrS,EAAO4T,MAAQ,WACb5T,EAAOpK,UACLgU,UAAU,KAId5J,EAAO5S,OACLwc,UAAU,GAEL5J,EA2BT,MAjDAzH,GAAUY,EAAQ4G,GA2BlBvgB,EAAa2Z,IACXjZ,IAAK,mBACLG,MAAO,SAA0BgyB,GAC/B4B,EAAAA,WAAmBG,OAAOlb,EAAAA,WAAgB7I,cAAcyjB,GAAuBnB,WAAYN,EAAY12B,KACrGgU,QAAS0iB,EAAYpV,SAAW1X,SAASC,eAAe,kBAK5DtF,IAAK,SACLG,MAAO,WAEL,MAAIpD,MAAKmQ,MAAMwc,SACN1Q,EAAAA,WAAgB7I,cAAcojB,GAAYlwB,KAAMtG,KAAKmQ,MAAMwc,SAAUjd,SAAU1P,KAAK22B,QAEpF1a,EAAAA,WAAgB7I,cAAc0jB,GAAoBpnB,SAAU1P,KAAK2sB,SACtEsK,iBAAkBj3B,KAAKi3B,uBAMxB/a,GACPD,EAAAA,WAAgBc,UAElBne,GAAAA,WAAkBsd,IAEf6Z,WAAW,GAAGC,mBAAmB,GAAGtB,uBAAuB,GAAGwB,uBAAuB,IAAIvL,sBAAsB,IAAIwL,WAAW,GAAGC,SAAS,GAAGpZ,MAAQ,QAAQoa,YAAY,cAAcC,IAAI,SAAS/4B,EAAQU,EAAOJ,GACtN,YAyDA,SAASssB,GAAwBlpB,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAImpB,KAAa,IAAW,MAAPnpB,EAAe,IAAK,GAAIiB,KAAOjB,GAAWe,OAAOvC,UAAUoO,eAAe/P,KAAKmD,EAAKiB,KAAMkoB,EAAOloB,GAAOjB,EAAIiB,GAAgC,OAAtBkoB,GAAAA,WAAiBnpB,EAAYmpB,EAElQ,QAASppB,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS8Y,GAA2B7W,EAAM1F,GAAQ,IAAK0F,EAAQ,KAAM,IAAI8W,gBAAe,4DAAgE,QAAOxc,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B0F,EAAP1F,EAElO,QAASyc,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIlZ,WAAU,iEAAoEkZ,GAAeD,GAAS/a,UAAYuC,OAAO0Y,OAAOD,GAAcA,EAAWhb,WAAakb,aAAetY,MAAOmY,EAAU3Y,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe2Y,IAAYzY,OAAO4Y,eAAiB5Y,OAAO4Y,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GA/Dje,GAAIjZ,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAQ04B,oBAAsB14B,EAAQ24B,kBAAoBj0B,MAE1D,IAAI0Y,GAAS1d,EAAQ,SAEjB2d,EAAUla,EAAuBia,GAEjC+a,EAAYz4B,EAAQ,aAEpB04B,EAAaj1B,EAAuBg1B,GAEpChyB,EAASzG,EAAQ,YAEjBuG,EAAU9C,EAAuBgD,GAEjCga,EAAUzgB,EAAQ,YAElB0gB,EAAWjd,EAAuBgd,GAElCyM,EAAQltB,EAAQ,UAEhBmtB,EAAS1pB,EAAuBypB,GAEhCgM,EAAUl5B,EAAQ,gBAElBm5B,EAAW11B,EAAuBy1B,GAElCxyB,EAAQ1G,EAAQ,oBAEhBqG,EAAS5C,EAAuBiD,GAEhCuB,EAAQjI,EAAQ,oBAEhB4H,EAASnE,EAAuBwE,GAEhCQ,EAASzI,EAAQ,qBAEjBwI,EAAU/E,EAAuBgF,GAEjCe,EAAYxJ,EAAQ,wBAEpBqJ,EAAa5F,EAAuB+F,GAEpCuhB,EAAc/qB,EAAQ,uBAEtB8rB,EAAac,EAAwB7B,GAErC/hB,EAAchJ,EAAQ,wBAEtB+I,EAAetF,EAAuBuF,GAetCiwB,EAAoB34B,EAAQ24B,kBAAoB,SAAU1L,GAG5D,QAAS0L,GAAkB70B,GACzBP,EAAgBnC,KAAMu3B,EAEtB,IAAIvzB,GAAQoX,EAA2Bpb,KAAM+C,OAAOqZ,eAAemb,GAAmB14B,KAAKmB,KAAM0C,GAWjG,OATAsB,GAAMmM,OACJ+O,WAAa,EAEbyT,SAAY,GAEZvI,YACEuI,UAAavI,EAAW+I,kBAAkBtuB,EAAAA,WAAgBC,IAAI,gBAG3Dd,EAyET,MAzFAsX,GAAUic,EAAmB1L,GAmB7BtpB,EAAag1B,IACXt0B,IAAK,QACLG,MAAO,WACL,MAAIpD,MAAKm1B,WACA,GAEHn1B,KAAKmQ,MAAMwiB,SAASjG,OAAO5tB,OAC7B6I,EAAAA,WAAmB6I,MAAMxQ,KAAKmQ,MAAMwZ,OAAOgJ,SAAS,IAEpDhrB,EAAAA,WAAmB6I,MAAM+L,QAAQ,yBAE5B,MAIXtZ,IAAK,OACLG,MAAO,WACL,MAAOuB,GAAAA,WAAe2a,KAAKza,EAAAA,WAAgBC,IAAI,wBAC7C6tB,SAAY3yB,KAAKmQ,MAAMwiB,cAI3B1vB,IAAK,gBACLG,MAAO,SAAuBgyB,GAC5Bp1B,KAAK0C,MAAMgN,SAAS0lB,MAGtBnyB,IAAK,cACLG,MAAO,SAAqB6c,GACD,MAArBA,EAAUC,QAAkBD,EAAUoV,KACvC,EAAGhuB,EAAAA,YAAsB4Y,EAAUoV,KAEpC1tB,EAAAA,WAAmBklB,SAAS5M,MAIhChd,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,OACEqJ,UAAW,2CACbR,EAAAA,WAAgB7I,cACd,QACE0Z,SAAU9sB,KAAK6pB,cACjB5N,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,cACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,iBACbR,EAAAA,WAAgB7I,cAAc,SAAWwJ,KAAM,WAAYH,UAAW,eACpEia,YAAana,QAAQ,sBACrBiC,SAAUxe,KAAKmQ,MAAM+O,UACrB+I,SAAUjoB,KAAKwpB,UAAU,YACzBpmB,MAAOpD,KAAKmQ,MAAMwiB,aAGxB1W,EAAAA,WAAgB7I,cACd4L,EAAAA,YACEvC,UAAW,wBACXgC,QAASze,KAAKmQ,MAAM+O,WACtB3C,QAAQ,0BAQXgb,GACP9L,EAAAA,YAEE6L,EAAsB14B,EAAQ04B,oBAAsB,SAAUnb,GAGhE,QAASmb,KAGP,MAFAn1B,GAAgBnC,KAAMs3B,GAEflc,EAA2Bpb,KAAM+C,OAAOqZ,eAAekb,GAAqB72B,MAAMT,KAAMM,YAmEjG,MAxEAgb,GAAUgc,EAAqBnb,GAQ/B5Z,EAAa+0B,IACXr0B,IAAK,aACLG,MAAO,WACL,MAAOkZ,aAAYC,QAAQ,+DACzBC,SAAUxc,KAAK0C,MAAM4D,KAAKkW,WACzB,MAGLvZ,IAAK,aACLG,MAAO,WACL0D,EAAAA,WAAgBwtB,KAAKmD,EAAAA,eAGvBx0B,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,OACEqJ,UAAW,0EACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,aACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,iBACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,gBACbR,EAAAA,WAAgB7I,cACd,QACEqJ,UAAW,iBACb,UAGJR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,gBACbR,EAAAA,WAAgB7I,cACd,KACEqJ,UAAW,QACbzc,KAAK2c,cAEPV,EAAAA,WAAgB7I,cACd,IACA,KACAmJ,QAAQ,mEAEVN,EAAAA,WAAgB7I,cACd,IACA,KACA6I,EAAAA,WAAgB7I,cACd,UACEwJ,KAAM,SAAUH,UAAW,kBAAmBI,QAAS7c,KAAK03B,YAC9Dnb,QAAQ,qBAWjB+a,GACPrb,EAAAA,WAAgBc,WAEdb,EAAS,SAAUuG,GAGrB,QAASvG,KACP,GAAIgG,GAEAC,EAAOO,EAAQN,CAEnBjgB,GAAgBnC,KAAMkc,EAEtB,KAAK,GAAImG,GAAO/hB,UAAUxB,OAAQsB,EAAOC,MAAMgiB,GAAOC,EAAO,EAAUD,EAAPC,EAAaA,IAC3EliB,EAAKkiB,GAAQhiB,UAAUgiB,EAGzB,OAAeH,GAASO,EAAStH,EAA2Bpb,MAAOkiB,EAAwBnf,OAAOqZ,eAAeF,IAASrd,KAAK4B,MAAMyhB,GAAwBliB,MAAMX,OAAOe,KAAkBsiB,EAAOiK,SAAW,SAAUyI,GACtNlvB,EAAAA,WAAeyxB,cAIf5uB,EAAE,gDAAgD6uB,SAElDZ,EAAAA,WAAmBG,OAAOlb,EAAAA,WAAgB7I,cAAckkB,GAAuBhxB,KAAM8uB,IAAgB9sB,SAASC,eAAe,gBAPxH6Z,EAQJD,EAAQ/G,EAA2BsH,EAAQN,GAgBhD,MArCA9G,GAAUY,EAAQuG,GAyBlBlgB,EAAa2Z,IACXjZ,IAAK,SAILG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cAAcmkB,GAAqB7nB,SAAU1P,KAAK2sB,eAKtEzQ,GACPD,EAAAA,WAAgBc,UAElBne,GAAAA,WAAkBsd,IAEf6Z,WAAW,GAAGC,mBAAmB,GAAGC,mBAAmB,GAAGxB,oBAAoB,GAAGC,uBAAuB,GAAGwB,uBAAuB,IAAIvL,sBAAsB,IAAIwL,WAAW,GAAGC,SAAS,GAAGyB,eAAe,GAAG7a,MAAQ,QAAQoa,YAAY,cAAcU,IAAI,SAASx5B,EAAQU,EAAOJ,GACrR,YAYA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS8Y,GAA2B7W,EAAM1F,GAAQ,IAAK0F,EAAQ,KAAM,IAAI8W,gBAAe,4DAAgE,QAAOxc,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B0F,EAAP1F,EAElO,QAASyc,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIlZ,WAAU,iEAAoEkZ,GAAeD,GAAS/a,UAAYuC,OAAO0Y,OAAOD,GAAcA,EAAWhb,WAAakb,aAAetY,MAAOmY,EAAU3Y,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe2Y,IAAYzY,OAAO4Y,eAAiB5Y,OAAO4Y,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GAhBje,GAAIjZ,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,GAGT,IAAI4Y,GAAS1d,EAAQ,SAEjB2d,EAAUla,EAAuBia,GAUjCE,EAAS,SAAUC,GAGrB,QAASD,KACP,GAAIgG,GAEAC,EAAOne,EAAOoe,CAElBjgB,GAAgBnC,KAAMkc,EAEtB,KAAK,GAAImG,GAAO/hB,UAAUxB,OAAQsB,EAAOC,MAAMgiB,GAAOC,EAAO,EAAUD,EAAPC,EAAaA,IAC3EliB,EAAKkiB,GAAQhiB,UAAUgiB,EAGzB,OAAeH,GAASne,EAAQoX,EAA2Bpb,MAAOkiB,EAAwBnf,OAAOqZ,eAAeF,IAASrd,KAAK4B,MAAMyhB,GAAwBliB,MAAMX,OAAOe,KAAiB4D,EAAM+zB,OAAS,SAAU30B,GACjN,MAAO,YACLY,EAAMtB,MAAMulB,UACVxlB,QACEW,MAAOA,OAJRgf,EAQJD,EAAQ/G,EAA2BpX,EAAOoe,GAoF/C,MAzGA9G,GAAUY,EAAQC,GAwBlB5Z,EAAa2Z,IACXjZ,IAAK,YACLG,MAAO,WACL,GAAIsd,GAAS1gB,KAETg4B,EAAS,IAMb,OALAh4B,MAAK0C,MAAMytB,QAAQvN,IAAI,SAAUhf,GAC3BA,EAAKR,QAAUsd,EAAOhe,MAAMU,QAC9B40B,EAASp0B,KAGNo0B,KAGT/0B,IAAK,UACLG,MAAO,WACL,MAAOpD,MAAKi4B,YAAYrI,QAG1B3sB,IAAK,WACLG,MAAO,WACL,MAAOpD,MAAKi4B,YAAYrP,SAM1B3lB,IAAK,SAILG,MAAO,WACL,GAAIsf,GAAS1iB,IAGb,OAAOic,GAAAA,WAAgB7I,cACrB,OACEqJ,UAAW,8BACbR,EAAAA,WAAgB7I,cACd,UACEwJ,KAAM,SACNH,UAAW,iCACXY,GAAIrd,KAAK0C,MAAM2a,IAAM,KACrB6a,cAAe,WACflG,gBAAiB,OACjBC,gBAAiB,QACjBsD,mBAAoBv1B,KAAK0C,MAAM,qBAAuB,KACtD8b,SAAUxe,KAAK0C,MAAM8b,WAAY,GACnCvC,EAAAA,WAAgB7I,cACd,QACEqJ,UAAW,iBACbzc,KAAKm4B,WAEPn4B,KAAKo4B,YAEPnc,EAAAA,WAAgB7I,cACd,MACEqJ,UAAW,iBACbzc,KAAK0C,MAAMytB,QAAQvN,IAAI,SAAUhf,EAAMrF,GACrC,MAAO0d,GAAAA,WAAgB7I,cACrB,MACEnQ,IAAK1E,GACP0d,EAAAA,WAAgB7I,cACd,UACEwJ,KAAM,SAAUH,UAAW,WAC3BI,QAAS6F,EAAOqV,OAAOn0B,EAAKR,QAC9B6Y,EAAAA,WAAgB7I,cACd,QACEqJ,UAAW,iBACb7Y,EAAKgsB,MAEPhsB,EAAKglB,gBAUZ1M,GACPD,EAAAA,WAAgBc,UAElBne,GAAAA,WAAkBsd,IAEfc,MAAQ,UAAUqb,IAAI,SAAS/5B,EAAQU,EAAOJ,GACjD,YAwCA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS8Y,GAA2B7W,EAAM1F,GAAQ,IAAK0F,EAAQ,KAAM,IAAI8W,gBAAe,4DAAgE,QAAOxc,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B0F,EAAP1F,EAElO,QAASyc,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIlZ,WAAU,iEAAoEkZ,GAAeD,GAAS/a,UAAYuC,OAAO0Y,OAAOD,GAAcA,EAAWhb,WAAakb,aAAetY,MAAOmY,EAAU3Y,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe2Y,IAAYzY,OAAO4Y,eAAiB5Y,OAAO4Y,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GA5Cje,GAAIjZ,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,GAGT,IAAI4Y,GAAS1d,EAAQ,SAEjB2d,EAAUla,EAAuBia,GAEjCjX,EAASzG,EAAQ,YAEjBuG,EAAU9C,EAAuBgD,GAEjCga,EAAUzgB,EAAQ,YAElB0gB,EAAWjd,EAAuBgd,GAElCyM,EAAQltB,EAAQ,UAEhBmtB,EAAS1pB,EAAuBypB,GAEhCxmB,EAAQ1G,EAAQ,oBAEhBqG,EAAS5C,EAAuBiD,GAEhC+B,EAASzI,EAAQ,qBAEjBwI,EAAU/E,EAAuBgF,GAEjCe,EAAYxJ,EAAQ,wBAEpBqJ,EAAa5F,EAAuB+F,GAEpCR,EAAchJ,EAAQ,wBAEtB+I,EAAetF,EAAuBuF,GAWtC4U,EAAS,SAAU2P,GAGrB,QAAS3P,GAAOxZ,GACdP,EAAgBnC,KAAMkc,EAEtB,IAAIlY,GAAQoX,EAA2Bpb,KAAM+C,OAAOqZ,eAAeF,GAAQrd,KAAKmB,KAAM0C,GActF,OAZAsB,GAAMmM,OACJ+O,WAAa,EACboZ,gBAAkB,EAElB9b,SAAY,GACZmW,SAAY,GAEZvI,YACE5N,YACAmW,cAGG3uB,EA0KT,MA7LAsX,GAAUY,EAAQ2P,GAsBlBtpB,EAAa2Z,IACXjZ,IAAK,QACLG,MAAO,WACL,MAAKpD,MAAKm1B,WAID,GAHPxtB,EAAAA,WAAmB6I,MAAM+L,QAAQ,2BAC1B,MAMXtZ,IAAK,OACLG,MAAO,WACL,MAAOuB,GAAAA,WAAe2a,KAAKza,EAAAA,WAAgBC,IAAI,aAC7C0X,SAAYxc,KAAKmQ,MAAMqM,SACvBmW,SAAY3yB,KAAKmQ,MAAMwiB,cAI3B1vB,IAAK,gBACLG,MAAO,WACL,GAAIoyB,GAAOzsB,EAAE,qBAEbysB,GAAK1O,OAAO,yCACZ0O,EAAK1O,OAAO,6CAKZ0O,EAAK+C,KAAK,wBAAwBC,IAAI7zB,EAAAA,WAAe8zB,gBACrDjD,EAAK+C,KAAK,6BAA6BC,IAAIh0B,OAAOqN,SAASM,UAC3DqjB,EAAK+C,KAAK,0BAA0BC,IAAIx4B,KAAKmQ,MAAMqM,UACnDgZ,EAAK+C,KAAK,0BAA0BC,IAAIx4B,KAAKmQ,MAAMwiB,UACnD6C,EAAKkD,SAGL14B,KAAK2Y,UACHuG,WAAa,OAIjBjc,IAAK,cACLG,MAAO,SAAqB6c,GACD,MAArBA,EAAUC,OACW,mBAAnBD,EAAUvhB,KACZiJ,EAAAA,WAAmBqf,KAAK/G,EAAUD,QACN,kBAAnBC,EAAUvhB,MACnBiJ,EAAAA,WAAmBqf,KAAK/G,EAAUD,QAClChgB,KAAK2Y,UACH2f,gBAAkB,KAEQ,WAAnBrY,EAAUvhB,OAClB,EAAG2I,EAAAA,YAAsB4Y,EAAUD,QACpClZ,EAAAA,WAAgBwuB,QAEhB3tB,EAAAA,WAAmB6I,MAAMyP,EAAUD,QAEP,MAArBC,EAAUC,QAAkBD,EAAUoV,MAC9C,EAAGhuB,EAAAA,YAAsB4Y,EAAUoV,KACpCvuB,EAAAA,WAAgBwuB,QAEhB3tB,EAAAA,WAAmBklB,SAAS5M,MAIhChd,IAAK,sBACLG,MAAO,WACL,MAAIpD,MAAKmQ,MAAMmoB,eAENrc,EAAAA,WAAgB7I,cACrB,KACEtB,KAAMjN,EAAAA,WAAgBC,IAAI,0BAC1B2X,UAAW,6BACbF,QAAQ,qBAID,QAIbtZ,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,OACEqJ,UAAW,sCACX2I,KAAM,YACRnJ,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,iBACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,gBACbR,EAAAA,WAAgB7I,cACd,UACEwJ,KAAM,SAAUH,UAAW,QAAS4I,eAAgB,QACpDC,aAAc/I,QAAQ,UACxBN,EAAAA,WAAgB7I,cACd,QACEmS,cAAe,QACjB,MAGJtJ,EAAAA,WAAgB7I,cACd,MACEqJ,UAAW,eACbF,QAAQ,aAGZN,EAAAA,WAAgB7I,cACd,QACE0Z,SAAU9sB,KAAK6pB,cACjB5N,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,cACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,cACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,iBACbR,EAAAA,WAAgB7I,cAAc,SAAWiK,GAAI,cAAeZ,UAAW,eAAgBG,KAAM,OAC3F4B,SAAUxe,KAAKmQ,MAAM+O,UACrBwX,YAAana,QAAQ,sBACrB0L,SAAUjoB,KAAKwpB,UAAU,YACzBpmB,MAAOpD,KAAKmQ,MAAMqM,aAGxBP,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,cACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,iBACbR,EAAAA,WAAgB7I,cAAc,SAAWiK,GAAI,cAAeZ,UAAW,eAAgBG,KAAM,WAC3F4B,SAAUxe,KAAKmQ,MAAM+O,UACrBwX,YAAana,QAAQ,YACrB0L,SAAUjoB,KAAKwpB,UAAU,YACzBpmB,MAAOpD,KAAKmQ,MAAMwiB,cAI1B1W,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,gBACbzc,KAAK24B,sBACL1c,EAAAA,WAAgB7I,cACd4L,EAAAA,YACEvC,UAAW,wBACXgC,QAASze,KAAKmQ,MAAM+O,WACtB3C,QAAQ,YAEVN,EAAAA,WAAgB7I,cACd,KACEtB,KAAMjN,EAAAA,WAAgBC,IAAI,0BAC1B2X,UAAW,6BACbF,QAAQ,6BAUfL,GACPuP,EAAAA,WAEF7sB,GAAAA,WAAkBsd,IAEf6Z,WAAW,GAAGC,mBAAmB,GAAGvB,oBAAoB,GAAGC,uBAAuB,GAAGwB,uBAAuB,IAAIC,WAAW,GAAGC,SAAS,GAAGpZ,MAAQ,UAAU4b,IAAI,SAASt6B,EAAQU,EAAOJ,GAC3L,YAcA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS8Y,GAA2B7W,EAAM1F,GAAQ,IAAK0F,EAAQ,KAAM,IAAI8W,gBAAe,4DAAgE,QAAOxc,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B0F,EAAP1F,EAElO,QAASyc,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIlZ,WAAU,iEAAoEkZ,GAAeD,GAAS/a,UAAYuC,OAAO0Y,OAAOD,GAAcA,EAAWhb,WAAakb,aAAetY,MAAOmY,EAAU3Y,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe2Y,IAAYzY,OAAO4Y,eAAiB5Y,OAAO4Y,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GAmDje,QAAS/V,GAAO0K,GACd,MAAOA,GAAM0oB,SAtEf,GAAIt2B,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAQmM,SAAWzH,OACnB1E,EAAQ6G,OAASA,CAEjB,IAAIuW,GAAS1d,EAAQ,SAEjB2d,EAAUla,EAAuBia,GAWjC8c,GACF9R,KAAQ,aACRjH,QAAW,gBACX5O,QAAW,gBACXX,MAAS,eAII5R,GAAQmM,SAAW,SAAUoR,GAG1C,QAASpR,KAGP,MAFA5I,GAAgBnC,KAAM+K,GAEfqQ,EAA2Bpb,KAAM+C,OAAOqZ,eAAerR,GAAUtK,MAAMT,KAAMM,YA+BtF,MApCAgb,GAAUvQ,EAAUoR,GAQpB5Z,EAAawI,IACX9H,IAAK,mBACLG,MAAO,WACL,GAAI21B,GAAgB,iBAMpB,OAJEA,IADE/4B,KAAK0C,MAAMs2B,UACI,MAEA,UAKrB/1B,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,OACEqJ,UAAWzc,KAAKi5B,oBAClBhd,EAAAA,WAAgB7I,cACd,KACEqJ,UAAW,SAAWqc,EAAc94B,KAAK0C,MAAMka,OACjD5c,KAAK0C,MAAMgQ,cAOZ3H,GACPkR,EAAAA,WAAgBc,aAMfC,MAAQ,UAAUkc,IAAI,SAAS56B,EAAQU,EAAOJ,GACjD,YAiCA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS8Y,GAA2B7W,EAAM1F,GAAQ,IAAK0F,EAAQ,KAAM,IAAI8W,gBAAe,4DAAgE,QAAOxc,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B0F,EAAP1F,EAElO,QAASyc,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIlZ,WAAU,iEAAoEkZ,GAAeD,GAAS/a,UAAYuC,OAAO0Y,OAAOD,GAAcA,EAAWhb,WAAakb,aAAetY,MAAOmY,EAAU3Y,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe2Y,IAAYzY,OAAO4Y,eAAiB5Y,OAAO4Y,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GArCje,GAAIjZ,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAQu6B,gBAAkBv6B,EAAQw6B,SAAWx6B,EAAQy6B,UAAY/1B,MAEjE,IAAI0Y,GAAS1d,EAAQ,SAEjB2d,EAAUla,EAAuBia,GAEjC8C,EAAUxgB,EAAQ,aAElBilB,EAAWxhB,EAAuB+c,GAElCwa,EAAkBh7B,EAAQ,sBAE1Bi7B,EAAmBx3B,EAAuBu3B,GAE1C9B,EAAUl5B,EAAQ,iBAElBm5B,EAAW11B,EAAuBy1B,GAElC/uB,EAAwBnK,EAAQ,yCAEhCkK,EAAyBzG,EAAuB0G,GAEhD1B,EAASzI,EAAQ,wBAEjBwI,EAAU/E,EAAuBgF,GAWjCsyB,EAAYz6B,EAAQy6B,UAAY,SAAUld,GAG5C,QAASkd,KAGP,MAFAl3B,GAAgBnC,KAAMq5B,GAEfje,EAA2Bpb,KAAM+C,OAAOqZ,eAAeid,GAAW54B,MAAMT,KAAMM,YA0DvF,MA/DAgb,GAAU+d,EAAWld,GAQrB5Z,EAAa82B,IACXp2B,IAAK,kBACLG,MAAO,WACL0D,EAAAA,WAAgBwtB,KAAKmD,EAAAA,eAGvBx0B,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,MACEqJ,UAAW,kDACX2I,KAAM,QACRnJ,EAAAA,WAAgB7I,cACd,MACEqJ,UAAW,iBACbR,EAAAA,WAAgB7I,cACd,KACA,KACAmJ,QAAQ,+BAEVN,EAAAA,WAAgB7I,cACd,IACA,KACAmJ,QAAQ,iEAEVN,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,OACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,YACbR,EAAAA,WAAgB7I,cACd,UACEwJ,KAAM,SAAUH,UAAW,4BAC3BI,QAAS7c,KAAKw5B,iBAChBjd,QAAQ,aAGZN,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,YACbR,EAAAA,WAAgB7I,cACdmmB,EAAAA,YACE9c,UAAW,yBACbF,QAAQ,qBAUf8c,GACPpd,EAAAA,WAAgBc,UAEHne,GAAQw6B,SAAW,SAAUK,GAG1C,QAASL,KAGP,MAFAj3B,GAAgBnC,KAAMo5B,GAEfhe,EAA2Bpb,KAAM+C,OAAOqZ,eAAegd,GAAU34B,MAAMT,KAAMM,YA0BtF,MA/BAgb,GAAU8d,EAAUK,GAQpBl3B,EAAa62B,IACXn2B,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,OACEqJ,UAAW,iBACbR,EAAAA,WAAgB7I,cACd,UACEwJ,KAAM,SAAUH,UAAW,6BAC3BI,QAAS7c,KAAKw5B,iBAChBjd,QAAQ,YAEVN,EAAAA,WAAgB7I,cACdmmB,EAAAA,YACE9c,UAAW,0BACbF,QAAQ,kBAOT6c,GACPC,GAEoBz6B,EAAQu6B,gBAAkB,SAAU1W,GAGxD,QAAS0W,KAGP,MAFAh3B,GAAgBnC,KAAMm5B,GAEf/d,EAA2Bpb,KAAM+C,OAAOqZ,eAAe+c,GAAiB14B,MAAMT,KAAMM,YAqB7F,MA1BAgb,GAAU6d,EAAiB1W,GAQ3BlgB,EAAa42B,IACXl2B,IAAK,gBACLG,MAAO,WACLoF,EAAAA,WAA+B8rB,KAAK+E,MAGtCp2B,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,UACEwJ,KAAM,SAAUC,QAAS7c,KAAK05B,eAChCzd,EAAAA,WAAgB7I,cAAcmQ,EAAAA,YAAoBpG,KAAM,YAMvDgc,GACPld,EAAAA,WAAgBc,aAEf4c,wCAAwC,GAAGC,uBAAuB,GAAGjY,YAAY,GAAGkY,qBAAqB,GAAGC,gBAAgB,GAAG9c,MAAQ,UAAU+c,IAAI,SAASz7B,EAAQU,EAAOJ,GAChL,YAkBA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS8Y,GAA2B7W,EAAM1F,GAAQ,IAAK0F,EAAQ,KAAM,IAAI8W,gBAAe,4DAAgE,QAAOxc,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B0F,EAAP1F,EAElO,QAASyc,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIlZ,WAAU,iEAAoEkZ,GAAeD,GAAS/a,UAAYuC,OAAO0Y,OAAOD,GAAcA,EAAWhb,WAAakb,aAAetY,MAAOmY,EAAU3Y,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe2Y,IAAYzY,OAAO4Y,eAAiB5Y,OAAO4Y,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GAsDje,QAAS/V,GAAO0K,GACd,MAAOA,GAAM0L,KA7Ef,GAAItZ,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAQoN,gBAAkBpN,EAAQmN,SAAWzI,OAC7C1E,EAAQ6G,OAASA,CAEjB,IAAIuW,GAAS1d,EAAQ,SAEjB2d,EAAUla,EAAuBia,GAEjCge,EAAY17B,EAAQ,eAEpB27B,EAAW37B,EAAQ,aAYRM,GAAQmN,SAAW,SAAUoQ,GAG1C,QAASpQ,KAGP,MAFA5J,GAAgBnC,KAAM+L,GAEfqP,EAA2Bpb,KAAM+C,OAAOqZ,eAAerQ,GAAUtL,MAAMT,KAAMM,YAgBtF,MArBAgb,GAAUvP,EAAUoQ,GAQpB5Z,EAAawJ,IACX9I,IAAK,SACLG,MAAO,WAEL,MAAIpD,MAAK0C,MAAM0D,gBACN6V,EAAAA,WAAgB7I,cAAc6mB,EAASC,SAAW5zB,KAAMtG,KAAK0C,MAAM4D,OAEnE2V,EAAAA,WAAgB7I,cAAc4mB,EAAUZ,SAAU,UAMxDrtB,GACPkQ,EAAAA,WAAgBc,WAEIne,EAAQoN,gBAAkB,SAAUyW,GAGxD,QAASzW,KAGP,MAFA7J,GAAgBnC,KAAMgM,GAEfoP,EAA2Bpb,KAAM+C,OAAOqZ,eAAepQ,GAAiBvL,MAAMT,KAAMM,YAgB7F,MArBAgb,GAAUtP,EAAiByW,GAQ3BlgB,EAAayJ,IACX/I,IAAK,SACLG,MAAO,WAEL,MAAIpD,MAAK0C,MAAM0D,gBACN6V,EAAAA,WAAgB7I,cAAc6mB,EAASE,gBAAkB7zB,KAAMtG,KAAK0C,MAAM4D,OAE1E2V,EAAAA,WAAgB7I,cAAc4mB,EAAUb,gBAAiB,UAM/DntB,GACPiQ,EAAAA,WAAgBc,aAMfqd,cAAc,GAAGC,aAAa,GAAGrd,MAAQ,UAAUsd,IAAI,SAASh8B,EAAQU,EAAOJ,GAClF,YAoCA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS8Y,GAA2B7W,EAAM1F,GAAQ,IAAK0F,EAAQ,KAAM,IAAI8W,gBAAe,4DAAgE,QAAOxc,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B0F,EAAP1F,EAElO,QAASyc,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIlZ,WAAU,iEAAoEkZ,GAAeD,GAAS/a,UAAYuC,OAAO0Y,OAAOD,GAAcA,EAAWhb,WAAakb,aAAetY,MAAOmY,EAAU3Y,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe2Y,IAAYzY,OAAO4Y,eAAiB5Y,OAAO4Y,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GA6Ije,QAAS+e,GAAepqB,GACtB,OAAS7J,KAAM6J,EAAM0L,KAAKvV,MAtL5B,GAAI/D,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAQu7B,eAAiBv7B,EAAQs7B,QAAUt7B,EAAQmN,SAAWzI,OAC9D1E,EAAQ27B,eAAiBA,CAEzB,IAAIve,GAAS1d,EAAQ,SAEjB2d,EAAUla,EAAuBia,GAEjC1W,EAAchH,EAAQ,eAEtBwgB,EAAUxgB,EAAQ,aAElBilB,EAAWxhB,EAAuB+c,GAElCrV,EAAQnL,EAAQ,yBAEhBiL,EAASxH,EAAuB0H,GAEhC1E,EAASzG,EAAQ,eAEjBuG,EAAU9C,EAAuBgD,GAEjC0D,EAAwBnK,EAAQ,yCAEhCkK,EAAyBzG,EAAuB0G,GAEhD1B,EAASzI,EAAQ,wBAEjBwI,EAAU/E,EAAuBgF,GAYjCgF,EAAWnN,EAAQmN,SAAW,SAAUoQ,GAG1C,QAASpQ,KAGP,MAFA5J,GAAgBnC,KAAM+L,GAEfqP,EAA2Bpb,KAAM+C,OAAOqZ,eAAerQ,GAAUtL,MAAMT,KAAMM,YA4FtF,MAjGAgb,GAAUvP,EAAUoQ,GAQpB5Z,EAAawJ,IACX9I,IAAK,SACLG,MAAO,WACL,GAAIo3B,GAAW7nB,QAAQ4J,QAAQ,sCAC3Bie,IACFzxB,EAAE,uBAAuB2vB,YAI7Bz1B,IAAK,eACLG,MAAO,WACL0D,EAAAA,WAAgBwtB,MAAM,EAAGhvB,EAAYC,SAASkE,EAAMhE,QAAQ8D,EAAAA,gBAG9DtG,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,MACEqJ,UAAW,kDACX2I,KAAM,QACRnJ,EAAAA,WAAgB7I,cACd,MACEqJ,UAAW,mBACbR,EAAAA,WAAgB7I,cACd,SACA,KACApT,KAAK0C,MAAM4D,KAAKkW,WAGpBP,EAAAA,WAAgB7I,cAAc,MAAQqJ,UAAW,YACjDR,EAAAA,WAAgB7I,cACd,KACA,KACA6I,EAAAA,WAAgB7I,cACd,KACEtB,KAAM9R,KAAK0C,MAAM4D,KAAK6mB,cACxBlR,EAAAA,WAAgB7I,cACd,QACEqJ,UAAW,iBACb,kBAEFF,QAAQ,sBAGZN,EAAAA,WAAgB7I,cACd,KACA,KACA6I,EAAAA,WAAgB7I,cACd,KACEtB,KAAMjN,EAAAA,WAAgBC,IAAI,eAC5BmX,EAAAA,WAAgB7I,cACd,QACEqJ,UAAW,iBACb,YAEFF,QAAQ,oBAGZN,EAAAA,WAAgB7I,cACd,KACA,KACA6I,EAAAA,WAAgB7I,cACd,UACEwJ,KAAM,SAAUH,UAAW,WAAYI,QAAS7c,KAAKy6B,cACvDxe,EAAAA,WAAgB7I,cACd,QACEqJ,UAAW,iBACb,YAEFF,QAAQ,mBAGZN,EAAAA,WAAgB7I,cAAc,MAAQqJ,UAAW,YACjDR,EAAAA,WAAgB7I,cACd,MACEqJ,UAAW,mBACbR,EAAAA,WAAgB7I,cACd,UACEwJ,KAAM,SAAUH,UAAW,4BAC3BI,QAAS7c,KAAK06B,QAChBne,QAAQ,kBAQXxQ,GACPkQ,EAAAA,WAAgBc,UAEJne,GAAQs7B,QAAU,SAAUzX,GAGxC,QAASyX,KAGP,MAFA/3B,GAAgBnC,KAAMk6B,GAEf9e,EAA2Bpb,KAAM+C,OAAOqZ,eAAe8d,GAASz5B,MAAMT,KAAMM,YA2BrF,MAhCAgb,GAAU4e,EAASzX,GAQnBlgB,EAAa23B,IACXj3B,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,MACEqJ,UAAW,8BACbR,EAAAA,WAAgB7I,cACd,MACEqJ,UAAW,YACbR,EAAAA,WAAgB7I,cACd,KACEtB,KAAM9R,KAAK0C,MAAM4D,KAAK6mB,aAAc1Q,UAAW,kBAC/Cyb,cAAe,WAAYlG,gBAAiB,OAAQC,gBAAiB,QACrE7M,KAAM,UACRnJ,EAAAA,WAAgB7I,cAAcmQ,EAAAA,YAAoBjd,KAAMtG,KAAK0C,MAAM4D,KAAM6W,KAAM,QAEjFlB,EAAAA,WAAgB7I,cAAcrH,GAAYzF,KAAMtG,KAAK0C,MAAM4D,aAO5D4zB,GACPje,EAAAA,WAAgBc,WAMGne,EAAQu7B,eAAiB,SAAUrX,GAGtD,QAASqX,KAGP,MAFAh4B,GAAgBnC,KAAMm6B,GAEf/e,EAA2Bpb,KAAM+C,OAAOqZ,eAAe+d,GAAgB15B,MAAMT,KAAMM,YAqB5F,MA1BAgb,GAAU6e,EAAgBrX,GAQ1BvgB,EAAa43B,IACXl3B,IAAK,eACLG,MAAO,WACLoF,EAAAA,WAA+BmyB,cAAc,aAAc,EAAGr1B,EAAYC,SAASg1B,GAAgBxuB,OAGrG9I,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,UACEwJ,KAAM,SAAUC,QAAS7c,KAAK46B,cAChC3e,EAAAA,WAAgB7I,cAAcmQ,EAAAA,YAAoBjd,KAAMtG,KAAK0C,MAAM4D,KAAM6W,KAAM,YAM9Egd,GACPle,EAAAA,WAAgBc,aAEfqG,cAAc,GAAGuW,wCAAwC,GAAGC,uBAAuB,GAAGjY,YAAY,GAAGkZ,wBAAwB,GAAG7d,MAAQ,QAAQlX,cAAc,gBAAgBg1B,IAAI,SAASx8B,EAAQU,EAAOJ,GAC7M,YAaA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS8Y,GAA2B7W,EAAM1F,GAAQ,IAAK0F,EAAQ,KAAM,IAAI8W,gBAAe,4DAAgE,QAAOxc,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B0F,EAAP1F,EAElO,QAASyc,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIlZ,WAAU,iEAAoEkZ,GAAeD,GAAS/a,UAAYuC,OAAO0Y,OAAOD,GAAcA,EAAWhb,WAAakb,aAAetY,MAAOmY,EAAU3Y,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe2Y,IAAYzY,OAAO4Y,eAAiB5Y,OAAO4Y,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GAjBje,GAAIjZ,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAQm8B,YAAcn8B,EAAQo8B,WAAa13B,MAE3C,IAAI0Y,GAAS1d,EAAQ,SAEjB2d,EAAUla,EAAuBia,GAUjCE,EAAS,SAAUC,GAGrB,QAASD,KAGP,MAFA/Z,GAAgBnC,KAAMkc,GAEfd,EAA2Bpb,KAAM+C,OAAOqZ,eAAeF,GAAQzb,MAAMT,KAAMM,YAoCpF,MAzCAgb,GAAUY,EAAQC,GAQlB5Z,EAAa2Z,IACXjZ,IAAK,WACLG,MAAO,WACL,GAAI8c,GAAS,EAeb,OAdIlgB,MAAK0C,MAAMwd,OAAO+a,UACpB/a,EAAS,SACAlgB,KAAK0C,MAAMwd,OAAOgb,UAC3Bhb,EAAS,UACAlgB,KAAK0C,MAAMwd,OAAOib,iBAC3Bjb,EAAS,SACAlgB,KAAK0C,MAAMwd,OAAOkb,kBAC3Blb,EAAS,UACAlgB,KAAK0C,MAAMwd,OAAOmb,UAC3Bnb,EAAS,SACAlgB,KAAK0C,MAAMwd,OAAOob,aAC3Bpb,EAAS,WAGJ,oBAAsBA,KAG/Bjd,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,QACEqJ,UAAWzc,KAAKu7B,YAClBv7B,KAAK0C,MAAMgc,cAMVxC,GACPD,EAAAA,WAAgBc,UAElBne,GAAAA,WAAkBsd,CAEDtd,GAAQo8B,WAAa,SAAUvY,GAG9C,QAASuY,KAGP,MAFA74B,GAAgBnC,KAAMg7B,GAEf5f,EAA2Bpb,KAAM+C,OAAOqZ,eAAe4e,GAAYv6B,MAAMT,KAAMM,YAiCxF,MAtCAgb,GAAU0f,EAAYvY,GAQtBlgB,EAAay4B,IACX/3B,IAAK,UACLG,MAAO,WACL,MAAIpD,MAAK0C,MAAMwd,OAAO+a,UACb,wBACEj7B,KAAK0C,MAAMwd,OAAOgb,UACpB,eACEl7B,KAAK0C,MAAMwd,OAAOib,iBACpB,QACEn7B,KAAK0C,MAAMwd,OAAOkb,kBACpB,gBACEp7B,KAAK0C,MAAMwd,OAAOmb,UACpB,OACEr7B,KAAK0C,MAAMwd,OAAOob,WACpB,oBADF,UAKTr4B,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,QACEqJ,UAAW,6BACbzc,KAAKm4B,eAMJ6C,GACP/e,EAAAA,WAAgBc,WAEAne,EAAQm8B,YAAc,SAAUjY,GAGhD,QAASiY,KAGP,MAFA54B,GAAgBnC,KAAM+6B,GAEf3f,EAA2Bpb,KAAM+C,OAAOqZ,eAAe2e,GAAat6B,MAAMT,KAAMM,YAwEzF,MA7EAgb,GAAUyf,EAAajY,GAQvBvgB,EAAaw4B,IACX93B,IAAK,UACLG,MAAO,WACL,MAAIpD,MAAK0C,MAAMwd,OAAO+a,UAChBj7B,KAAK0C,MAAMwd,OAAOsb,aACblf,YAAYC,QAAQ,wDACzBC,SAAUxc,KAAK0C,MAAM4D,KAAKkW,SAC1Bif,YAAaz7B,KAAK0C,MAAMwd,OAAOsb,aAAa3gB,OAAO,YAClD,GAEIyB,YAAYC,QAAQ,kCACzBC,SAAUxc,KAAK0C,MAAM4D,KAAKkW,WACzB,GAEIxc,KAAK0C,MAAMwd,OAAOgb,UACpB5e,YAAYC,QAAQ,oCACzBC,SAAUxc,KAAK0C,MAAM4D,KAAKkW,WACzB,GACMxc,KAAK0C,MAAMwd,OAAOib,iBACpB7e,YAAYC,QAAQ,oCACzBC,SAAUxc,KAAK0C,MAAM4D,KAAKkW,WACzB,GACMxc,KAAK0C,MAAMwd,OAAOkb,kBACpB9e,YAAYC,QAAQ,uDACzBC,SAAUxc,KAAK0C,MAAM4D,KAAKkW,SAC1Bkf,WAAY17B,KAAK0C,MAAMwd,OAAOwb,WAAWzd,YACxC,GACMje,KAAK0C,MAAMwd,OAAOmb,UACpB/e,YAAYC,QAAQ,2BACzBC,SAAUxc,KAAK0C,MAAM4D,KAAKkW,WACzB,GACMxc,KAAK0C,MAAMwd,OAAOob,WACpBhf,YAAYC,QAAQ,8CACzBC,SAAUxc,KAAK0C,MAAM4D,KAAKkW,SAC1Bkf,WAAY17B,KAAK0C,MAAMwd,OAAOwb,WAAWzd,YACxC,GAJE,UAQThb,IAAK,WACLG,MAAO,WACL,MAAIpD,MAAK0C,MAAMwd,OAAO+a,UACb1e,QAAQ,UACNvc,KAAK0C,MAAMwd,OAAOgb,UACpB3e,QAAQ,mBACNvc,KAAK0C,MAAMwd,OAAOib,iBACpB5e,QAAQ,mBACNvc,KAAK0C,MAAMwd,OAAOkb,kBACpB7e,QAAQ,oBACNvc,KAAK0C,MAAMwd,OAAOmb,UACpB9e,QAAQ,UACNvc,KAAK0C,MAAMwd,OAAOob,WACpB/e,QAAQ,WADV,UAKTtZ,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,QACEqJ,UAAWzc,KAAK0C,MAAM+Z,WAAa,eACnC/b,MAAOV,KAAK27B,WACd37B,KAAKo4B,gBAMJ2C,GACP9e,EAAAA,WAAgBc,aAEfC,MAAQ,UAAU4e,IAAI,SAASt9B,EAAQU,EAAOJ,GACjD,YA6CA,SAASssB,GAAwBlpB,GAAO,GAAIA,GAAOA,EAAIC,WAAc,MAAOD,EAAc,IAAImpB,KAAa,IAAW,MAAPnpB,EAAe,IAAK,GAAIiB,KAAOjB,GAAWe,OAAOvC,UAAUoO,eAAe/P,KAAKmD,EAAKiB,KAAMkoB,EAAOloB,GAAOjB,EAAIiB,GAAgC,OAAtBkoB,GAAAA,WAAiBnpB,EAAYmpB,EAElQ,QAASppB,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS8Y,GAA2B7W,EAAM1F,GAAQ,IAAK0F,EAAQ,KAAM,IAAI8W,gBAAe,4DAAgE,QAAOxc,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B0F,EAAP1F,EAElO,QAASyc,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIlZ,WAAU,iEAAoEkZ,GAAeD,GAAS/a,UAAYuC,OAAO0Y,OAAOD,GAAcA,EAAWhb,WAAakb,aAAetY,MAAOmY,EAAU3Y,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe2Y,IAAYzY,OAAO4Y,eAAiB5Y,OAAO4Y,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GAnDje,GAAIjZ,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAQi9B,gBAAkBj9B,EAAQk9B,qBAAuBl9B,EAAQm9B,cAAgBn9B,EAAQo9B,aAAe14B,MAExG,IAAI0Y,GAAS1d,EAAQ,SAEjB2d,EAAUla,EAAuBia,GAEjC0U,EAAepyB,EAAQ,gBAEvBwgB,EAAUxgB,EAAQ,aAElBilB,EAAWxhB,EAAuB+c,GAElCmd,EAAc39B,EAAQ,kBAEtB49B,EAAen6B,EAAuBk6B,GAEtCl3B,EAASzG,EAAQ,eAEjBuG,EAAU9C,EAAuBgD,GAEjC2H,EAASpO,EAAQ,wBAEjB0G,EAAQ1G,EAAQ,uBAEhBqG,EAAS5C,EAAuBiD,GAEhCgF,EAAa1L,EAAQ,6BAErBwL,EAAc/H,EAAuBiI,GAErCvD,EAASnI,EAAQ,wBAEjB0H,EAAUjE,EAAuB0E,GAEjCmlB,EAAUttB,EAAQ,sBAElBqY,EAASuU,EAAwBU,GAgBjCoQ,EAAep9B,EAAQo9B,aAAe,SAAU7f,GAGlD,QAAS6f,KAGP,MAFA75B,GAAgBnC,KAAMg8B,GAEf5gB,EAA2Bpb,KAAM+C,OAAOqZ,eAAe4f,GAAcv7B,MAAMT,KAAMM,YAmK1F,MAxKAgb,GAAU0gB,EAAc7f,GAQxB5Z,EAAay5B,IACX/4B,IAAK,eACLG,MAAO,WACL,MAAIpD,MAAK0C,MAAMy5B,KAAKC,UACX,mCAAqCp8B,KAAK0C,MAAMy5B,KAAKC,UAErD,qBAIXn5B,IAAK,gBACLG,MAAO,WACL,MAAIpD,MAAK0C,MAAM4D,KAAK4Z,OAEXjE,EAAAA,WAAgB7I,cACrB8oB,EAAAA,YACE51B,KAAMtG,KAAK0C,MAAM4D,KAAM4Z,OAAQlgB,KAAK0C,MAAM4D,KAAK4Z,QACjDjE,EAAAA,WAAgB7I,cAAc6oB,EAAYjB,YAAc10B,KAAMtG,KAAK0C,MAAM4D,KACvE4Z,OAAQlgB,KAAK0C,MAAM4D,KAAK4Z,SAC1BjE,EAAAA,WAAgB7I,cAAc6oB,EAAYlB,aAAez0B,KAAMtG,KAAK0C,MAAM4D,KACxE4Z,OAAQlgB,KAAK0C,MAAM4D,KAAK4Z,OACxBzD,UAAW,sCAKNR,EAAAA,WAAgB7I,cACrB,QACEqJ,UAAW,eACbR,EAAAA,WAAgB7I,cACd,QACEqJ,UAAW,0BACb,KAEFR,EAAAA,WAAgB7I,cACd,QACEqJ,UAAW,+CACb,SAOVxZ,IAAK,cACLG,MAAO,WACL,GAAIpD,KAAK0C,MAAMy5B,KAAKE,OAAQ,CAE1B,GAAIC,GAAUz3B,EAAAA,WAAgBC,IAAI,kBAAoB9E,KAAK0C,MAAMy5B,KAAKvP,KAAO,GAC7E,OAAO3Q,GAAAA,WAAgB7I,cACrBsd,EAAaI,MACXC,GAAIuL,EAAS7f,UAAW,aAC1Bzc,KAAK0C,MAAMy5B,KAAK36B,MAKhB,MAAOya,GAAAA,WAAgB7I,cACrB,QACEqJ,UAAW,aACbzc,KAAK0C,MAAMy5B,KAAK36B,SAMxByB,IAAK,eACLG,MAAO,WACL,MAAIpD,MAAK0C,MAAM4D,KAAK5F,MAEXub,EAAAA,WAAgB7I,cACrB,QACEqJ,UAAW,kCACbzc,KAAK0C,MAAM4D,KAAK5F,OAIT,QAIbuC,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,MACEqJ,UAAWzc,KAAK0c,gBAClBT,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,oBACbR,EAAAA,WAAgB7I,cACd,KACEtB,KAAM9R,KAAK0C,MAAM4D,KAAK6mB,cACxBlR,EAAAA,WAAgB7I,cAAcmQ,EAAAA,YAAoBjd,KAAMtG,KAAK0C,MAAM4D,KAAM6W,KAAM,SAGnFlB,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,aACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,aACbR,EAAAA,WAAgB7I,cACd,KACEtB,KAAM9R,KAAK0C,MAAM4D,KAAK6mB,aAAc1Q,UAAW,cACjDzc,KAAK0C,MAAM4D,KAAKkW,WAGpBxc,KAAKu8B,gBACLv8B,KAAKw8B,cACLx8B,KAAKy8B,gBAEPxgB,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,iBACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,cACb,IACAzc,KAAK0C,MAAMg6B,SAEbzgB,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,cACbF,QAAQ,UAGZN,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,sBACbR,EAAAA,WAAgB7I,cACd;AACEqJ,UAAW,cACbzc,KAAK0C,MAAM4D,KAAKq2B,KAAK7I,OAEvB7X,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,cACbF,QAAQ,kBAGZN,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,oBACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,cACbzc,KAAK0C,MAAM4D,KAAKs2B,OAElB3gB,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,cACbF,QAAQ,sBAQXyf,GACP/f,EAAAA,WAAgBc,WAEdgf,EAAgBn9B,EAAQm9B,cAAgB,SAAUtZ,GAGpD,QAASsZ,KAGP,MAFA55B,GAAgBnC,KAAM+7B,GAEf3gB,EAA2Bpb,KAAM+C,OAAOqZ,eAAe2f,GAAet7B,MAAMT,KAAMM,YAgD3F,MArDAgb,GAAUygB,EAAetZ,GAQzBlgB,EAAaw5B,IACX94B,IAAK,iBACLG,MAAO,WACL,GAAIsP,GAAU6Z,SAAS,0DAA2D,2DAA4DvsB,KAAK0C,MAAMm6B,MAEzJ,OAAOvgB,aAAY5J,GACjBoqB,QAAS98B,KAAK0C,MAAMm6B,MACpBE,KAAM/8B,KAAK0C,MAAMs6B,gBAChB,MAGL/5B,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,OACEqJ,UAAW,uBACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,aACbR,EAAAA,WAAgB7I,cACd,KACEqJ,UAAW,QACbzc,KAAKi9B,kBAEPhhB,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,2BACbR,EAAAA,WAAgB7I,cACd,MACEqJ,UAAW,cACbzc,KAAK0C,MAAMw6B,MAAMta,IAAI,SAAUtc,EAAM/H,GACnC,MAAO0d,GAAAA,WAAgB7I,cAAc4oB,GAAgB11B,KAAMA,EACzD61B,KAAM71B,EAAK61B,KACXO,QAASn+B,EAAI,EACb0E,IAAKqD,EAAK+W,eAUnB0e,GACP9f,EAAAA,WAAgBc,WAEd+e,EAAuBl9B,EAAQk9B,qBAAuB,SAAUhZ,GAGlE,QAASgZ,KAGP,MAFA35B,GAAgBnC,KAAM87B,GAEf1gB,EAA2Bpb,KAAM+C,OAAOqZ,eAAe0f,GAAsBr7B,MAAMT,KAAMM,YA4JlG,MAjKAgb,GAAUwgB,EAAsBhZ,GAQhCvgB,EAAau5B,IACX74B,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,OACEqJ,UAAW,uBACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,aACbR,EAAAA,WAAgB7I,cACd,KACEqJ,UAAW,6BACb9F,EAAOgX,MAAM,EAAG,GAAG/K,IAAI,SAAUrkB,GAC/B,MAAO0d,GAAAA,WAAgB7I,cACrB,QACEnQ,IAAK1E,EAAGke,UAAW,kBAAmBsL,OAASpH,MAAOhK,EAAAA,OAAW,GAAI,KAAO,OAC9E,QAINsF,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,6BACbR,EAAAA,WAAgB7I,cACd,MACEqJ,UAAW,cACb9F,EAAOgX,MAAM,EAAG,IAAI/K,IAAI,SAAUrkB,EAAGm+B,GACnC,MAAOzgB,GAAAA,WAAgB7I,cACrB,MACEnQ,IAAK1E,EAAGke,UAAW,mBACrBR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,oBACbR,EAAAA,WAAgB7I,cACd,OACA,KACA6I,EAAAA,WAAgB7I,cAAcmQ,EAAAA,YAAoBpG,KAAM,SAG5DlB,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,aACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,aACbR,EAAAA,WAAgB7I,cACd,QACEqJ,UAAW,cACbR,EAAAA,WAAgB7I,cACd,QACEqJ,UAAW,kBAAmBsL,OAASpH,MAAOhK,EAAAA,OAAW,GAAI,IAAM,OACrE,OAINsF,EAAAA,WAAgB7I,cACd,QACEqJ,UAAW,eACbR,EAAAA,WAAgB7I,cACd,QACEqJ,UAAW,0BACb,KAEFR,EAAAA,WAAgB7I,cACd,QACEqJ,UAAW,+CACb,MAGJR,EAAAA,WAAgB7I,cACd,QACEqJ,UAAW,aACbR,EAAAA,WAAgB7I,cACd,QACEqJ,UAAW,kBAAmBsL,OAASpH,MAAOhK,EAAAA,OAAW,GAAI,IAAM,OACrE,MAGJsF,EAAAA,WAAgB7I,cACd,QACEqJ,UAAW,kCACbR,EAAAA,WAAgB7I,cACd,QACEqJ,UAAW,kBAAmBsL,OAASpH,MAAOhK,EAAAA,OAAW,GAAI,IAAM,OACrE,OAINsF,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,iBACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,cACbR,EAAAA,WAAgB7I,cACd,QACEqJ,UAAW,kBAAmBsL,OAASpH,MAAO,SAChD,MAGJ1E,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,cACbF,QAAQ,UAGZN,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,sBACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,cACbR,EAAAA,WAAgB7I,cACd,QACEqJ,UAAW,kBAAmBsL,OAASpH,MAAO,SAChD,MAGJ1E,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,cACbF,QAAQ,kBAGZN,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,oBACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,cACbR,EAAAA,WAAgB7I,cACd,QACEqJ,UAAW,kBAAmBsL,OAASpH,MAAO,SAChD,MAGJ1E,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,cACbF,QAAQ,4BAarBuf,GACP7f,EAAAA,WAAgBc,WAEd8e,EAAkBj9B,EAAQi9B,gBAAkB,SAAU7N,GAGxD,QAAS6N,KAGP,MAFA15B,GAAgBnC,KAAM67B,GAEfzgB,EAA2Bpb,KAAM+C,OAAOqZ,eAAeyf,GAAiBp7B,MAAMT,KAAMM,YA6B7F,MAlCAgb,GAAUugB,EAAiB7N,GAQ3BzrB,EAAas5B,IACX54B,IAAK,kBACLG,MAAO,WACL,MAAOkZ,aAAYC,QAAQ,qEAAuEwgB,KAAQ/8B,KAAK0C,MAAMs6B,gBAAiB,MAGxI/5B,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,OACEqJ,UAAW,uBACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,aACbR,EAAAA,WAAgB7I,cACd,KACEqJ,UAAW,QACbzc,KAAKm9B,yBAQRtB,GACP5f,EAAAA,WAAgBc,WAEdb,EAAS,SAAUkhB,GAGrB,QAASlhB,GAAOxZ,GACdP,EAAgBnC,KAAMkc,EAEtB,IAAIgH,GAAS9H,EAA2Bpb,KAAM+C,OAAOqZ,eAAeF,GAAQrd,KAAKmB,KAAM0C,GAUvF,OARImC,GAAAA,WAAgBR,IAAI,SACtB6e,EAAOma,sBAAsBx4B,EAAAA,WAAgBy4B,IAAI,UAEjDpa,EAAOqa,2BAGTra,EAAOsa,OAAS,KAChBta,EAAOua,eACAva,EAkFT,MAjGA5H,GAAUY,EAAQkhB,GAkBlB76B,EAAa2Z,IACXjZ,IAAK,wBACLG,MAAO,SAA+Byc,GACpC7f,KAAKmQ,OACHyd,UAAU,EAEVoP,cAAend,EAAK6d,eACpBb,MAAOhd,EAAKgd,OAGd72B,EAAAA,WAAgB2F,UAAU,EAAGe,EAAO+hB,WAAW5O,EAAK6O,aAGtDzrB,IAAK,2BACLG,MAAO,WACLpD,KAAKmQ,OACHyd,UAAU,MAId3qB,IAAK,eACLG,MAAO,WACL,GAAI6qB,GAASjuB,KAET29B,EAAa,QAASA,KACxBh5B,EAAAA,WAAeG,IAAID,EAAAA,WAAgBC,IAAI,cAAgB84B,KAAM,WAAYhe,KAAK,SAAUC,GACtFoO,EAAOtV,UACLiV,UAAU,EAEVoP,cAAend,EAAK6d,eACpBb,MAAOhd,EAAKgd,QAGd72B,EAAAA,WAAgB2F,UAAU,EAAGe,EAAO+hB,WAAW5O,EAAK6O,UAEpDT,EAAOuP,OAASh5B,OAAO/E,WAAWk+B,EAAY,OAIlDA,QAGF16B,IAAK,oBACLG,MAAO,WACL0G,EAAAA,WAAoBukB,KAClB3tB,MAAOV,KAAK0C,MAAMm7B,MAAM3U,MAAM1nB,KAC9B8sB,OAAQ/R,QAAQ,cAIpBtZ,IAAK,uBACLG,MAAO,WACDpD,KAAKw9B,QACPh5B,OAAO5E,aAAaI,KAAKw9B,WAI7Bv6B,IAAK,SACLG,MAAO,WACL,MAAIpD,MAAKmQ,MAAMyd,SACT5tB,KAAKmQ,MAAM0sB,MAAQ,EAEd5gB,EAAAA,WAAgB7I,cAAc2oB,GAAiBmB,MAAOl9B,KAAK0C,MAAMw6B,MACtEF,cAAeh9B,KAAKmQ,MAAM6sB,cAC1BH,MAAO78B,KAAKmQ,MAAM0sB,QAIX5gB,EAAAA,WAAgB7I,cAAcyoB,GAAmBmB,cAAeh9B,KAAKmQ,MAAM6sB,gBAK7E/gB,EAAAA,WAAgB7I,cAAc0oB,EAAsB,UAM5D5f,GACPD,EAAAA,WAAgBc,UAElBne,GAAAA,WAAkBsd,IAEfkH,cAAc,GAAGqC,uBAAuB,GAAGhE,sBAAsB,GAAGoN,4BAA4B,GAAGnJ,uBAAuB,IAAIoJ,qBAAqB,IAAInN,YAAY,GAAGmc,iBAAiB,GAAG9gB,MAAQ,QAAQkU,eAAe,iBAAiB6M,IAAI,SAASz/B,EAAQU,EAAOJ,GACzQ,YAuBA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS8Y,GAA2B7W,EAAM1F,GAAQ,IAAK0F,EAAQ,KAAM,IAAI8W,gBAAe,4DAAgE,QAAOxc,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B0F,EAAP1F,EAElO,QAASyc,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIlZ,WAAU,iEAAoEkZ,GAAeD,GAAS/a,UAAYuC,OAAO0Y,OAAOD,GAAcA,EAAWhb,WAAakb,aAAetY,MAAOmY,EAAU3Y,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe2Y,IAAYzY,OAAO4Y,eAAiB5Y,OAAO4Y,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GA3Bje,GAAIjZ,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAQ4xB,WAAa5xB,EAAQo/B,QAAU16B,MAEvC,IAAI0Y,GAAS1d,EAAQ,SAEjB2d,EAAUla,EAAuBia,GAEjC0U,EAAepyB,EAAQ,gBAEvBqyB,EAAMryB,EAAQ,SAEdsyB,EAAO7uB,EAAuB4uB,GAE9B5rB,EAASzG,EAAQ,eAgBjB2/B,GAdUl8B,EAAuBgD,GAcvB,SAAiBisB,EAAS4M,GACtC,GAAIxgB,GAAM4T,CAMV,OAJE5T,IADqB,SAAnBwgB,EAAKt0B,UACAs0B,EAAKhR,KAELgR,EAAKt0B,UAEP8T,EAAM,MAGX8gB,EAAW,SAAkBlN,EAASmN,GACxC,MAAOA,GAAMvb,IAAI,SAAUgb,GACzB,GAAIxgB,GAAM6gB,EAAQjN,EAAS4M,EAC3B,OAAO3hB,GAAAA,WAAgB7I,cACrBwd,EAAAA,YACE3e,KAAMmL,EACNna,IAAKma,GACPnB,EAAAA,WAAgB7I,cACdsd,EAAaI,MACXC,GAAI3T,GACNwgB,EAAKp8B,SAOC5C,GAAQo/B,QAAU,SAAU7hB,GAGxC,QAAS6hB,KAGP,MAFA77B,GAAgBnC,KAAMg+B,GAEf5iB,EAA2Bpb,KAAM+C,OAAOqZ,eAAe4hB,GAASv9B,MAAMT,KAAMM,YAgBrF,MArBAgb,GAAU0iB,EAAS7hB,GAQnB5Z,EAAay7B,IACX/6B,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,MACEqJ,UAAW,iBACbyhB,EAASl+B,KAAK0C,MAAMsuB,QAAShxB,KAAK0C,MAAMy7B,YAMvCH,GACP/hB,EAAAA,WAAgBc,WAEDne,EAAQ4xB,WAAa,SAAU/N,GAG9C,QAAS+N,KAGP,MAFAruB,GAAgBnC,KAAMwwB,GAEfpV,EAA2Bpb,KAAM+C,OAAOqZ,eAAeoU,GAAY/vB,MAAMT,KAAMM,YAgBxF,MArBAgb,GAAUkV,EAAY/N,GAQtBlgB,EAAaiuB,IACXvtB,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,MACEqJ,UAAW,gBAAiB2I,KAAM,QACpC8Y,EAASl+B,KAAK0C,MAAMsuB,QAAShxB,KAAK0C,MAAMy7B,YAMvC3N,GACPvU,EAAAA,WAAgBc,aAEfqG,cAAc,GAAG6N,QAAQ,GAAGjU,MAAQ,QAAQkU,eAAe,iBAAiBkN,IAAI,SAAS9/B,EAAQU,EAAOJ,GAC3G,YAgBA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS8Y,GAA2B7W,EAAM1F,GAAQ,IAAK0F,EAAQ,KAAM,IAAI8W,gBAAe,4DAAgE,QAAOxc,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B0F,EAAP1F,EAElO,QAASyc,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIlZ,WAAU,iEAAoEkZ,GAAeD,GAAS/a,UAAYuC,OAAO0Y,OAAOD,GAAcA,EAAWhb,WAAakb,aAAetY,MAAOmY,EAAU3Y,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe2Y,IAAYzY,OAAO4Y,eAAiB5Y,OAAO4Y,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GApBje,GAAIjZ,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,GAGT,IAAI4Y,GAAS1d,EAAQ,SAEjB2d,EAAUla,EAAuBia,GAEjChS,EAAa1L,EAAQ,6BAErBwL,EAAc/H,EAAuBiI,GAUrCkS,EAAS,SAAUC,GAGrB,QAASD,KAGP,MAFA/Z,GAAgBnC,KAAMkc,GAEfd,EAA2Bpb,KAAM+C,OAAOqZ,eAAeF,GAAQzb,MAAMT,KAAMM,YA4BpF,MAjCAgb,GAAUY,EAAQC,GAQlB5Z,EAAa2Z,IACXjZ,IAAK,oBACLG,MAAO,WACL0G,EAAAA,WAAoBukB,KAClB3tB,MAAOV,KAAK0C,MAAMm7B,MAAM1B,KAAK36B,KAC7B8sB,OAAQ/R,QAAQ,cAIpBtZ,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,MACA,KACA6I,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,aACb,6CAODP,GACPD,EAAAA,WAAgBc,UAElBne,GAAAA,WAAkBsd,IAEf2S,4BAA4B,GAAG7R,MAAQ,UAAUqhB,IAAI,SAAS//B,EAAQU,EAAOJ,GAChF,YA8BA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS8Y,GAA2B7W,EAAM1F,GAAQ,IAAK0F,EAAQ,KAAM,IAAI8W,gBAAe,4DAAgE,QAAOxc,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B0F,EAAP1F,EAElO,QAASyc,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIlZ,WAAU,iEAAoEkZ,GAAeD,GAAS/a,UAAYuC,OAAO0Y,OAAOD,GAAcA,EAAWhb,WAAakb,aAAetY,MAAOmY,EAAU3Y,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe2Y,IAAYzY,OAAO4Y,eAAiB5Y,OAAO4Y,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GA8Gje,QAAS/V,GAAO2rB,GACd,OACEC,KAAQD,EAAMC,KAAKA,KACnB/qB,KAAQ8qB,EAAMvV,KAAKvV,KACnB42B,MAAS9L,EAAM8L,OAInB,QAAS1zB,KACP,GAAIA,KAyBJ,OAvBA3E,GAAAA,WAAgBC,IAAI,eAAeX,QAAQ,SAAUP,GAC5B,SAAnBA,EAAK0F,UACPE,EAAMjJ,MACJ0R,KAAMpN,EAAAA,WAAgBC,IAAI,kBAAoBlB,EAAKgpB,KAAO,IAC1DtjB,WAAY,EAAGhE,EAAYC,SAASE,GAAQ64B,EAAAA,YAC5CnC,MACE36B,KAAMoC,EAAKpC,KACXorB,KAAMhpB,EAAKgpB,KACXwP,UAAWx4B,EAAKw4B,UAChBmC,YAAa36B,EAAK26B,eAGM,mBAAnB36B,EAAK0F,WACdE,EAAMjJ,MACJ0R,KAAMpN,EAAAA,WAAgBC,IAAI,kBAAoBlB,EAAK0F,UAAY,IAC/DA,WAAY,EAAGhE,EAAYC,SAASE,GAAQ+4B,EAAAA,YAC5CtV,OACE1nB,KAAMoC,EAAKpC,UAMZgI,EAlLT,GAAIjH,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAQ6G,OAASA,EACjB7G,EAAQ4K,MAAQA,CAEhB,IAAIwS,GAAS1d,EAAQ,SAEjB2d,EAAUla,EAAuBia,GAEjC1W,EAAchH,EAAQ,eAEtBozB,EAAQpzB,EAAQ,UAEhBmgC,EAAiBngC,EAAQ,oBAEzBkgC,EAAkBz8B,EAAuB08B,GAEzCC,EAAQpgC,EAAQ,UAEhBggC,EAASv8B,EAAuB28B,GAEhC35B,EAASzG,EAAQ,eAEjBuG,EAAU9C,EAAuBgD,GAUjCmX,EAAS,SAAUC,GAGrB,QAASD,GAAOxZ,GACdP,EAAgBnC,KAAMkc,EAEtB,IAAIlY,GAAQoX,EAA2Bpb,KAAM+C,OAAOqZ,eAAeF,GAAQrd,KAAKmB,KAAM0C,GAiBtF,OAfAsB,GAAM8tB,UAAY,WACZ9tB,EAAMmM,MAAM4hB,SACd/tB,EAAM2U,UACJoZ,UAAU,IAGZ/tB,EAAM2U,UACJoZ,UAAU,KAKhB/tB,EAAMmM,OACJ4hB,UAAU,GAEL/tB,EAiFT,MAvGAsX,GAAUY,EAAQC,GA2BlB5Z,EAAa2Z,IACXjZ,IAAK,wBAILG,MAAO,WACL,MAAIpD,MAAKmQ,MAAM4hB,SACN,gCAEA,8BAIX9uB,IAAK,yBACLG,MAAO,WACL,MAAIpD,MAAKmQ,MAAM4hB,SACN,mBAEA,iBAIX9uB,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,OACEqJ,UAAW,yBACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,sBACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,aACbR,EAAAA,WAAgB7I,cACd,MACEqJ,UAAW,aACbF,QAAQ,UAEVN,EAAAA,WAAgB7I,cACd,UACEqJ,UAAW,mEACXG,KAAM,SACNC,QAAS7c,KAAK8xB,UACdE,gBAAiB,OACjBC,gBAAiBjyB,KAAKmQ,MAAM4hB,SAAW,OAAS,SAClD9V,EAAAA,WAAgB7I,cACd,KACEqJ,UAAW,iBACb,UAINR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,iCACbR,EAAAA,WAAgB7I,cACd,OACEqJ,UAAW,aACbR,EAAAA,WAAgB7I,cAAcse,EAAMsM,SAAWG,MAAOt5B,EAAAA,WAAgBC,IAAI,eACxEksB,QAASnsB,EAAAA,WAAgBC,IAAI,uBAIrCmX,EAAAA,WAAgB7I,cACd,OACEqJ,UAAWzc,KAAKkyB,0BAClBjW,EAAAA,WAAgB7I,cAAcse,EAAMlB,YAAc2N,MAAOt5B,EAAAA,WAAgBC,IAAI,eAC3EksB,QAASnsB,EAAAA,WAAgBC,IAAI,qBAEjC9E,KAAK0C,MAAMgc,cAMVxC,GACPD,EAAAA,WAAgBc,UAElBne,GAAAA,WAAkBsd,IAsCfkH,cAAc,GAAGub,mBAAmB,GAAGtM,SAAS,GAAGuM,SAAS,GAAG5hB,MAAQ,QAAQlX,cAAc,gBAAgB+4B,IAAI,SAASvgC,EAAQU,EAAOJ,GAC5I,YAYA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAEhH,QAAS8Y,GAA2B7W,EAAM1F,GAAQ,IAAK0F,EAAQ,KAAM,IAAI8W,gBAAe,4DAAgE,QAAOxc,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B0F,EAAP1F,EAElO,QAASyc,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIlZ,WAAU,iEAAoEkZ,GAAeD,GAAS/a,UAAYuC,OAAO0Y,OAAOD,GAAcA,EAAWhb,WAAakb,aAAetY,MAAOmY,EAAU3Y,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe2Y,IAAYzY,OAAO4Y,eAAiB5Y,OAAO4Y,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GAhBje,GAAIjZ,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,GAGT,IAAI4Y,GAAS1d,EAAQ,SAEjB2d,EAAUla,EAAuBia,GAUjCE,EAAS,SAAUC,GAGrB,QAASD,KACP,GAAIgG,GAEAC,EAAOne,EAAOoe,CAElBjgB,GAAgBnC,KAAMkc,EAEtB,KAAK,GAAImG,GAAO/hB,UAAUxB,OAAQsB,EAAOC,MAAMgiB,GAAOC,EAAO,EAAUD,EAAPC,EAAaA,IAC3EliB,EAAKkiB,GAAQhiB,UAAUgiB,EAGzB,OAAeH,GAASne,EAAQoX,EAA2Bpb,MAAOkiB,EAAwBnf,OAAOqZ,eAAeF,IAASrd,KAAK4B,MAAMyhB,GAAwBliB,MAAMX,OAAOe,KAAiB4D,EAAM86B,OAAS,WACvM96B,EAAMtB,MAAMulB,UACVxlB,QACEW,OAAQY,EAAMtB,MAAMU,UAHnBgf,EAMJD,EAAQ/G,EAA2BpX,EAAOoe,GA2D/C,MA9EA9G,GAAUY,EAAQC,GAsBlB5Z,EAAa2Z,IACXjZ,IAAK,eACLG,MAAO,WACL,MAAIpD,MAAK0C,MAAMU,MACN,+BAEA,mCAIXH,IAAK,UACLG,MAAO,WACL,MAAIpD,MAAK0C,MAAMU,MACNpD,KAAK0C,MAAMqtB,QAAU,YAErB/vB,KAAK0C,MAAMstB,SAAW,6BAIjC/sB,IAAK,WACLG,MAAO,WACL,MAAIpD,MAAK0C,MAAMU,MACNpD,KAAK0C,MAAMutB,SAAW1T,QAAQ,OAE9Bvc,KAAK0C,MAAMwtB,UAAY3T,QAAQ,SAO1CtZ,IAAK,SAILG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cACrB,UACEwJ,KAAM,SACNC,QAAS7c,KAAK8+B,OACdriB,UAAWzc,KAAK0c,eAChBW,GAAIrd,KAAK0C,MAAM2a,IAAM,KACrBkY,mBAAoBv1B,KAAK0C,MAAM,qBAAuB,KACtD8b,SAAUxe,KAAK0C,MAAM8b,WAAY,GACnCvC,EAAAA,WAAgB7I,cACd,QACEqJ,UAAW,iBACbzc,KAAKm4B,WAEPn4B,KAAKo4B,gBAMJlc,GACPD,EAAAA,WAAgBc,UAElBne,GAAAA,WAAkBsd,IAEfc,MAAQ,UAAU+hB,IAAI,SAASzgC,EAAQU,EAAOJ,IACjD,SAAWkD,GACX,YAaA,SAASC,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAbhH,GAAIC,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAQyE,OAASC,MAEjB,IAAIC,GAAejF,EAAQ,wBAEvBkF,EAAgBzB,EAAuBwB,GAMvCF,EAASzE,EAAQyE,OAAS,WAC5B,QAASA,KACPlB,EAAgBnC,KAAMqD,GAEtBrD,KAAKyD,iBACLzD,KAAK0D,YAyDP,MAtDAnB,GAAac,IACXJ,IAAK,iBACLG,MAAO,SAAwBO,GAC7B3D,KAAKyD,cAAclD,MACjB0C,IAAKU,EAAYnC,KAEjBoC,KAAMD,EAAYA,YAElBE,MAAOF,EAAYE,MACnBC,OAAQH,EAAYG,YAIxBb,IAAK,OACLG,MAAO,SAAcW,GACnB,GAAIC,GAAQhE,IAEZA,MAAK0D,SAAWK,CAEhB,IAAIE,GAAY,GAAIT,GAAAA,WAAsBxD,KAAKyD,eAAeS,eAC9DD,GAAUE,QAAQ,SAAUR,GAC1BA,EAAYK,QAOhBf,IAAK,MACLG,MAAO,SAAaH,GAClB,QAASjD,KAAK0D,SAAST,MAGzBA,IAAK,MACLG,MAAO,SAAaH,EAAKmB,GACvB,MAAIpE,MAAKqE,IAAIpB,GACJjD,KAAK0D,SAAST,GAEdmB,GAAYd,UAIvBL,IAAK,MACLG,MAAO,SAAaH,GAClB,GAAIjD,KAAKqE,IAAIpB,GAAM,CACjB,GAAIG,GAAQpD,KAAK0D,SAAST,EAE1B,OADAjD,MAAK0D,SAAST,GAAO,KACdG,OAONC,KAKLiB,EAAS,GAAIjB,EAGjBvB,GAAOwC,OAASA,EAGhB1F,EAAAA,WAAkB0F,IAEfzF,KAAKmB,KAAuB,mBAAX8B,QAAyBA,OAAyB,mBAATyC,MAAuBA,KAAyB,mBAAXC,QAAyBA,aACxHw6B,uBAAuB,MAAMC,IAAI,SAAS3gC,EAAQU,EAAOJ,GAC5D,YAsBA,SAASkxB,GAAUoP,GACjB,OACEtiB,KAAMuiB,EACND,MAAOA,GAIX,QAASpJ,GAAOxvB,GACd,OACEsW,KAAMwiB,EACN94B,KAAMA,GAIV,QAAS+4B,KACP,GAAIC,GAAOh/B,UAAUxB,QAAU,GAAsBwE,SAAjBhD,UAAU,IAAmB,EAAQA,UAAU,EAEnF,QACEsc,KAAM2iB,EACND,KAAMA,GAIV,QAASzjB,KACP,GAAI1L,GAAQ7P,UAAUxB,QAAU,GAAsBwE,SAAjBhD,UAAU,GAAmBkG,EAAelG,UAAU,GACvFiU,EAASjU,UAAUxB,QAAU,GAAsBwE,SAAjBhD,UAAU,GAAmB,KAAOA,UAAU,EAEpF,QAAQiU,EAAOqI,MACb,IAAKuiB,GACH,GAAI1V,GAAW1mB,OAAOoD,UAAWgK,EAEjC,OADAsZ,GAASnjB,KAAOvD,OAAOoD,UAAWgK,EAAM7J,KAAMiO,EAAO2qB,OAC9CzV,CAET,KAAK2V,GACH,MAAOr8B,QAAOoD,UAAWgK,GACvB2L,SAAUvH,EAAOjO,MAGrB,KAAKi5B,GACH,MAAOx8B,QAAOoD,UAAWgK,GACvB/J,iBAAiB,EACjBC,aAAa,EACb0V,WAAYxH,EAAO+qB,MAGvB,KAAK5yB,GAAO8yB,cACV,GAAIrvB,EAAM/J,iBAAmB+J,EAAM7J,KAAK+W,KAAO9I,EAAOkrB,OAAQ,CAC5D,GAAIC,GAAY38B,OAAOoD,UAAWgK,EAIlC,OAHAuvB,GAAUp5B,KAAOvD,OAAOoD,UAAWgK,EAAM7J,MACvCgX,YAAe/I,EAAO2Q,aAEjBwa,EAET,MAAOvvB,EAET,KAAKzD,GAAOizB,gBACV,GAAIxvB,EAAM/J,iBAAmB+J,EAAM7J,KAAK+W,KAAO9I,EAAOkrB,OAAQ,CAC5D,GAAIG,GAAa78B,OAAOoD,UAAWgK,EAKnC,OAJAyvB,GAAWt5B,KAAOvD,OAAOoD,UAAWgK,EAAM7J,MACxCkW,SAAUjI,EAAOiI,SACjBoQ,KAAMrY,EAAOqY,OAERgT,EAET,MAAOzvB,EAET,SACE,MAAOA,IAvFbpN,OAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAQ2gC,SAAW3gC,EAAQwgC,QAAUxgC,EAAQugC,WAAavgC,EAAQ4H,aAAelD,OACjF1E,EAAQkxB,UAAYA,EACpBlxB,EAAQk3B,OAASA,EACjBl3B,EAAQygC,QAAUA,EAClBzgC,EAAAA,WAAkBid,CAElB,IAAInP,GAASpO,EAAQ,WAEjBkI,EAAe5H,EAAQ4H,cACzBsV,UAAU,EACVC,WAAW,GAGTojB,EAAavgC,EAAQugC,WAAa,aAClCC,EAAUxgC,EAAQwgC,QAAU,UAC5BG,EAAW3gC,EAAQ2gC,SAAW,aAyE/BM,UAAU,KAAKC,IAAI,SAASxhC,EAAQU,EAAOJ,GAC9C,YAiBA,SAASmhC,GAAartB,EAASkK,GAC7B,OACEA,KAAMojB,EACNttB,QAASA,EACTutB,YAAarjB,GAIjB,QAASsjB,KACP,OACEtjB,KAAMujB,GAIV,QAAStH,KACP,GAAI1oB,GAAQ7P,UAAUxB,QAAU,GAAsBwE,SAAjBhD,UAAU,GAAmBkG,EAAelG,UAAU,GACvFiU,EAASjU,UAAUxB,QAAU,GAAsBwE,SAAjBhD,UAAU,GAAmB,KAAOA,UAAU,EAEpF,OAAIiU,GAAOqI,OAASojB,GAEhBpjB,KAAMrI,EAAO0rB,YACbvtB,QAAS6B,EAAO7B,QAChBsmB,WAAW,GAEJzkB,EAAOqI,OAASujB,EAClBp9B,OAAOoD,UAAWgK,GACvB6oB,WAAW,IAGN7oB,EA5CXpN,OAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAQmhC,aAAeA,EACvBnhC,EAAQshC,aAAeA,EACvBthC,EAAAA,WAAkBi6B,CAClB,IAAIryB,GAAe5H,EAAQ4H,cACzBoW,KAAM,OACNlK,QAAS,GACTsmB,WAAW,GAGTgH,EAAgBphC,EAAQohC,cAAgB,gBACxCG,EAAgBvhC,EAAQuhC,cAAgB,qBAmCtCC,IAAI,SAAS9hC,EAAQU,EAAOJ,GAClC,YAaA,SAASgN,KACP,OACEgR,KAAMyjB,GAIV,QAAShP,KACP,GAAIlhB,GAAQ7P,UAAUxB,QAAU,GAAsBwE,SAAjBhD,UAAU,GAAmBkG,EAAelG,UAAU,GACvFiU,EAASjU,UAAUxB,QAAU,GAAsBwE,SAAjBhD,UAAU,GAAmB,KAAOA,UAAU,EAEpF,OAAIiU,GAAOqI,OAASyjB,EACXt9B,OAAOoD,UAAWgK,GACvBkhB,KAAMlhB,EAAMkhB,KAAO,IAGdlhB,EA1BXpN,OAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAQgN,OAASA,EACjBhN,EAAAA,WAAkByyB,CAClB,IAAI7qB,GAAe5H,EAAQ4H,cACzB6qB,KAAM,GAGJgP,EAAOzhC,EAAQyhC,KAAO,YAqBpBC,IAAI,SAAShiC,EAAQU,EAAOJ,GAClC,YAgBA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAKvF,QAASksB,GAAc6J,EAAQzxB,EAAMi6B,GACnC,OACE3jB,KAAM4jB,EACNzI,OAAQA,EACRzxB,KAAMA,EACNi6B,UAAWA,GAIf,QAAS9R,GAAUgS,GACjB,OACE7jB,KAAM8jB,EACND,MAAOA,GAIX,QAASjkB,KACP,GAAIrM,GAAQ7P,UAAUxB,QAAU,GAAsBwE,SAAjBhD,UAAU,MAAwBA,UAAU,GAC7EiU,EAASjU,UAAUxB,QAAU,GAAsBwE,SAAjBhD,UAAU,GAAmB,KAAOA,UAAU,EAEpF,QAAQiU,EAAOqI,MACb,IAAK4jB,GACH,GAAI/W,GAAWtZ,EAAM9C,OASrB,OARAoc,GAASkX,SACPtjB,GAAI3G,KAAKkqB,MAAM1yB,KAAK2yB,MAAQ,KAC5B3T,WAAY3Y,EAAOgsB,UACnBnT,oBAAqB7Y,EAAOgsB,UAAU/jB,SACtCkR,YAAa,EAAG7kB,EAAAA,cAChB4kB,aAAclZ,EAAOwjB,OAAOvb,SAC5BgR,aAAcjZ,EAAOjO,KAAKkW,WAErBiN,CAET,KAAKiX,GACH,MAAOnsB,GAAOksB,MAAM7d,IAAI,SAAUhf,GAChC,MAAOb,QAAOoD,UAAWvC,GACvB8pB,YAAa,EAAG7kB,EAAAA,YAAkBjF,EAAK8pB,eAI7C,KAAKhhB,GAAO8yB,cACV,MAAOrvB,GAAMyS,IAAI,SAAUhf,GAQzB,MAPAA,GAAOb,OAAOoD,UAAWvC,GACrBA,EAAKspB,YAActpB,EAAKspB,WAAW7P,KAAO9I,EAAOkrB,SACnD77B,EAAKspB,WAAanqB,OAAOoD,UAAWvC,EAAKspB,YACvC5P,YAAe/I,EAAO2Q,cAInBniB,OAAOoD,UAAWvC,IAG7B,KAAK8I,GAAOizB,gBACV,MAAOxvB,GAAMyS,IAAI,SAAUhf,GASzB,MARAA,GAAOb,OAAOoD,UAAWvC,GACrBA,EAAKspB,YAActpB,EAAKspB,WAAW7P,KAAO9I,EAAOkrB,SACnD77B,EAAKspB,WAAanqB,OAAOoD,UAAWvC,EAAKspB,YACvC1Q,SAAYjI,EAAOiI,SACnBoQ,KAAQrY,EAAOqY,QAIZ7pB,OAAOoD,UAAWvC,IAG7B,SACE,MAAOuM,IArFbpN,OAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAQ8hC,iBAAmB9hC,EAAQ4hC,gBAAkBl9B,OACrD1E,EAAQsvB,cAAgBA,EACxBtvB,EAAQ6vB,UAAYA,EACpB7vB,EAAAA,WAAkB4d,CAElB,IAAI9P,GAASpO,EAAQ,WAEjB2K,EAAU3K,EAAQ,UAElBuK,EAAW9G,EAAuBkH,GAIlCu3B,EAAkB5hC,EAAQ4hC,gBAAkB,kBAC5CE,EAAmB9hC,EAAQ8hC,iBAAmB,qBAwE/Cb,UAAU,GAAG32B,OAAS,WAAW43B,IAAI,SAASxiC,EAAQU,EAAOJ,GAChE,YAeA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAMvF,QAASysB,GAAUgS,GACjB,OACE7jB,KAAM8jB,EACND,MAAOA,GAIX,QAAStb,GAAa7e,EAAM4e,GAC1B,OACEtI,KAAM4iB,EACNC,OAAQn5B,EAAK+W,GACb6H,WAAYA,GAIhB,QAASiJ,GAAe7nB,EAAMkW,EAAUoQ,GACtC,OACEhQ,KAAM+iB,EACNF,OAAQn5B,EAAK+W,GACbb,SAAUA,EACVoQ,KAAMA,GAIV,QAAStmB,KACP,GAAI6J,GAAQ7P,UAAUxB,QAAU,GAAsBwE,SAAjBhD,UAAU,MAAwBA,UAAU,GAC7EiU,EAASjU,UAAUxB,QAAU,GAAsBwE,SAAjBhD,UAAU,GAAmB,KAAOA,UAAU,EAEpF,QAAQiU,EAAOqI,MACb,IAAK8jB,GACH,MAAOnsB,GAAOksB,MAAM7d,IAAI,SAAUhf,GAChC,GAAIsc,GAAStc,EAAKsc,QAAU,IAQ5B,OAPIA,KACFA,EAASnd,OAAOoD,UAAW+Z,GACzBwb,WAAYxb,EAAOwb,YAAc,EAAG7yB,EAAAA,YAAkBqX,EAAOwb,YAAc,KAC3EF,aAActb,EAAOsb,cAAgB,EAAG3yB,EAAAA,YAAkBqX,EAAOsb,cAAgB,QAI9Ez4B,OAAOoD,UAAWvC,GACvBsc,OAAQA,KAId,SACE,MAAO/P,IAhEbpN,OAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAQ+gC,gBAAkB/gC,EAAQ4gC,cAAgB5gC,EAAQ8hC,iBAAmBp9B,OAC7E1E,EAAQ6vB,UAAYA,EACpB7vB,EAAQumB,aAAeA,EACvBvmB,EAAQuvB,eAAiBA,EACzBvvB,EAAAA,WAAkB0H,CAElB,IAAI2C,GAAU3K,EAAQ,UAElBuK,EAAW9G,EAAuBkH,GAIlCy3B,EAAmB9hC,EAAQ8hC,iBAAmB,mBAC9ClB,EAAgB5gC,EAAQ4gC,cAAgB,gBACxCG,EAAkB/gC,EAAQ+gC,gBAAkB,oBAmD7Cz2B,OAAS,WAAW63B,IAAI,SAASziC,EAAQU,EAAOJ,GACnD,YAQA,SAASuD,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCANhH,GAAIC,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,GAKT,IAAI49B,GAAOpiC,EAAQoiC,KAAO,WACxB,QAASA,KACP7+B,EAAgBnC,KAAMghC,GAEtBhhC,KAAKihC,YAAc,KACnBjhC,KAAKkhC,WAAa,KAwIpB,MArIA3+B,GAAay+B,IACX/9B,IAAK,OACLG,MAAO,SAAc+9B,GACnBnhC,KAAKihC,YAAcE,EACnBnhC,KAAKkhC,WAAalhC,KAAKy4B,kBAGzBx1B,IAAK,eACLG,MAAO,WACL,GAAkD,KAA9CkF,SAAS84B,OAAOpuB,QAAQhT,KAAKihC,aAAqB,CACpD,GAAII,GAAc,GAAIC,QAAOthC,KAAKihC,YAAc,YAC5CG,EAAS94B,SAAS84B,OAAOpnB,MAAMqnB,GAAa,EAChD,OAAOD,GAASA,EAAOrvB,MAAM,KAAK,GAAK,KAEvC,MAAO,SAIX9O,IAAK,UACLG,MAAO,SAAiBm+B,EAAQnkB,EAAKyC,GACnC,GAAItb,GAAOvE,IACX,OAAO,IAAIuuB,SAAQ,SAAUiT,EAASC,GACpC,GAAIC,IACFtkB,IAAKA,EACLmkB,OAAQA,EACRI,SACEC,cAAer9B,EAAK28B,YAGtBrhB,KAAMA,EAAOvP,KAAKC,UAAUsP,GAAQ,KACpCgiB,YAAa,kCACbC,SAAU,OAEV/hB,QAAS,SAAiBF,GACxB2hB,EAAQ3hB,IAGVrP,MAAO,SAAeuxB,GACpB,GAAI9hB,GAAY8hB,EAAMC,gBAEtB/hB,GAAUC,OAAS6hB,EAAM7hB,OAEA,IAArBD,EAAUC,SACZD,EAAUD,OAASzD,QAAQ,sCAG7B0D,EAAUgiB,WAAaF,EAAME,WAE7BR,EAAOxhB,IAIXlX,GAAEm5B,KAAKR,QAIXz+B,IAAK,MACLG,MAAO,SAAaga,EAAK+kB,GAIvB,MAHIA,KACF/kB,GAAO,IAAMrU,EAAEq5B,MAAMD,IAEhBniC,KAAKqiC,QAAQ,MAAOjlB,MAG7Bna,IAAK,OACLG,MAAO,SAAcga,EAAKyC,GACxB,MAAO7f,MAAKqiC,QAAQ,OAAQjlB,EAAKyC,MAGnC5c,IAAK,QACLG,MAAO,SAAega,EAAKyC,GACzB,MAAO7f,MAAKqiC,QAAQ,QAASjlB,EAAKyC,MAGpC5c,IAAK,MACLG,MAAO,SAAaga,EAAKyC,GACvB,MAAO7f,MAAKqiC,QAAQ,MAAOjlB,EAAKyC,MAGlC5c,IAAK,SACLG,MAAO,SAAiBga,GACtB,MAAOpd,MAAKqiC,QAAQ,SAAUjlB,MAGhCna,IAAK,SACLG,MAAO,SAAgBga,EAAKyC,EAAM+G,GAChC,GAAIriB,GAAOvE,IACX,OAAO,IAAIuuB,SAAQ,SAAUiT,EAASC,GACpC,GAAIC,IACFtkB,IAAKA,EACLmkB,OAAQ,OACRI,SACEC,cAAer9B,EAAK28B,YAGtBrhB,KAAMA,EACNgiB,aAAa,EACbS,aAAa,EAEbZ,IAAK,QAASA,KACZ,GAAIA,GAAM,GAAIl9B,QAAO+9B,cAMrB,OALAb,GAAItiB,OAAO/N,iBAAiB,WAAY,SAAUmxB,GAC5CA,EAAIC,kBACN7b,EAASlQ,KAAKgsB,MAAMF,EAAIG,OAASH,EAAII,MAAQ,QAE9C,GACIlB,GAGT3hB,QAAS,SAAiBkD,GACxBue,EAAQve,IAGVzS,MAAO,SAAeuxB,GACpB,GAAI9hB,GAAY8hB,EAAMC,gBAEtB/hB,GAAUC,OAAS6hB,EAAM7hB,OAEA,IAArBD,EAAUC,SACZD,EAAUD,OAASzD,QAAQ,sCAG7B0D,EAAUgiB,WAAaF,EAAME,WAE7BR,EAAOxhB,IAIXlX,GAAEm5B,KAAKR,SAKNV,IAGTpiC,GAAAA,WAAkB,GAAIoiC,QAEhB6B,IAAI,SAASvkC,EAAQU,EAAOJ,GAClC,YAWA,SAASuD,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAThH,GAAIC,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAQkkC,KAAOx/B,MAEf,IAAIiD,GAAQjI,EAAQ,oBAMhBwkC,EAAOlkC,EAAQkkC,KAAO,WACxB,QAASA,KACP3gC,EAAgBnC,KAAM8iC,GA6ExB,MA1EAvgC,GAAaugC,IACX7/B,IAAK,OACLG,MAAO,SAAcguB,EAAO2R,EAAOC,GACjChjC,KAAKyG,OAAS2qB,EACdpxB,KAAKijC,OAASF,EACd/iC,KAAK+G,OAASi8B,EAGdhjC,KAAKkjC,cAGLljC,KAAKmjC,gBAGPlgC,IAAK,cACLG,MAAO,WACL,GAAI+M,GAAQnQ,KAAKyG,OAAO28B,WAAWvnB,IAC/B1L,GAAM/J,gBACRpG,KAAKijC,OAAO5U,IAAI,QACdjoB,iBAAiB,EACjBoW,SAAUrM,EAAM7J,KAAKkW,WAGvBxc,KAAKijC,OAAO5U,IAAI,QACdjoB,iBAAiB,OAKvBnD,IAAK,aACLG,MAAO,WACL,GAAIY,GAAQhE,IAEZA,MAAKijC,OAAOI,MAAM,OAAQ,SAAU5Z,GAC9BA,EAASrjB,gBACXpC,EAAMyC,OAAOkF,UAAU,EAAGpF,EAAMuvB,SAC9BtZ,SAAUiN,EAASjN,YAGrBxY,EAAMyC,OAAOkF,UAAU,EAAGpF,EAAM84B,cAGpCr/B,KAAK+G,OAAOuuB,UAGdryB,IAAK,SACLG,MAAO,SAAgBkD,GACrBtG,KAAKyG,OAAOkF,UAAU,EAAGpF,EAAMuvB,QAAQxvB,IACvCtG,KAAKijC,OAAO5U,IAAI,QACdjoB,iBAAiB,EACjBoW,SAAUlW,EAAKkW,WAEjBxc,KAAK+G,OAAOuuB,UAGdryB,IAAK,UACLG,MAAO,WACLpD,KAAKyG,OAAOkF,UAAU,EAAGpF,EAAM84B,YAC/Br/B,KAAKijC,OAAO5U,IAAI,QACdjoB,iBAAiB,IAEnBpG,KAAK+G,OAAOuuB,UAGdryB,IAAK,cACLG,MAAO,WACLpD,KAAKyG,OAAOkF,UAAU,EAAGpF,EAAM84B,UAAS,IACxCr/B,KAAKijC,OAAO5U,IAAI,QACdjoB,iBAAiB,IAEnBpG,KAAK+G,OAAOuuB,WAITwN,IAGTlkC,GAAAA,WAAkB,GAAIkkC,KAEnBQ,mBAAmB,KAAKC,IAAI,SAASjlC,EAAQU,EAAOJ,GACvD,YAkBA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASoZ,GAA2B7W,EAAM1F,GAAQ,IAAK0F,EAAQ,KAAM,IAAI8W,gBAAe,4DAAgE,QAAOxc,GAAyB,gBAATA,IAAqC,kBAATA,GAA8B0F,EAAP1F,EAElO,QAASyc,GAAUC,EAAUC,GAAc,GAA0B,kBAAfA,IAA4C,OAAfA,EAAuB,KAAM,IAAIlZ,WAAU,iEAAoEkZ,GAAeD,GAAS/a,UAAYuC,OAAO0Y,OAAOD,GAAcA,EAAWhb,WAAakb,aAAetY,MAAOmY,EAAU3Y,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe2Y,IAAYzY,OAAO4Y,eAAiB5Y,OAAO4Y,eAAeJ,EAAUC,GAAcD,EAASK,UAAYJ,GAEje,QAASrZ,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAtBhH,GAAIC,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAGhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAQ4kC,QAAU5kC,EAAQ6kC,UAAY7kC,EAAQ8kC,mBAAqB9kC,EAAQ+kC,UAAY/kC,EAAQglC,UAAYhlC,EAAQilC,YAAcvgC,MAEjI,IAAI0Y,GAAS1d,EAAQ,SAEjB2d,EAAUla,EAAuBia,GAEjC0P,EAAaptB,EAAQ,4BAErBqtB,EAAc5pB,EAAuB2pB,GAYrCmY,EAAcjlC,EAAQilC,YAAc,WACtC,QAASA,KACP1hC,EAAgBnC,KAAM6jC,GAaxB,MAVAthC,GAAashC,IACX5gC,IAAK,OACLG,MAAO,SAAcW,EAASm+B,EAAM4B,EAASjL,GAC3C74B,KAAK0D,SAAWK,EAChB/D,KAAKgF,MAAQk9B,EACbliC,KAAK6H,SAAWi8B,EAChB9jC,KAAK8H,UAAY+wB,MAIdgL,KAGLD,EAAYhlC,EAAQglC,UAAY,SAAUG,GAG5C,QAASH,KAGP,MAFAzhC,GAAgBnC,KAAM4jC,GAEfxoB,EAA2Bpb,KAAM+C,OAAOqZ,eAAewnB,GAAWnjC,MAAMT,KAAMM,YAuBvF,MA5BAgb,GAAUsoB,EAAWG,GAQrBxhC,EAAaqhC,IACX3gC,IAAK,OACLG,MAAO,WACL,MAAO,IAAImrB,SAAQ,SAAUiT,GAE3BA,SAIJv+B,IAAK,YACLG,MAAO,WACL,MAAO,SAGTH,IAAK,YACLG,MAAO,WACL,MAAO,UAIJwgC,GACPC,GAEEF,EAAY/kC,EAAQ+kC,UAAY,SAAUK,GAG5C,QAASL,KAGP,MAFAxhC,GAAgBnC,KAAM2jC,GAEfvoB,EAA2Bpb,KAAM+C,OAAOqZ,eAAeunB,GAAWljC,MAAMT,KAAMM,YA+CvF,MApDAgb,GAAUqoB,EAAWK,GAQrBzhC,EAAaohC,IACX1gC,IAAK,OACLG,MAAO,WACL,GAAImB,GAAOvE,IACX,OAAO,IAAIuuB,SAAQ,SAAUiT,EAASC,GACpCl9B,EAAKS,MAAMF,IAAIP,EAAKb,SAASoB,IAAI,oBAAoB8a,KAAK,SAAUC,GAClEtb,EAAK0/B,SAAWpkB,EAAKokB,SACrB1/B,EAAKkkB,SAAW5I,EAAKqkB,UACrB1C,KACC,WACDj9B,EAAKuD,UAAU0I,MAAM+L,QAAQ,4BAC7BklB,WAKNx+B,IAAK,YACLG,MAAO,WACL,YAMFH,IAAK,YACLG,MAAO,SAAmB+gC,GACxB,MAAOloB,GAAAA,WAAgB7I,cACrBuY,EAAAA,YACE/C,MAAO5oB,KAAKikC,SAAUlX,MAAO,aAC7BrE,WAAYyb,EAAOzb,YAAc,WACjCG,aAAcsb,EAAOtb,cAAgB,WACrCN,WAAY4b,EAAO3O,KAAKrlB,MAAMwZ,OAAOsL,QACrCxM,SAAUzoB,KAAKyoB,UAAY,MAC7BxM,EAAAA,WAAgB7I,cAAc,SAAWwJ,KAAM,OAAQS,GAAI,aAAcZ,UAAW,eAClF8Y,mBAAoB,oBACpB/W,SAAU2lB,EAAO3O,KAAKrlB,MAAM+O,UAC5B+I,SAAUkc,EAAO3O,KAAKhM,UAAU,WAChCpmB,MAAO+gC,EAAO3O,KAAKrlB,MAAM8kB,eAO1B0O,GACPE,GAEEH,EAAqB9kC,EAAQ8kC,mBAAqB,SAAUvnB,GAG9D,QAASunB,KAGP,MAFAvhC,GAAgBnC,KAAM0jC,GAEftoB,EAA2Bpb,KAAM+C,OAAOqZ,eAAesnB,GAAoBjjC,MAAMT,KAAMM,YA6BhG,MAlCAgb,GAAUooB,EAAoBvnB,GAQ9B5Z,EAAamhC,IACXzgC,IAAK,oBACLG,MAAO,WACL,GAAI2f,GAAS/iB,IAEbokC,YAAWjN,OAAO,aAChBkN,QAAWrkC,KAAK0C,MAAM4hC,QACtB50B,SAAY,SAAkBuT,GAE5BF,EAAOrgB,MAAMnB,SACXkB,QACEW,MAAO6f,WAOjBhgB,IAAK,SACLG,MAAO,WAEL,MAAO6Y,GAAAA,WAAgB7I,cAAc,OAASiK,GAAI,kBAK/CqmB,GACPznB,EAAAA,WAAgBc,WAEd0mB,EAAY7kC,EAAQ6kC,UAAY,SAAUc,GAG5C,QAASd,KAGP,MAFAthC,GAAgBnC,KAAMyjC,GAEfroB,EAA2Bpb,KAAM+C,OAAOqZ,eAAeqnB,GAAWhjC,MAAMT,KAAMM,YA+CvF,MApDAgb,GAAUmoB,EAAWc,GAQrBhiC,EAAakhC,IACXxgC,IAAK,OACLG,MAAO,WAGL,MAFApD,MAAK6H,SAASi8B,QAAQ,2CAA2C,GAE1D,GAAIvV,SAAQ,SAAUiT,GAC3B,GAAIgD,GAAO,QAASA,KACQ,mBAAfJ,YACT5/B,OAAO/E,WAAW,WAChB+kC,KACC,KAEHhD,IAGJgD,UAIJvhC,IAAK,YACLG,MAAO,WACL,YAMFH,IAAK,YACLG,MAAO,SAAmB+gC,GACxB,MAAOloB,GAAAA,WAAgB7I,cACrBuY,EAAAA,YACE/C,MAAOrM,QAAQ,WAAYwQ,MAAO,aAClCrE,WAAYyb,EAAOzb,YAAc,WACjCG,aAAcsb,EAAOtb,cAAgB,WACrCN,WAAY4b,EAAO3O,KAAKrlB,MAAMwZ,OAAOsL,QACrCxM,SAAUlM,QAAQ,iCACpBN,EAAAA,WAAgB7I,cAAcswB,GAAsBY,QAAStkC,KAAK0D,SAASoB,IAAI,YAAY2/B,mBACzFljC,QAAS4iC,EAAO3O,KAAKhM,UAAU,kBAOhCia,GACPI,GAEEL,EAAU5kC,EAAQ4kC,QAAU,WAC9B,QAASA,KACPrhC,EAAgBnC,KAAMwjC,GA0CxB,MAvCAjhC,GAAaihC,IACXvgC,IAAK,OACLG,MAAO,SAAcW,EAASm+B,EAAM4B,EAASjL,GAC3C,OAAQ90B,EAAQe,IAAI,YAAY4/B,cAC9B,IAAK,KACH1kC,KAAK4H,SAAW,GAAIg8B,EACpB,MAEF,KAAK,KACH5jC,KAAK4H,SAAW,GAAI+7B,EACpB,MAEF,KAAK,KACH3jC,KAAK4H,SAAW,GAAI67B,GAIxBzjC,KAAK4H,SAAShD,KAAKb,EAASm+B,EAAM4B,EAASjL,MAM7C51B,IAAK,OACLG,MAAO,WACL,MAAOpD,MAAK4H,SAAS2sB,UAGvBtxB,IAAK,YACLG,MAAO,WACL,MAAOpD,MAAK4H,SAASstB,eAGvBjyB,IAAK,YACLG,MAAO,SAAmB+gC,GACxB,MAAOnkC,MAAK4H,SAAS0B,UAAU66B,OAI5BX,IAGT5kC,GAAAA,WAAkB,GAAI4kC,KAEnBmB,2BAA2B,GAAG3nB,MAAQ,UAAU4nB,IAAI,SAAStmC,EAAQU,EAAOJ,GAC/E,YAQA,SAASuD,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCANhH,GAAIC,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,GAKT,IAAIyhC,GAAUjmC,EAAQimC,QAAU,WAC9B,QAASA,KACP1iC,EAAgBnC,KAAM6kC,GA8BxB,MA3BAtiC,GAAasiC,IACX5hC,IAAK,OACLG,MAAO,SAAc0hC,GACnB9kC,KAAK+kC,WAAaD,EAClB9kC,KAAKglC,gBAGP/hC,IAAK,UACLG,MAAO,SAAiB6hC,GACtB,GAAIC,GAAS5kC,UAAUxB,QAAU,GAAsBwE,SAAjBhD,UAAU,IAAmB,EAAQA,UAAU,EAE9C,MAAnCN,KAAKglC,UAAUhyB,QAAQiyB,KACzBjlC,KAAKglC,UAAUzkC,KAAK0kC,GACpBjlC,KAAK6H,SAASo9B,EAAQC,OAI1BjiC,IAAK,WACLG,MAAO,SAAkB6hC,EAAQC,GAC/Bn8B,EAAEm5B,MACA9kB,KAAO8nB,EAA2B,GAAlBllC,KAAK+kC,YAAmBE,EACxCE,OAAO,EACPrD,SAAU,eAKT+C,IAGTjmC,GAAAA,WAAkB,GAAIimC,QAEhBO,IAAI,SAAS9mC,EAAQU,EAAOJ,GAClC,YAQA,SAASuD,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCANhH,GAAIC,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,GAKT,IAAIiiC,GAAU7gC,OAAO8gC,aAEjBC,EAAe3mC,EAAQ2mC,aAAe,WACxC,QAASA,KACPpjC,EAAgBnC,KAAMulC,GA6CxB,MA1CAhjC,GAAagjC,IACXtiC,IAAK,OACLG,MAAO,SAAcoiC,GACnB,GAAIxhC,GAAQhE,IAEZA,MAAKylC,QAAUD,EACfxlC,KAAK0lC,aAELlhC,OAAO6M,iBAAiB,UAAW,SAAUvT,GAC3C,GAAI6nC,GAAer1B,KAAKU,MAAMlT,EAAE8nC,SAChC5hC,GAAM0hC,UAAUvhC,QAAQ,SAAU0hC,GAC5BA,EAAQ5iC,MAAQnF,EAAEmF,KAAOnF,EAAEgoC,WAAahoC,EAAE8nC,UAC5CC,EAAQn2B,SAASi2B,UAMzB1iC,IAAK,MACLG,MAAO,SAAaH,EAAKG,GACvBiiC,EAAQh1B,QAAQrQ,KAAKylC,QAAUxiC,EAAKqN,KAAKC,UAAUnN,OAGrDH,IAAK,MACLG,MAAO,SAAaH,GAClB,GAAI8iC,GAAaV,EAAQt0B,QAAQ/Q,KAAKylC,QAAUxiC,EAChD,OAAI8iC,GACKz1B,KAAKU,MAAM+0B,GAEX,QAIX9iC,IAAK,QACLG,MAAO,SAAeH,EAAKyM,GACzB1P,KAAK0lC,UAAUnlC,MACb0C,IAAKjD,KAAKylC,QAAUxiC,EACpByM,SAAUA,QAKT61B,IAGT3mC,GAAAA,WAAkB,GAAI2mC,QAEhBS,IAAI,SAAS1nC,EAAQU,EAAOJ,GAClC,YAaA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAbhH,GAAIC,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAQqnC,qBAAuB3iC,MAE/B,IAAIqC,GAAkBrH,EAAQ,4BAE1B+G,EAAmBtD,EAAuB4D,GAM1CsgC,EAAuBrnC,EAAQqnC,qBAAuB,WACxD,QAASA,KACP9jC,EAAgBnC,KAAMimC,GAuCxB,MApCA1jC,GAAa0jC,IACXhjC,IAAK,OACLG,MAAO,SAAciF,GACnBrI,KAAKkmC,SAAW79B,EAChBrI,KAAKmmC,WAAa,QAGpBljC,IAAK,OACLG,MAAO,SAAckG,GACftJ,KAAKmmC,aAAe78B,EACtBtJ,KAAKs1B,QAELt1B,KAAKmmC,WAAa78B,GACjB,EAAGjE,EAAAA,YAA0BiE,EAAWtJ,KAAKkmC,SAAS7oB,IACvDtU,EAAE/I,KAAKkmC,UAAUE,SAAS,YAI9BnjC,IAAK,gBACLG,MAAO,SAAuB5B,EAAM8H;AAC9BtJ,KAAKmmC,aAAe3kC,EACtBxB,KAAKs1B,QAELt1B,KAAKmmC,WAAa3kC,GACjB,EAAG6D,EAAAA,YAA0BiE,EAAWtJ,KAAKkmC,SAAS7oB,IAAI,GAC3DtU,EAAE/I,KAAKkmC,UAAUE,SAAS,YAI9BnjC,IAAK,OACLG,MAAO,WACL2F,EAAE/I,KAAKkmC,UAAUG,YAAY,QAC7BrmC,KAAKmmC,WAAa,SAIfF,IAGTrnC,GAAAA,WAAkB,GAAIqnC,KAEnBK,2BAA2B,MAAMC,IAAI,SAASjoC,EAAQU,EAAOJ,GAChE,YAiBA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAEvF,QAASG,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAjBhH,GAAIC,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAQ4nC,MAAQljC,MAEhB,IAAIyzB,GAAYz4B,EAAQ,aAEpB04B,EAAaj1B,EAAuBg1B,GAEpCpxB,EAAkBrH,EAAQ,4BAE1B+G,EAAmBtD,EAAuB4D,GAM1C6gC,EAAQ5nC,EAAQ4nC,MAAQ,WAC1B,QAASA,KACPrkC,EAAgBnC,KAAMwmC,GA6BxB,MA1BAjkC,GAAaikC,IACXvjC,IAAK,OACLG,MAAO,SAAciF,GACnB,GAAIrE,GAAQhE,IAEZA,MAAKkmC,SAAW79B,EAEhBrI,KAAK+G,OAASgC,EAAEV,GAAS26B,OAAQ1O,MAAM,IAEvCt0B,KAAK+G,OAAO/F,GAAG,kBAAmB,WAChCg2B,EAAAA,WAAmByP,uBAAuBziC,EAAMkiC,eAIpDjjC,IAAK,OACLG,MAAO,SAAckG,IAClB,EAAGjE,EAAAA,YAA0BiE,EAAWtJ,KAAKkmC,SAAS7oB,IACvDrd,KAAK+G,OAAOi8B,MAAM,WAGpB//B,IAAK,OACLG,MAAO,WACLpD,KAAK+G,OAAOi8B,MAAM,YAIfwD,IAGT5nC,GAAAA,WAAkB,GAAI4nC,KAEnBF,2BAA2B,IAAIlP,YAAY,cAAcsP,IAAI,SAASpoC,EAAQU,EAAOJ,GACxF,YAQA,SAASuD,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCANhH,GAAIC,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,GAKT,IAAIujC,GAAY/nC,EAAQ+nC,UAAY,WAClC,QAASA,KACPxkC,EAAgBnC,KAAM2mC,GAiCxB,MA9BApkC,GAAaokC,IACX1jC,IAAK,OACLG,MAAO,SAAcwjC,GACnB5mC,KAAK6mC,WAAaD,KAGpB3jC,IAAK,MACLG,MAAO,SAAa1C,GACG,gBAAVA,KACTA,GAAUA,MAAOA,GAGnB,IAAIomC,GAAapmC,EAAMA,KAEvB,IAAIA,EAAMqmC,KAAM,CACd,GAAIC,GAAY1qB,YAAYC,QAAQ,kBAClCwqB,KAAMrmC,EAAMqmC,OACX,EAEHD,IAAc,KAAOE,EAAY,IAG/BtmC,EAAM4tB,SACRwY,GAAc,MAAQpmC,EAAM4tB,QAG9BhmB,SAAS5H,MAAQomC,EAAa,MAAQ9mC,KAAK6mC,eAIxCF,IAGT/nC,GAAAA,WAAkB,GAAI+nC,QAEhBM,IAAI,SAAS3oC,EAAQU,EAAOJ,GAClC,YAWA,SAASuD,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAThH,GAAIC,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAQmM,SAAWzH,MAEnB,IAAIwE,GAAYxJ,EAAQ,wBAIpB4oC,EAAwB,IACxBC,EAAsB,IAEtBp8B,EAAWnM,EAAQmM,SAAW,WAChC,QAASA,KACP5I,EAAgBnC,KAAM+K,GAoFxB,MAjFAxI,GAAawI,IACX9H,IAAK,OACLG,MAAO,SAAcguB,GACnBpxB,KAAKyG,OAAS2qB,EACdpxB,KAAKonC,SAAW,QAGlBnkC,IAAK,QACLG,MAAO,SAAesP,EAASkK,GAC7B,GAAI5Y,GAAQhE,IAERA,MAAKonC,UACP5iC,OAAO5E,aAAaI,KAAKonC,UACzBpnC,KAAKyG,OAAOkF,UAAU,EAAG7D,EAAUo4B,iBAEnClgC,KAAKonC,SAAW5iC,OAAO/E,WAAW,WAChCuE,EAAMojC,SAAW,KACjBpjC,EAAMqjC,MAAM30B,EAASkK,IACpBsqB,KAEHlnC,KAAKyG,OAAOkF,UAAU,EAAG7D,EAAUi4B,cAAcrtB,EAASkK,IAC1D5c,KAAKonC,SAAW5iC,OAAO/E,WAAW,WAChCuE,EAAMyC,OAAOkF,UAAU,EAAG7D,EAAUo4B,iBACpCl8B,EAAMojC,SAAW,MAChBD,OAOPlkC,IAAK,OACLG,MAAO,SAAcsP,GACnB1S,KAAKqnC,MAAM30B,EAAS,WAGtBzP,IAAK,UACLG,MAAO,SAAiBsP,GACtB1S,KAAKqnC,MAAM30B,EAAS,cAGtBzP,IAAK,UACLG,MAAO,SAAiBsP,GACtB1S,KAAKqnC,MAAM30B,EAAS,cAGtBzP,IAAK,QACLG,MAAO,SAAesP,GACpB1S,KAAKqnC,MAAM30B,EAAS,YAMtBzP,IAAK,WACLG,MAAO,SAAkB6c,GACvB,GAAIvN,GAAU6J,QAAQ,6BAEG,KAArB0D,EAAUC,SACZxN,EAAUuN,EAAUD,QAGG,MAArBC,EAAUC,QAAkBD,EAAUD,SACxCtN,EAAUuN,EAAUD,QAGG,MAArBC,EAAUC,SACZxN,EAAUuN,EAAUD,OACJ,sBAAZtN,IACFA,EAAU6J,QAAQ,uDAIG,MAArB0D,EAAUC,SACZxN,EAAU6J,QAAQ,4BAGpBvc,KAAKwQ,MAAMkC,OAIR3H,IAGTnM,GAAAA,WAAkB,GAAImM,KAEnBu8B,uBAAuB,KAAKC,KAAK,SAASjpC,EAAQU,EAAOJ,GAC5D,YAWA,SAASuD,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAThH,GAAIC,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAQ4oC,aAAelkC,MAEvB,IAAImkC,GAASnpC,EAAQ,SAIjBkpC,EAAe5oC,EAAQ4oC,aAAe,WACxC,QAASA,KACPrlC,EAAgBnC,KAAMwnC,GAEtBxnC,KAAKyG,OAAS,KACdzG,KAAK0nC,aACL1nC,KAAK2nC,iBAkCP,MA/BAplC,GAAailC,IACXvkC,IAAK,aACLG,MAAO,SAAoB5B,EAAMomC,EAASphC,GACxCxG,KAAK0nC,UAAUlmC,GAAQomC,EACvB5nC,KAAK2nC,cAAcnmC,GAAQgF,KAG7BvD,IAAK,OACLG,MAAO,WACLpD,KAAKyG,QAAU,EAAGghC,EAAOI,cAAc,EAAGJ,EAAOK,iBAAiB9nC,KAAK0nC,WAAY1nC,KAAK2nC,kBAG1F1kC,IAAK,WACLG,MAAO,WACL,MAAOpD,MAAKyG,UAMdxD,IAAK,WACLG,MAAO,WACL,MAAOpD,MAAKyG,OAAO28B,cAGrBngC,IAAK,WACLG,MAAO,SAAkBmR,GACvB,MAAOvU,MAAKyG,OAAOkF,SAAS4I,OAIzBizB,IAGT5oC,GAAAA,WAAkB,GAAI4oC,KAEnBO,MAAQ,UAAUC,KAAK,SAAS1pC,EAAQU,EAAOJ,GAClD,YAQA,SAASuD,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCANhH,GAAIC,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,GAOT,IAAI6kC,GAASrpC,EAAQqpC,OAAS,WAC5B,QAASA,KACP9lC,EAAgBnC,KAAMioC,GAkDxB,MA/CA1lC,GAAa0lC,IACXhlC,IAAK,OACLG,MAAO,SAAc0gC,GACnB9jC,KAAK6H,SAAWi8B,KAGlB7gC,IAAK,gBACLG,MAAO,SAAuBuvB,EAAUgB,GAEtC,MAAOuU,QAAOvV,EAAUgB,GAAQG,SAGlC7wB,IAAK,OACLG,MAAO,WACL,MAAsB,mBAAX8kC,SACTloC,KAAK6H,SAASi8B,QAAQ,uBACf9jC,KAAKmoC,mBAELnoC,KAAKooC,oBAIhBnlC,IAAK,kBACLG,MAAO,WACL,MAAO,IAAImrB,SAAQ,SAAUiT,GAC3B,GAAIgD,GAAO,QAASA,KACI,mBAAX0D,QACT1jC,OAAO/E,WAAW,WAChB+kC,KACC,KAEHhD,IAGJgD,UAIJvhC,IAAK,iBACLG,MAAO,WAEL,MAAO,IAAImrB,SAAQ,SAAUiT,GAC3BA,UAKCyG,IAGTrpC,GAAAA,WAAkB,GAAIqpC,QAEhBI,KAAK,SAAS/pC,EAAQU,EAAOJ,GACnC,YAmDA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GAjDvFe,OAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAGTxE,EAAAA,WAAkB,SAAUy2B,EAAKiT,GAY/B,GAXAtR,EAAAA,WAAmBG,OAEnBlb,EAAAA,WAAgB7I,cACd9N,EAAYijC,UACVnX,MAAOprB,EAAAA,WAAgBwiC,YACzBvsB,EAAAA,WAAgB7I,cAAcq1B,GAAsB/1B,QAAS2iB,EAAI3iB,QAC/DoL,QAASuX,EAAIrX,YAAc,EAAGnV,EAAAA,YAAkBwsB,EAAIrX,YAAc,QAGtE1V,SAASC,eAAe,eAEG,mBAAhB+/B,IAA+BA,EAAa,CACrD,GAAI1B,GAAY/hC,EAAAA,WAAgBC,IAAI,YAAYiF,UAChDzB,UAAS5H,MAAQ6b,QAAQ,kBAAoB,MAAQqqB,EACrDpiC,OAAOgO,QAAQkC,aAAc,GAAI7P,EAAAA,WAAgBC,IAAI,gBAIzD,IAAImE,GAAU3K,EAAQ,UAElBuK,EAAW9G,EAAuBkH,GAElC+S,EAAS1d,EAAQ,SAEjB2d,EAAUla,EAAuBia,GAEjC+a,EAAYz4B,EAAQ,aAEpB04B,EAAaj1B,EAAuBg1B,GAEpCzxB,EAAchH,EAAQ,eAEtBgJ,EAAchJ,EAAQ,6BAEtB+I,EAAetF,EAAuBuF,GAEtCvC,EAASzG,EAAQ,YAEjBuG,EAAU9C,EAAuBgD,GAEjC0B,EAASnI,EAAQ,qBAEjB0H,EAAUjE,EAAuB0E,GASjChB,EAAS,SAAgB0K,GAC3B,MAAOA,GAAMkhB,MAIXoX,GAAsB,EAAGnjC,EAAYC,SAASE,GAAQ4B,EAAAA,cAGvDqhC,4BAA4B,GAAG3S,WAAW,GAAG4S,oBAAoB,IAAIz/B,OAAS,SAAS8T,MAAQ,QAAQoa,YAAY,YAAYtxB,cAAc,gBAAgB8iC,KAAK,SAAStqC,EAAQU,EAAOJ,GAC7L,YAEAmE,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAGTxE,EAAAA,WAAkB,SAAUg/B,EAAMiL,GAChC,GAAIC,GAAUxoC,UAAUxB,QAAU,GAAsBwE,SAAjBhD,UAAU,IAAmB,EAAQA,UAAU,GAElFyoC,KACAlmB,IAWJ,IATA+a,EAAKz5B,QAAQ,SAAUkE,GACrBwa,EAAItiB,KAAK8H,GACLwa,EAAI/jB,SAAW+pC,IACjBE,EAAKxoC,KAAKsiB,GACVA,QAKAimB,KAAY,GAASjmB,EAAI/jB,OAAS,GAAK+jB,EAAI/jB,OAAS+pC,EACtD,IAAK,GAAItqC,GAAIskB,EAAI/jB,OAAY+pC,EAAJtqC,EAAcA,IACrCskB,EAAItiB,KAAKuoC,EAQb,OAJIjmB,GAAI/jB,QACNiqC,EAAKxoC,KAAKsiB,GAGLkmB,QAGHC,KAAK,SAAS1qC,EAAQU,EAAOJ,GACnC,YAEAmE,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAGTxE,EAAAA,WAAkB,SAAUqqC,GAC1B,MAAIA,GAAQ,IACHvyB,KAAKgsB,MAAc,IAARuG,EAAc,KAAwB,IAAM,MACrDA,EAAQ,IACVvyB,KAAKgsB,MAAc,IAARuG,EAAc,KAAiB,IAAM,MAC9CA,EAAQ,IACVvyB,KAAKgsB,MAAc,IAARuG,EAAc,KAAQ,IAAM,MAEvCvyB,KAAKgsB,MAAc,IAARuG,GAAe,IAAM,WAIrCC,KAAK,SAAS5qC,EAAQU,EAAOJ,GACnC,YA8CA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GA5CvFe,OAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAGTxE,EAAAA,WAAkB,SAAUme,EAAWosB,GACrC,GAAIC,GAAY9oC,UAAUxB,QAAU,GAAsBwE,SAAjBhD,UAAU,IAAmB,EAAOA,UAAU,GAEnF+oC,EAAc/gC,SAASC,eAAe4gC,EAEtCE,KACED,EACFpS,EAAAA,WAAmBG,OAEnBlb,EAAAA,WAAgB7I,cACd9N,EAAYijC,UACVnX,MAAOprB,EAAAA,WAAgBwiC,YACzBvsB,EAAAA,WAAgB7I,cAAc2J,EAAW,OAG3CssB,GAEArS,EAAAA,WAAmBG,OAEnBlb,EAAAA,WAAgB7I,cAAc2J,EAAW,MAEzCssB,IAKN,IAAIrtB,GAAS1d,EAAQ,SAEjB2d,EAAUla,EAAuBia,GAEjC+a,EAAYz4B,EAAQ,aAEpB04B,EAAaj1B,EAAuBg1B,GAEpCzxB,EAAchH,EAAQ,eAEtBmI,EAASnI,EAAQ,qBAEjB0H,EAAUjE,EAAuB0E,KAIlCkiC,oBAAoB,IAAI3rB,MAAQ,QAAQoa,YAAY,YAAYtxB,cAAc,gBAAgBwjC,KAAK,SAAShrC,EAAQU,EAAOJ,GAC9H,YAQA,SAASuD,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCANhH,GAAIC,GAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAInE,GAAI,EAAGA,EAAImE,EAAM5D,OAAQP,IAAK,CAAE,GAAIoE,GAAaD,EAAMnE,EAAIoE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeP,EAAQE,EAAWM,IAAKN,IAAiB,MAAO,UAAUN,EAAaa,EAAYC,GAAiJ,MAA9HD,IAAYV,EAAiBH,EAAY7B,UAAW0C,GAAiBC,GAAaX,EAAiBH,EAAac,GAAqBd,KAEhiBU,QAAOC,eAAepE,EAAS,cAC7BwE,OAAO,GAKT,IAAImmC,GAAc,WAChB,QAASA,GAAY9I,GACnBt+B,EAAgBnC,KAAMupC,GAEtBvpC,KAAKwpC,WAAY,EACjBxpC,KAAKypC,OAAShJ,MAyHhB,MAtHAl+B,GAAagnC,IACXtmC,IAAK,MACLG,MAAO,SAAaH,EAAKW,EAAM8lC,GAC7B1pC,KAAKypC,OAAOlpC,MACV0C,IAAKA,EACLW,KAAMA,EAENC,MAAO6lC,EAAQA,EAAM7lC,OAAS,KAAO,KACrCC,OAAQ4lC,EAAQA,EAAM5lC,QAAU,KAAO,UAI3Cb,IAAK,MACLG,MAAO,SAAaH,EAAKG,GACvB,IAAK,GAAI7E,GAAI,EAAGA,EAAIyB,KAAKypC,OAAO3qC,OAAQP,IACtC,GAAIyB,KAAKypC,OAAOlrC,GAAG0E,MAAQA,EACzB,MAAOjD,MAAKypC,OAAOlrC,GAAGqF,IAI1B,OAAOR,MAGTH,IAAK,MACLG,MAAO,SAAaH,GAClB,MAAyBK,UAAlBtD,KAAK8E,IAAI7B,MAGlBA,IAAK,SACLG,MAAO,QAASumC,KAEd,IAAK,GADDA,MACKprC,EAAI,EAAGA,EAAIyB,KAAKypC,OAAO3qC,OAAQP,IACtCorC,EAAOppC,KAAKP,KAAKypC,OAAOlrC,GAAGqF,KAE7B,OAAO+lC,MAGT1mC,IAAK,QACLG,MAAO,SAAewmC,GAMpB,MALK5pC,MAAKwpC,YACRxpC,KAAKypC,OAASzpC,KAAK6pC,OAAO7pC,KAAKypC,QAC/BzpC,KAAKwpC,WAAY,GAGfI,GAAsC,mBAAhBA,GACjB5pC,KAAK2pC,SAEL3pC,KAAKypC,UAIhBxmC,IAAK,gBACLG,MAAO,WACL,MAAOpD,MAAK0pC,OAAM,MAGpBzmC,IAAK,SACLG,MAAO,SAAgB0mC,GAgCrB,QAASC,GAAWnmC,GAClB,GAAIomC,GAAW,EACoB,MAA/BC,EAASj3B,QAAQpP,EAAKX,OACpBW,EAAKC,OACPmmC,EAAWC,EAASj3B,QAAQpP,EAAKC,OAChB,KAAbmmC,IACFA,GAAY,IAELpmC,EAAKE,SACdkmC,EAAWC,EAASj3B,QAAQpP,EAAKE,SAGlB,KAAbkmC,IACFE,EAAQC,OAAOH,EAAU,EAAGpmC,GAC5BqmC,EAASE,OAAOH,EAAU,EAAGpmC,EAAKX,OA5CxC,GAAI2U,KACJkyB,GAAU3lC,QAAQ,SAAUP,GAC1BgU,EAAMrX,KAAKqD,EAAKX,MAIlB,IAAIinC,MACAD,IAIJH,GAAU3lC,QAAQ,SAAUP,GACrBA,EAAKC,OAAUD,EAAKE,SACvBomC,EAAQ3pC,KAAKqD,GACbqmC,EAAS1pC,KAAKqD,EAAKX,QAMvB6mC,EAAU3lC,QAAQ,SAAUP,GACN,SAAhBA,EAAKE,SACPomC,EAAQ3pC,KAAKqD,GACbqmC,EAAS1pC,KAAKqD,EAAKX,OA2BvB,KADA,GAAImnC,GAAa,IACVA,EAAa,GAAKxyB,EAAM9Y,SAAWmrC,EAASnrC,QACjDsrC,GAAc,EACdN,EAAU3lC,QAAQ4lC,EAGpB,OAAOG,OAIJX,IAGT3qC,GAAAA,WAAkB2qC,OAEZc,KAAK,SAAS/rC,EAAQU,EAAOJ,GACnC,YAOA,SAAS0rC,GAAIC,EAAKC,GAChB,MAAO9zB,MAAKkqB,MAAMlqB,KAAKC,UAAY6zB,EAAMD,EAAM,IAAMA,EAGvD,QAAS5c,GAAM4c,EAAKC,GAElB,IAAK,GADDzqC,GAAQ,GAAIM,OAAMiqC,EAAIC,EAAKC,IACtBjsC,EAAI,EAAGA,EAAIwB,EAAMjB,OAAQP,IAChCwB,EAAMxB,GAAKA,CAGb,OAAOwB,GAfTgD,OAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAAA,OAAc0rC,EACd1rC,EAAQ+uB,MAAQA,OAcV8c,KAAK,SAASnsC,EAAQU,EAAOJ,GACnC,YA8CA,SAASmD,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,UAASF,GA5CvFe,OAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAGTxE,EAAAA,WAAkB,SAAUuW,GAC1B,GAAIu1B,IACFphC,UAAW6L,EAAQ7L,UACnBqhC,cACE14B,KAAMkD,EAAQ9L,KACduhC,QAAS,SAAiBC,EAAWh3B,GACnCA,EAAa,KAAMsB,EAAQ3L,MAAM,GAAGyI,SAErC5S,OAAO8V,EAAQ3L,MAAMoZ,IAAI,SAAU3Q,GACpC,MAAOA,MAIX+kB,GAAAA,WAAmBG,OAAOlb,EAAAA,WAAgB7I,cACxC9N,EAAYijC,UACVnX,MAAOprB,EAAAA,WAAgBwiC,YACzBvsB,EAAAA,WAAgB7I,cAAcsd,EAAaoa,QAAUJ,OAAQA,EAAQl4B,QAASA,KAC7E62B,GAGL,IAAIrtB,GAAS1d,EAAQ,SAEjB2d,EAAUla,EAAuBia,GAEjC+a,EAAYz4B,EAAQ,aAEpB04B,EAAaj1B,EAAuBg1B,GAEpCzxB,EAAchH,EAAQ,eAEtBoyB,EAAepyB,EAAQ,gBAEvBysC,EAAwBzsC,EAAQ,oCAEhC0sC,EAAyBjpC,EAAuBgpC,GAEhDtkC,EAASnI,EAAQ,qBAEjB0H,EAAUjE,EAAuB0E,GAMjC4iC,EAAc/gC,SAASC,eAAe,cACtCiK,EAAU,GAAIw4B,GAAAA,aAEfrC,oBAAoB,IAAIsC,mCAAmC,GAAGjuB,MAAQ,QAAQoa,YAAY,YAAYtxB,cAAc,cAAcorB,eAAe,iBAAiBga,KAAK,SAAS5sC,EAAQU,EAAOJ,GAClM,YAgBA,SAAS2qB,KACP,MAAO,UAAUnmB,GACf,MAA6B,KAAzB2F,EAAE2jB,KAAKtpB,GAAOtE,OACTyd,QAAQ,2BADjB,QAMJ,QAASqW,GAAMlgB,GACb,MAAO,UAAUtP,GACf,MAAK+nC,GAAMC,KAAKhoC,GAAhB,OACSsP,GAAW6J,QAAQ,iCAKhC,QAAS8uB,GAAUC,EAAY54B,GAC7B,MAAO,UAAUtP,GACf,GAAImoC,GAAgB,GAChBzsC,EAASiK,EAAE2jB,KAAKtpB,GAAOtE,MAE3B,OAAawsC,GAATxsC,GAEAysC,EADE74B,EACcA,EAAQ44B,EAAYxsC,GAEpBytB,SAAS,oFAAqF,qFAAsF+e,GAE/LhvB,YAAYivB,GACjBC,YAAaF,EACbG,WAAY3sC,IACX,IATL,QAcJ,QAAS4sC,GAAUJ,EAAY54B,GAC7B,MAAO,UAAUtP,GACf,GAAImoC,GAAgB,GAChBzsC,EAASiK,EAAE2jB,KAAKtpB,GAAOtE,MAE3B,OAAIA,GAASwsC,GAETC,EADE74B,EACcA,EAAQ44B,EAAYxsC,GAEpBytB,SAAS,mFAAoF,oFAAqF+e,GAE7LhvB,YAAYivB,GACjBC,YAAaF,EACbG,WAAY3sC,IACX,IATL,QAcJ,QAASitB,GAAkB4f,GACzB,GAAIj5B,GAAU,SAAiB44B,GAC7B,MAAO/e,UAAS,4DAA6D,6DAA8D+e,GAE7I,OAAOtrC,MAAKqrC,UAAUM,EAAS3f,oBAAqBtZ,GAGtD,QAASwZ,GAAkByf,GACzB,GAAIj5B,GAAU,SAAiB44B,GAC7B,MAAO/e,UAAS,4DAA6D,6DAA8D+e,GAE7I,OAAOtrC,MAAK0rC,UAAUC,EAASxf,oBAAqBzZ,GAGtD,QAASoZ,KACP,MAAO,UAAU1oB,GACf,MAAKwoC,GAASR,KAAKriC,EAAE2jB,KAAKtpB,IAA1B,OACSmZ,QAAQ,iEAKrB,QAAS4W,GAAkBwY,GACzB,GAAIj5B,GAAU,SAAiB44B,GAC7B,MAAO/e,UAAS,kEAAmE,mEAAoE+e,GAEzJ,OAAOtrC,MAAKqrC,UAAUM,EAASE,oBAAqBn5B,GA9FtD3P,OAAOC,eAAepE,EAAS,cAC7BwE,OAAO,IAETxE,EAAQ2qB,SAAWA,EACnB3qB,EAAQg0B,MAAQA,EAChBh0B,EAAQysC,UAAYA,EACpBzsC,EAAQ8sC,UAAYA,EACpB9sC,EAAQmtB,kBAAoBA,EAC5BntB,EAAQstB,kBAAoBA,EAC5BttB,EAAQktB,gBAAkBA,EAC1BltB,EAAQu0B,kBAAoBA,CAC5B,IAAIgY,GAAQ,uHACRS,EAAW,GAAItK,QAAO,cAAe,eAqF9B,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG","file":"misago.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){\n// shim for using process in browser\n\nvar process = module.exports = {};\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n    draining = false;\n    if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n    } else {\n        queueIndex = -1;\n    }\n    if (queue.length) {\n        drainQueue();\n    }\n}\n\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    var timeout = setTimeout(cleanUpNextTick);\n    draining = true;\n\n    var len = queue.length;\n    while(len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n            if (currentQueue) {\n                currentQueue[queueIndex].run();\n            }\n        }\n        queueIndex = -1;\n        len = queue.length;\n    }\n    currentQueue = null;\n    draining = false;\n    clearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n    var args = new Array(arguments.length - 1);\n    if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n            args[i - 1] = arguments[i];\n        }\n    }\n    queue.push(new Item(fun, args));\n    if (queue.length === 1 && !draining) {\n        setTimeout(drainQueue, 0);\n    }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n    this.fun = fun;\n    this.array = array;\n}\nItem.prototype.run = function () {\n    this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n},{}],2:[function(require,module,exports){\n(function (global){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Misago = undefined;\n\nvar _orderedList = require('../../../../documents/misago/frontend/src/utils/ordered-list');\n\nvar _orderedList2 = _interopRequireDefault(_orderedList);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Misago = exports.Misago = function () {\n  function Misago() {\n    _classCallCheck(this, Misago);\n\n    this._initializers = [];\n    this._context = {};\n  }\n\n  _createClass(Misago, [{\n    key: 'addInitializer',\n    value: function addInitializer(initializer) {\n      this._initializers.push({\n        key: initializer.name,\n\n        item: initializer.initializer,\n\n        after: initializer.after,\n        before: initializer.before\n      });\n    }\n  }, {\n    key: 'init',\n    value: function init(context) {\n      var _this = this;\n\n      this._context = context;\n\n      var initOrder = new _orderedList2.default(this._initializers).orderedValues();\n      initOrder.forEach(function (initializer) {\n        initializer(_this);\n      });\n    }\n\n    // context accessors\n\n  }, {\n    key: 'has',\n    value: function has(key) {\n      return !!this._context[key];\n    }\n  }, {\n    key: 'get',\n    value: function get(key, fallback) {\n      if (this.has(key)) {\n        return this._context[key];\n      } else {\n        return fallback || undefined;\n      }\n    }\n  }, {\n    key: 'pop',\n    value: function pop(key) {\n      if (this.has(key)) {\n        var value = this._context[key];\n        this._context[key] = null;\n        return value;\n      } else {\n        return undefined;\n      }\n    }\n  }]);\n\n  return Misago;\n}();\n\n// create  singleton\n\nvar misago = new Misago();\n\n// expose it globally\nglobal.misago = misago;\n\n// and export it for tests and stuff\nexports.default = misago;\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{\"../../../../documents/misago/frontend/src/utils/ordered-list\":106}],3:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _ajax = require('../../../../../documents/misago/frontend/src/services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _ajax2.default.init(_index2.default.get('CSRF_COOKIE_NAME'));\n}\n\n_index2.default.addInitializer({\n  name: 'ajax',\n  initializer: initializer\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/services/ajax\":91}],4:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _reactRedux = require('react-redux');\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _authMessage = require('../../../../../documents/misago/frontend/src/components/auth-message');\n\nvar _authMessage2 = _interopRequireDefault(_authMessage);\n\nvar _mountComponent = require('../../../../../documents/misago/frontend/src/utils/mount-component');\n\nvar _mountComponent2 = _interopRequireDefault(_mountComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  (0, _mountComponent2.default)((0, _reactRedux.connect)(_authMessage.select)(_authMessage2.default), 'auth-message-mount');\n}\n\n_index2.default.addInitializer({\n  name: 'component:auth-message',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../documents/misago/frontend/src/components/auth-message\":48,\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/utils/mount-component\":105,\"react-redux\":\"react-redux\"}],5:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _auth = require('../../../../../documents/misago/frontend/src/reducers/auth');\n\nvar _auth2 = _interopRequireDefault(_auth);\n\nvar _store = require('../../../../../documents/misago/frontend/src/services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer(context) {\n  _store2.default.addReducer('auth', _auth2.default, Object.assign({\n    'isAuthenticated': context.get('isAuthenticated'),\n    'isAnonymous': !context.get('isAuthenticated'),\n\n    'user': context.get('user')\n  }, _auth.initialState));\n}\n\n_index2.default.addInitializer({\n  name: 'reducer:auth',\n  initializer: initializer,\n  before: 'store'\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/reducers/auth\":86,\"../../../../../documents/misago/frontend/src/services/store\":100}],6:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _auth = require('../../../../../documents/misago/frontend/src/services/auth');\n\nvar _auth2 = _interopRequireDefault(_auth);\n\nvar _modal = require('../../../../../documents/misago/frontend/src/services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nvar _store = require('../../../../../documents/misago/frontend/src/services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nvar _localStorage = require('../../../../../documents/misago/frontend/src/services/local-storage');\n\nvar _localStorage2 = _interopRequireDefault(_localStorage);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _auth2.default.init(_store2.default, _localStorage2.default, _modal2.default);\n}\n\n_index2.default.addInitializer({\n  name: 'auth',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/services/auth\":92,\"../../../../../documents/misago/frontend/src/services/local-storage\":95,\"../../../../../documents/misago/frontend/src/services/modal\":97,\"../../../../../documents/misago/frontend/src/services/store\":100}],7:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _bannedPage = require('../../../../../documents/misago/frontend/src/utils/banned-page');\n\nvar _bannedPage2 = _interopRequireDefault(_bannedPage);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer(context) {\n  if (context.has('BAN_MESSAGE')) {\n    (0, _bannedPage2.default)(context.get('BAN_MESSAGE'), false);\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'component:baned-page',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/utils/banned-page\":102}],8:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _ajax = require('../../../../../documents/misago/frontend/src/services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _captcha = require('../../../../../documents/misago/frontend/src/services/captcha');\n\nvar _captcha2 = _interopRequireDefault(_captcha);\n\nvar _include = require('../../../../../documents/misago/frontend/src/services/include');\n\nvar _include2 = _interopRequireDefault(_include);\n\nvar _snackbar = require('../../../../../documents/misago/frontend/src/services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer(context) {\n  _captcha2.default.init(context, _ajax2.default, _include2.default, _snackbar2.default);\n}\n\n_index2.default.addInitializer({\n  name: 'captcha',\n  initializer: initializer\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/services/ajax\":91,\"../../../../../documents/misago/frontend/src/services/captcha\":93,\"../../../../../documents/misago/frontend/src/services/include\":94,\"../../../../../documents/misago/frontend/src/services/snackbar\":99}],9:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _include = require('../../../../../documents/misago/frontend/src/services/include');\n\nvar _include2 = _interopRequireDefault(_include);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer(context) {\n  _include2.default.init(context.get('STATIC_URL'));\n}\n\n_index2.default.addInitializer({\n  name: 'include',\n  initializer: initializer\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/services/include\":94}],10:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _localStorage = require('../../../../../documents/misago/frontend/src/services/local-storage');\n\nvar _localStorage2 = _interopRequireDefault(_localStorage);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _localStorage2.default.init('misago_');\n}\n\n_index2.default.addInitializer({\n  name: 'local-storage',\n  initializer: initializer\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/services/local-storage\":95}],11:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _mobileNavbarDropdown = require('../../../../../documents/misago/frontend/src/services/mobile-navbar-dropdown');\n\nvar _mobileNavbarDropdown2 = _interopRequireDefault(_mobileNavbarDropdown);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  var element = document.getElementById('mobile-navbar-dropdown-mount');\n  if (element) {\n    _mobileNavbarDropdown2.default.init(element);\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'dropdown',\n  initializer: initializer,\n  before: 'store'\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/services/mobile-navbar-dropdown\":96}],12:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _modal = require('../../../../../documents/misago/frontend/src/services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  var element = document.getElementById('modal-mount');\n  if (element) {\n    _modal2.default.init(element);\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'modal',\n  initializer: initializer,\n  before: 'store'\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/services/modal\":97}],13:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _moment2.default.locale($('html').attr('lang'));\n}\n\n_index2.default.addInitializer({\n  name: 'moment',\n  initializer: initializer\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":85,\"moment\":\"moment\"}],14:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _root = require('../../../../../documents/misago/frontend/src/components/options/root');\n\nvar _root2 = _interopRequireDefault(_root);\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _store = require('../../../../../documents/misago/frontend/src/services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nvar _routedComponent = require('../../../../../documents/misago/frontend/src/utils/routed-component');\n\nvar _routedComponent2 = _interopRequireDefault(_routedComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer(context) {\n  if (context.has('USER_OPTIONS')) {\n    (0, _routedComponent2.default)({\n      root: _index2.default.get('USERCP_URL'),\n      component: _root2.default,\n      paths: (0, _root.paths)(_store2.default)\n    });\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'component:options',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../documents/misago/frontend/src/components/options/root\":65,\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/services/store\":100,\"../../../../../documents/misago/frontend/src/utils/routed-component\":108}],15:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _pageTitle = require('../../../../../documents/misago/frontend/src/services/page-title');\n\nvar _pageTitle2 = _interopRequireDefault(_pageTitle);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer(context) {\n  _pageTitle2.default.init(context.get('SETTINGS').forum_name);\n}\n\n_index2.default.addInitializer({\n  name: 'page-title',\n  initializer: initializer\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/services/page-title\":98}],16:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _requestActivationLink = require('../../../../../documents/misago/frontend/src/components/request-activation-link');\n\nvar _requestActivationLink2 = _interopRequireDefault(_requestActivationLink);\n\nvar _mountComponent = require('../../../../../documents/misago/frontend/src/utils/mount-component');\n\nvar _mountComponent2 = _interopRequireDefault(_mountComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  if (document.getElementById('request-activation-link-mount')) {\n    (0, _mountComponent2.default)(_requestActivationLink2.default, 'request-activation-link-mount', false);\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'component:request-activation-link',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../documents/misago/frontend/src/components/request-activation-link\":70,\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/utils/mount-component\":105}],17:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _requestPasswordReset = require('../../../../../documents/misago/frontend/src/components/request-password-reset');\n\nvar _requestPasswordReset2 = _interopRequireDefault(_requestPasswordReset);\n\nvar _mountComponent = require('../../../../../documents/misago/frontend/src/utils/mount-component');\n\nvar _mountComponent2 = _interopRequireDefault(_mountComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  if (document.getElementById('request-password-reset-mount')) {\n    (0, _mountComponent2.default)(_requestPasswordReset2.default, 'request-password-reset-mount', false);\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'component:request-password-reset',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../documents/misago/frontend/src/components/request-password-reset\":71,\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/utils/mount-component\":105}],18:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _resetPasswordForm = require('../../../../../documents/misago/frontend/src/components/reset-password-form');\n\nvar _resetPasswordForm2 = _interopRequireDefault(_resetPasswordForm);\n\nvar _mountComponent = require('../../../../../documents/misago/frontend/src/utils/mount-component');\n\nvar _mountComponent2 = _interopRequireDefault(_mountComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  if (document.getElementById('reset-password-form-mount')) {\n    (0, _mountComponent2.default)(_resetPasswordForm2.default, 'reset-password-form-mount', false);\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'component:reset-password-form',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../documents/misago/frontend/src/components/reset-password-form\":72,\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/utils/mount-component\":105}],19:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _reactRedux = require('react-redux');\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _snackbar = require('../../../../../documents/misago/frontend/src/components/snackbar');\n\nvar _mountComponent = require('../../../../../documents/misago/frontend/src/utils/mount-component');\n\nvar _mountComponent2 = _interopRequireDefault(_mountComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  (0, _mountComponent2.default)((0, _reactRedux.connect)(_snackbar.select)(_snackbar.Snackbar), 'snackbar-mount');\n}\n\n_index2.default.addInitializer({\n  name: 'component:snackbar',\n  initializer: initializer,\n  after: 'snackbar'\n});\n\n},{\"../../../../../documents/misago/frontend/src/components/snackbar\":75,\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/utils/mount-component\":105,\"react-redux\":\"react-redux\"}],20:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _snackbar = require('../../../../../documents/misago/frontend/src/reducers/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _store = require('../../../../../documents/misago/frontend/src/services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _store2.default.addReducer('snackbar', _snackbar2.default, _snackbar.initialState);\n}\n\n_index2.default.addInitializer({\n  name: 'reducer:snackbar',\n  initializer: initializer,\n  before: 'store'\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/reducers/snackbar\":87,\"../../../../../documents/misago/frontend/src/services/store\":100}],21:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _snackbar = require('../../../../../documents/misago/frontend/src/services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _store = require('../../../../../documents/misago/frontend/src/services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _snackbar2.default.init(_store2.default);\n}\n\n_index2.default.addInitializer({\n  name: 'snackbar',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/services/snackbar\":99,\"../../../../../documents/misago/frontend/src/services/store\":100}],22:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _store = require('../../../../../documents/misago/frontend/src/services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _store2.default.init();\n}\n\n_index2.default.addInitializer({\n  name: 'store',\n  initializer: initializer,\n  before: '_end'\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/services/store\":100}],23:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _tick = require('../../../../../documents/misago/frontend/src/reducers/tick');\n\nvar _tick2 = _interopRequireDefault(_tick);\n\nvar _store = require('../../../../../documents/misago/frontend/src/services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _store2.default.addReducer('tick', _tick2.default, _tick.initialState);\n}\n\n_index2.default.addInitializer({\n  name: 'reducer:tick',\n  initializer: initializer,\n  before: 'store'\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/reducers/tick\":88,\"../../../../../documents/misago/frontend/src/services/store\":100}],24:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _tick = require('../../../../../documents/misago/frontend/src/reducers/tick');\n\nvar _store = require('../../../../../documents/misago/frontend/src/services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar TICK_PERIOD = 50 * 1000; //do the tick every 50s\n\nfunction initializer() {\n  window.setInterval(function () {\n    _store2.default.dispatch((0, _tick.doTick)());\n  }, TICK_PERIOD);\n}\n\n_index2.default.addInitializer({\n  name: 'tick-start',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/reducers/tick\":88,\"../../../../../documents/misago/frontend/src/services/store\":100}],25:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _reactRedux = require('react-redux');\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _root = require('../../../../../documents/misago/frontend/src/components/user-menu/root');\n\nvar _mountComponent = require('../../../../../documents/misago/frontend/src/utils/mount-component');\n\nvar _mountComponent2 = _interopRequireDefault(_mountComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  (0, _mountComponent2.default)((0, _reactRedux.connect)(_root.select)(_root.UserMenu), 'user-menu-mount');\n  (0, _mountComponent2.default)((0, _reactRedux.connect)(_root.select)(_root.CompactUserMenu), 'user-menu-compact-mount');\n}\n\n_index2.default.addInitializer({\n  name: 'component:user-menu',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../documents/misago/frontend/src/components/user-menu/root\":77,\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/utils/mount-component\":105,\"react-redux\":\"react-redux\"}],26:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _usernameHistory = require('../../../../../documents/misago/frontend/src/reducers/username-history');\n\nvar _usernameHistory2 = _interopRequireDefault(_usernameHistory);\n\nvar _store = require('../../../../../documents/misago/frontend/src/services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _store2.default.addReducer('username-history', _usernameHistory2.default, []);\n}\n\n_index2.default.addInitializer({\n  name: 'reducer:username-history',\n  initializer: initializer,\n  before: 'store'\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/reducers/username-history\":89,\"../../../../../documents/misago/frontend/src/services/store\":100}],27:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _root = require('../../../../../documents/misago/frontend/src/components/users/root');\n\nvar _root2 = _interopRequireDefault(_root);\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _store = require('../../../../../documents/misago/frontend/src/services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nvar _routedComponent = require('../../../../../documents/misago/frontend/src/utils/routed-component');\n\nvar _routedComponent2 = _interopRequireDefault(_routedComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer(context) {\n  if (context.has('USERS_LISTS')) {\n    (0, _routedComponent2.default)({\n      root: _index2.default.get('USERS_LIST_URL'),\n      component: _root2.default,\n      paths: (0, _root.paths)(_store2.default)\n    });\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'component:users',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../documents/misago/frontend/src/components/users/root\":83,\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/services/store\":100,\"../../../../../documents/misago/frontend/src/utils/routed-component\":108}],28:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _users = require('../../../../../documents/misago/frontend/src/reducers/users');\n\nvar _users2 = _interopRequireDefault(_users);\n\nvar _store = require('../../../../../documents/misago/frontend/src/services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _store2.default.addReducer('users', _users2.default, []);\n}\n\n_index2.default.addInitializer({\n  name: 'reducer:users',\n  initializer: initializer,\n  before: 'store'\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/reducers/users\":90,\"../../../../../documents/misago/frontend/src/services/store\":100}],29:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _include = require('../../../../../documents/misago/frontend/src/services/include');\n\nvar _include2 = _interopRequireDefault(_include);\n\nvar _zxcvbn = require('../../../../../documents/misago/frontend/src/services/zxcvbn');\n\nvar _zxcvbn2 = _interopRequireDefault(_zxcvbn);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _zxcvbn2.default.init(_include2.default);\n}\n\n_index2.default.addInitializer({\n  name: 'zxcvbn',\n  initializer: initializer\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/services/include\":94,\"../../../../../documents/misago/frontend/src/services/zxcvbn\":101}],30:[function(require,module,exports){\nvar pSlice = Array.prototype.slice;\nvar objectKeys = require('./lib/keys.js');\nvar isArguments = require('./lib/is_arguments.js');\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n  if (!opts) opts = {};\n  // 7.1. All identical values are equivalent, as determined by ===.\n  if (actual === expected) {\n    return true;\n\n  } else if (actual instanceof Date && expected instanceof Date) {\n    return actual.getTime() === expected.getTime();\n\n  // 7.3. Other pairs that do not both pass typeof value == 'object',\n  // equivalence is determined by ==.\n  } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n    return opts.strict ? actual === expected : actual == expected;\n\n  // 7.4. For all other Object pairs, including Array objects, equivalence is\n  // determined by having the same number of owned properties (as verified\n  // with Object.prototype.hasOwnProperty.call), the same set of keys\n  // (although not necessarily the same order), equivalent values for every\n  // corresponding key, and an identical 'prototype' property. Note: this\n  // accounts for both named and indexed properties on Arrays.\n  } else {\n    return objEquiv(actual, expected, opts);\n  }\n}\n\nfunction isUndefinedOrNull(value) {\n  return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n  if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n  if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n    return false;\n  }\n  if (x.length > 0 && typeof x[0] !== 'number') return false;\n  return true;\n}\n\nfunction objEquiv(a, b, opts) {\n  var i, key;\n  if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n    return false;\n  // an identical 'prototype' property.\n  if (a.prototype !== b.prototype) return false;\n  //~~~I've managed to break Object.keys through screwy arguments passing.\n  //   Converting to array solves the problem.\n  if (isArguments(a)) {\n    if (!isArguments(b)) {\n      return false;\n    }\n    a = pSlice.call(a);\n    b = pSlice.call(b);\n    return deepEqual(a, b, opts);\n  }\n  if (isBuffer(a)) {\n    if (!isBuffer(b)) {\n      return false;\n    }\n    if (a.length !== b.length) return false;\n    for (i = 0; i < a.length; i++) {\n      if (a[i] !== b[i]) return false;\n    }\n    return true;\n  }\n  try {\n    var ka = objectKeys(a),\n        kb = objectKeys(b);\n  } catch (e) {//happens when one is a string literal and the other isn't\n    return false;\n  }\n  // having the same number of owned properties (keys incorporates\n  // hasOwnProperty)\n  if (ka.length != kb.length)\n    return false;\n  //the same set of keys (although not necessarily the same order),\n  ka.sort();\n  kb.sort();\n  //~~~cheap key test\n  for (i = ka.length - 1; i >= 0; i--) {\n    if (ka[i] != kb[i])\n      return false;\n  }\n  //equivalent values for every corresponding key, and\n  //~~~possibly expensive deep test\n  for (i = ka.length - 1; i >= 0; i--) {\n    key = ka[i];\n    if (!deepEqual(a[key], b[key], opts)) return false;\n  }\n  return typeof a === typeof b;\n}\n\n},{\"./lib/is_arguments.js\":31,\"./lib/keys.js\":32}],31:[function(require,module,exports){\nvar supportsArgumentsClass = (function(){\n  return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n  return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n  return object &&\n    typeof object == 'object' &&\n    typeof object.length == 'number' &&\n    Object.prototype.hasOwnProperty.call(object, 'callee') &&\n    !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n    false;\n};\n\n},{}],32:[function(require,module,exports){\nexports = module.exports = typeof Object.keys === 'function'\n  ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n  var keys = [];\n  for (var key in obj) keys.push(key);\n  return keys;\n}\n\n},{}],33:[function(require,module,exports){\n/**\n * Indicates that navigation was caused by a call to history.push.\n */\n'use strict';\n\nexports.__esModule = true;\nvar PUSH = 'PUSH';\n\nexports.PUSH = PUSH;\n/**\n * Indicates that navigation was caused by a call to history.replace.\n */\nvar REPLACE = 'REPLACE';\n\nexports.REPLACE = REPLACE;\n/**\n * Indicates that navigation was caused by some other action such\n * as using a browser's back/forward buttons and/or manually manipulating\n * the URL in a browser's location bar. This is the default.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate\n * for more information.\n */\nvar POP = 'POP';\n\nexports.POP = POP;\nexports['default'] = {\n  PUSH: PUSH,\n  REPLACE: REPLACE,\n  POP: POP\n};\n},{}],34:[function(require,module,exports){\n\"use strict\";\n\nexports.__esModule = true;\nexports.loopAsync = loopAsync;\n\nfunction loopAsync(turns, work, callback) {\n  var currentTurn = 0;\n  var isDone = false;\n\n  function done() {\n    isDone = true;\n    callback.apply(this, arguments);\n  }\n\n  function next() {\n    if (isDone) return;\n\n    if (currentTurn < turns) {\n      work.call(this, currentTurn++, next, done);\n    } else {\n      done.apply(this, arguments);\n    }\n  }\n\n  next();\n}\n},{}],35:[function(require,module,exports){\n(function (process){\n/*eslint-disable no-empty */\n'use strict';\n\nexports.__esModule = true;\nexports.saveState = saveState;\nexports.readState = readState;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar KeyPrefix = '@@History/';\nvar QuotaExceededError = 'QuotaExceededError';\nvar SecurityError = 'SecurityError';\n\nfunction createKey(key) {\n  return KeyPrefix + key;\n}\n\nfunction saveState(key, state) {\n  try {\n    window.sessionStorage.setItem(createKey(key), JSON.stringify(state));\n  } catch (error) {\n    if (error.name === SecurityError) {\n      // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n      // attempt to access window.sessionStorage.\n      process.env.NODE_ENV !== 'production' ? _warning2['default'](false, '[history] Unable to save state; sessionStorage is not available due to security settings') : undefined;\n\n      return;\n    }\n\n    if (error.name === QuotaExceededError && window.sessionStorage.length === 0) {\n      // Safari \"private mode\" throws QuotaExceededError.\n      process.env.NODE_ENV !== 'production' ? _warning2['default'](false, '[history] Unable to save state; sessionStorage is not available in Safari private mode') : undefined;\n\n      return;\n    }\n\n    throw error;\n  }\n}\n\nfunction readState(key) {\n  var json = undefined;\n  try {\n    json = window.sessionStorage.getItem(createKey(key));\n  } catch (error) {\n    if (error.name === SecurityError) {\n      // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n      // attempt to access window.sessionStorage.\n      process.env.NODE_ENV !== 'production' ? _warning2['default'](false, '[history] Unable to read state; sessionStorage is not available due to security settings') : undefined;\n\n      return null;\n    }\n  }\n\n  if (json) {\n    try {\n      return JSON.parse(json);\n    } catch (error) {\n      // Ignore invalid JSON.\n    }\n  }\n\n  return null;\n}\n}).call(this,require('_process'))\n},{\"_process\":1,\"warning\":47}],36:[function(require,module,exports){\n'use strict';\n\nexports.__esModule = true;\nexports.addEventListener = addEventListener;\nexports.removeEventListener = removeEventListener;\nexports.getHashPath = getHashPath;\nexports.replaceHashPath = replaceHashPath;\nexports.getWindowPath = getWindowPath;\nexports.go = go;\nexports.getUserConfirmation = getUserConfirmation;\nexports.supportsHistory = supportsHistory;\nexports.supportsGoWithoutReloadUsingHash = supportsGoWithoutReloadUsingHash;\n\nfunction addEventListener(node, event, listener) {\n  if (node.addEventListener) {\n    node.addEventListener(event, listener, false);\n  } else {\n    node.attachEvent('on' + event, listener);\n  }\n}\n\nfunction removeEventListener(node, event, listener) {\n  if (node.removeEventListener) {\n    node.removeEventListener(event, listener, false);\n  } else {\n    node.detachEvent('on' + event, listener);\n  }\n}\n\nfunction getHashPath() {\n  // We can't use window.location.hash here because it's not\n  // consistent across browsers - Firefox will pre-decode it!\n  return window.location.href.split('#')[1] || '';\n}\n\nfunction replaceHashPath(path) {\n  window.location.replace(window.location.pathname + window.location.search + '#' + path);\n}\n\nfunction getWindowPath() {\n  return window.location.pathname + window.location.search + window.location.hash;\n}\n\nfunction go(n) {\n  if (n) window.history.go(n);\n}\n\nfunction getUserConfirmation(message, callback) {\n  callback(window.confirm(message));\n}\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/rackt/react-router/issues/586\n */\n\nfunction supportsHistory() {\n  var ua = navigator.userAgent;\n  if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) {\n    return false;\n  }\n  // FIXME: Work around our browser history not working correctly on Chrome\n  // iOS: https://github.com/rackt/react-router/issues/2565\n  if (ua.indexOf('CriOS') !== -1) {\n    return false;\n  }\n  return window.history && 'pushState' in window.history;\n}\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n  var ua = navigator.userAgent;\n  return ua.indexOf('Firefox') === -1;\n}\n},{}],37:[function(require,module,exports){\n'use strict';\n\nexports.__esModule = true;\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nexports.canUseDOM = canUseDOM;\n},{}],38:[function(require,module,exports){\n(function (process){\n'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _Actions = require('./Actions');\n\nvar _ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar _DOMUtils = require('./DOMUtils');\n\nvar _DOMStateStorage = require('./DOMStateStorage');\n\nvar _createDOMHistory = require('./createDOMHistory');\n\nvar _createDOMHistory2 = _interopRequireDefault(_createDOMHistory);\n\nvar _parsePath = require('./parsePath');\n\nvar _parsePath2 = _interopRequireDefault(_parsePath);\n\n/**\n * Creates and returns a history object that uses HTML5's history API\n * (pushState, replaceState, and the popstate event) to manage history.\n * This is the recommended method of managing history in browsers because\n * it provides the cleanest URLs.\n *\n * Note: In browsers that do not support the HTML5 history API full\n * page reloads will be used to preserve URLs.\n */\nfunction createBrowserHistory() {\n  var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n  !_ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, 'Browser history needs a DOM') : _invariant2['default'](false) : undefined;\n\n  var forceRefresh = options.forceRefresh;\n\n  var isSupported = _DOMUtils.supportsHistory();\n  var useRefresh = !isSupported || forceRefresh;\n\n  function getCurrentLocation(historyState) {\n    historyState = historyState || window.history.state || {};\n\n    var path = _DOMUtils.getWindowPath();\n    var _historyState = historyState;\n    var key = _historyState.key;\n\n    var state = undefined;\n    if (key) {\n      state = _DOMStateStorage.readState(key);\n    } else {\n      state = null;\n      key = history.createKey();\n\n      if (isSupported) window.history.replaceState(_extends({}, historyState, { key: key }), null, path);\n    }\n\n    var location = _parsePath2['default'](path);\n\n    return history.createLocation(_extends({}, location, { state: state }), undefined, key);\n  }\n\n  function startPopStateListener(_ref) {\n    var transitionTo = _ref.transitionTo;\n\n    function popStateListener(event) {\n      if (event.state === undefined) return; // Ignore extraneous popstate events in WebKit.\n\n      transitionTo(getCurrentLocation(event.state));\n    }\n\n    _DOMUtils.addEventListener(window, 'popstate', popStateListener);\n\n    return function () {\n      _DOMUtils.removeEventListener(window, 'popstate', popStateListener);\n    };\n  }\n\n  function finishTransition(location) {\n    var basename = location.basename;\n    var pathname = location.pathname;\n    var search = location.search;\n    var hash = location.hash;\n    var state = location.state;\n    var action = location.action;\n    var key = location.key;\n\n    if (action === _Actions.POP) return; // Nothing to do.\n\n    _DOMStateStorage.saveState(key, state);\n\n    var path = (basename || '') + pathname + search + hash;\n    var historyState = {\n      key: key\n    };\n\n    if (action === _Actions.PUSH) {\n      if (useRefresh) {\n        window.location.href = path;\n        return false; // Prevent location update.\n      } else {\n          window.history.pushState(historyState, null, path);\n        }\n    } else {\n      // REPLACE\n      if (useRefresh) {\n        window.location.replace(path);\n        return false; // Prevent location update.\n      } else {\n          window.history.replaceState(historyState, null, path);\n        }\n    }\n  }\n\n  var history = _createDOMHistory2['default'](_extends({}, options, {\n    getCurrentLocation: getCurrentLocation,\n    finishTransition: finishTransition,\n    saveState: _DOMStateStorage.saveState\n  }));\n\n  var listenerCount = 0,\n      stopPopStateListener = undefined;\n\n  function listenBefore(listener) {\n    if (++listenerCount === 1) stopPopStateListener = startPopStateListener(history);\n\n    var unlisten = history.listenBefore(listener);\n\n    return function () {\n      unlisten();\n\n      if (--listenerCount === 0) stopPopStateListener();\n    };\n  }\n\n  function listen(listener) {\n    if (++listenerCount === 1) stopPopStateListener = startPopStateListener(history);\n\n    var unlisten = history.listen(listener);\n\n    return function () {\n      unlisten();\n\n      if (--listenerCount === 0) stopPopStateListener();\n    };\n  }\n\n  // deprecated\n  function registerTransitionHook(hook) {\n    if (++listenerCount === 1) stopPopStateListener = startPopStateListener(history);\n\n    history.registerTransitionHook(hook);\n  }\n\n  // deprecated\n  function unregisterTransitionHook(hook) {\n    history.unregisterTransitionHook(hook);\n\n    if (--listenerCount === 0) stopPopStateListener();\n  }\n\n  return _extends({}, history, {\n    listenBefore: listenBefore,\n    listen: listen,\n    registerTransitionHook: registerTransitionHook,\n    unregisterTransitionHook: unregisterTransitionHook\n  });\n}\n\nexports['default'] = createBrowserHistory;\nmodule.exports = exports['default'];\n}).call(this,require('_process'))\n},{\"./Actions\":33,\"./DOMStateStorage\":35,\"./DOMUtils\":36,\"./ExecutionEnvironment\":37,\"./createDOMHistory\":39,\"./parsePath\":44,\"_process\":1,\"invariant\":46}],39:[function(require,module,exports){\n(function (process){\n'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar _DOMUtils = require('./DOMUtils');\n\nvar _createHistory = require('./createHistory');\n\nvar _createHistory2 = _interopRequireDefault(_createHistory);\n\nfunction createDOMHistory(options) {\n  var history = _createHistory2['default'](_extends({\n    getUserConfirmation: _DOMUtils.getUserConfirmation\n  }, options, {\n    go: _DOMUtils.go\n  }));\n\n  function listen(listener) {\n    !_ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, 'DOM history needs a DOM') : _invariant2['default'](false) : undefined;\n\n    return history.listen(listener);\n  }\n\n  return _extends({}, history, {\n    listen: listen\n  });\n}\n\nexports['default'] = createDOMHistory;\nmodule.exports = exports['default'];\n}).call(this,require('_process'))\n},{\"./DOMUtils\":36,\"./ExecutionEnvironment\":37,\"./createHistory\":40,\"_process\":1,\"invariant\":46}],40:[function(require,module,exports){\n//import warning from 'warning'\n'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _deepEqual = require('deep-equal');\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _AsyncUtils = require('./AsyncUtils');\n\nvar _Actions = require('./Actions');\n\nvar _createLocation2 = require('./createLocation');\n\nvar _createLocation3 = _interopRequireDefault(_createLocation2);\n\nvar _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _parsePath = require('./parsePath');\n\nvar _parsePath2 = _interopRequireDefault(_parsePath);\n\nvar _deprecate = require('./deprecate');\n\nvar _deprecate2 = _interopRequireDefault(_deprecate);\n\nfunction createRandomKey(length) {\n  return Math.random().toString(36).substr(2, length);\n}\n\nfunction locationsAreEqual(a, b) {\n  return a.pathname === b.pathname && a.search === b.search &&\n  //a.action === b.action && // Different action !== location change.\n  a.key === b.key && _deepEqual2['default'](a.state, b.state);\n}\n\nvar DefaultKeyLength = 6;\n\nfunction createHistory() {\n  var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n  var getCurrentLocation = options.getCurrentLocation;\n  var finishTransition = options.finishTransition;\n  var saveState = options.saveState;\n  var go = options.go;\n  var keyLength = options.keyLength;\n  var getUserConfirmation = options.getUserConfirmation;\n\n  if (typeof keyLength !== 'number') keyLength = DefaultKeyLength;\n\n  var transitionHooks = [];\n\n  function listenBefore(hook) {\n    transitionHooks.push(hook);\n\n    return function () {\n      transitionHooks = transitionHooks.filter(function (item) {\n        return item !== hook;\n      });\n    };\n  }\n\n  var allKeys = [];\n  var changeListeners = [];\n  var location = undefined;\n\n  function getCurrent() {\n    if (pendingLocation && pendingLocation.action === _Actions.POP) {\n      return allKeys.indexOf(pendingLocation.key);\n    } else if (location) {\n      return allKeys.indexOf(location.key);\n    } else {\n      return -1;\n    }\n  }\n\n  function updateLocation(newLocation) {\n    var current = getCurrent();\n\n    location = newLocation;\n\n    if (location.action === _Actions.PUSH) {\n      allKeys = [].concat(allKeys.slice(0, current + 1), [location.key]);\n    } else if (location.action === _Actions.REPLACE) {\n      allKeys[current] = location.key;\n    }\n\n    changeListeners.forEach(function (listener) {\n      listener(location);\n    });\n  }\n\n  function listen(listener) {\n    changeListeners.push(listener);\n\n    if (location) {\n      listener(location);\n    } else {\n      var _location = getCurrentLocation();\n      allKeys = [_location.key];\n      updateLocation(_location);\n    }\n\n    return function () {\n      changeListeners = changeListeners.filter(function (item) {\n        return item !== listener;\n      });\n    };\n  }\n\n  function confirmTransitionTo(location, callback) {\n    _AsyncUtils.loopAsync(transitionHooks.length, function (index, next, done) {\n      _runTransitionHook2['default'](transitionHooks[index], location, function (result) {\n        if (result != null) {\n          done(result);\n        } else {\n          next();\n        }\n      });\n    }, function (message) {\n      if (getUserConfirmation && typeof message === 'string') {\n        getUserConfirmation(message, function (ok) {\n          callback(ok !== false);\n        });\n      } else {\n        callback(message !== false);\n      }\n    });\n  }\n\n  var pendingLocation = undefined;\n\n  function transitionTo(nextLocation) {\n    if (location && locationsAreEqual(location, nextLocation)) return; // Nothing to do.\n\n    pendingLocation = nextLocation;\n\n    confirmTransitionTo(nextLocation, function (ok) {\n      if (pendingLocation !== nextLocation) return; // Transition was interrupted.\n\n      if (ok) {\n        // treat PUSH to current path like REPLACE to be consistent with browsers\n        if (nextLocation.action === _Actions.PUSH) {\n          var prevPath = createPath(location);\n          var nextPath = createPath(nextLocation);\n\n          if (nextPath === prevPath) nextLocation.action = _Actions.REPLACE;\n        }\n\n        if (finishTransition(nextLocation) !== false) updateLocation(nextLocation);\n      } else if (location && nextLocation.action === _Actions.POP) {\n        var prevIndex = allKeys.indexOf(location.key);\n        var nextIndex = allKeys.indexOf(nextLocation.key);\n\n        if (prevIndex !== -1 && nextIndex !== -1) go(prevIndex - nextIndex); // Restore the URL.\n      }\n    });\n  }\n\n  function push(location) {\n    transitionTo(createLocation(location, _Actions.PUSH, createKey()));\n  }\n\n  function replace(location) {\n    transitionTo(createLocation(location, _Actions.REPLACE, createKey()));\n  }\n\n  function goBack() {\n    go(-1);\n  }\n\n  function goForward() {\n    go(1);\n  }\n\n  function createKey() {\n    return createRandomKey(keyLength);\n  }\n\n  function createPath(location) {\n    if (location == null || typeof location === 'string') return location;\n\n    var pathname = location.pathname;\n    var search = location.search;\n    var hash = location.hash;\n\n    var result = pathname;\n\n    if (search) result += search;\n\n    if (hash) result += hash;\n\n    return result;\n  }\n\n  function createHref(location) {\n    return createPath(location);\n  }\n\n  function createLocation(location, action) {\n    var key = arguments.length <= 2 || arguments[2] === undefined ? createKey() : arguments[2];\n\n    if (typeof action === 'object') {\n      //warning(\n      //  false,\n      //  'The state (2nd) argument to history.createLocation is deprecated; use a ' +\n      //  'location descriptor instead'\n      //)\n\n      if (typeof location === 'string') location = _parsePath2['default'](location);\n\n      location = _extends({}, location, { state: action });\n\n      action = key;\n      key = arguments[3] || createKey();\n    }\n\n    return _createLocation3['default'](location, action, key);\n  }\n\n  // deprecated\n  function setState(state) {\n    if (location) {\n      updateLocationState(location, state);\n      updateLocation(location);\n    } else {\n      updateLocationState(getCurrentLocation(), state);\n    }\n  }\n\n  function updateLocationState(location, state) {\n    location.state = _extends({}, location.state, state);\n    saveState(location.key, location.state);\n  }\n\n  // deprecated\n  function registerTransitionHook(hook) {\n    if (transitionHooks.indexOf(hook) === -1) transitionHooks.push(hook);\n  }\n\n  // deprecated\n  function unregisterTransitionHook(hook) {\n    transitionHooks = transitionHooks.filter(function (item) {\n      return item !== hook;\n    });\n  }\n\n  // deprecated\n  function pushState(state, path) {\n    if (typeof path === 'string') path = _parsePath2['default'](path);\n\n    push(_extends({ state: state }, path));\n  }\n\n  // deprecated\n  function replaceState(state, path) {\n    if (typeof path === 'string') path = _parsePath2['default'](path);\n\n    replace(_extends({ state: state }, path));\n  }\n\n  return {\n    listenBefore: listenBefore,\n    listen: listen,\n    transitionTo: transitionTo,\n    push: push,\n    replace: replace,\n    go: go,\n    goBack: goBack,\n    goForward: goForward,\n    createKey: createKey,\n    createPath: createPath,\n    createHref: createHref,\n    createLocation: createLocation,\n\n    setState: _deprecate2['default'](setState, 'setState is deprecated; use location.key to save state instead'),\n    registerTransitionHook: _deprecate2['default'](registerTransitionHook, 'registerTransitionHook is deprecated; use listenBefore instead'),\n    unregisterTransitionHook: _deprecate2['default'](unregisterTransitionHook, 'unregisterTransitionHook is deprecated; use the callback returned from listenBefore instead'),\n    pushState: _deprecate2['default'](pushState, 'pushState is deprecated; use push instead'),\n    replaceState: _deprecate2['default'](replaceState, 'replaceState is deprecated; use replace instead')\n  };\n}\n\nexports['default'] = createHistory;\nmodule.exports = exports['default'];\n},{\"./Actions\":33,\"./AsyncUtils\":34,\"./createLocation\":41,\"./deprecate\":42,\"./parsePath\":44,\"./runTransitionHook\":45,\"deep-equal\":30}],41:[function(require,module,exports){\n//import warning from 'warning'\n'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _Actions = require('./Actions');\n\nvar _parsePath = require('./parsePath');\n\nvar _parsePath2 = _interopRequireDefault(_parsePath);\n\nfunction createLocation() {\n  var location = arguments.length <= 0 || arguments[0] === undefined ? '/' : arguments[0];\n  var action = arguments.length <= 1 || arguments[1] === undefined ? _Actions.POP : arguments[1];\n  var key = arguments.length <= 2 || arguments[2] === undefined ? null : arguments[2];\n\n  var _fourthArg = arguments.length <= 3 || arguments[3] === undefined ? null : arguments[3];\n\n  if (typeof location === 'string') location = _parsePath2['default'](location);\n\n  if (typeof action === 'object') {\n    //warning(\n    //  false,\n    //  'The state (2nd) argument to createLocation is deprecated; use a ' +\n    //  'location descriptor instead'\n    //)\n\n    location = _extends({}, location, { state: action });\n\n    action = key || _Actions.POP;\n    key = _fourthArg;\n  }\n\n  var pathname = location.pathname || '/';\n  var search = location.search || '';\n  var hash = location.hash || '';\n  var state = location.state || null;\n\n  return {\n    pathname: pathname,\n    search: search,\n    hash: hash,\n    state: state,\n    action: action,\n    key: key\n  };\n}\n\nexports['default'] = createLocation;\nmodule.exports = exports['default'];\n},{\"./Actions\":33,\"./parsePath\":44}],42:[function(require,module,exports){\n//import warning from 'warning'\n\n\"use strict\";\n\nexports.__esModule = true;\nfunction deprecate(fn) {\n  return fn;\n  //return function () {\n  //  warning(false, '[history] ' + message)\n  //  return fn.apply(this, arguments)\n  //}\n}\n\nexports[\"default\"] = deprecate;\nmodule.exports = exports[\"default\"];\n},{}],43:[function(require,module,exports){\n\"use strict\";\n\nexports.__esModule = true;\nfunction extractPath(string) {\n  var match = string.match(/^https?:\\/\\/[^\\/]*/);\n\n  if (match == null) return string;\n\n  return string.substring(match[0].length);\n}\n\nexports[\"default\"] = extractPath;\nmodule.exports = exports[\"default\"];\n},{}],44:[function(require,module,exports){\n(function (process){\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _extractPath = require('./extractPath');\n\nvar _extractPath2 = _interopRequireDefault(_extractPath);\n\nfunction parsePath(path) {\n  var pathname = _extractPath2['default'](path);\n  var search = '';\n  var hash = '';\n\n  process.env.NODE_ENV !== 'production' ? _warning2['default'](path === pathname, 'A path must be pathname + search + hash only, not a fully qualified URL like \"%s\"', path) : undefined;\n\n  var hashIndex = pathname.indexOf('#');\n  if (hashIndex !== -1) {\n    hash = pathname.substring(hashIndex);\n    pathname = pathname.substring(0, hashIndex);\n  }\n\n  var searchIndex = pathname.indexOf('?');\n  if (searchIndex !== -1) {\n    search = pathname.substring(searchIndex);\n    pathname = pathname.substring(0, searchIndex);\n  }\n\n  if (pathname === '') pathname = '/';\n\n  return {\n    pathname: pathname,\n    search: search,\n    hash: hash\n  };\n}\n\nexports['default'] = parsePath;\nmodule.exports = exports['default'];\n}).call(this,require('_process'))\n},{\"./extractPath\":43,\"_process\":1,\"warning\":47}],45:[function(require,module,exports){\n(function (process){\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction runTransitionHook(hook, location, callback) {\n  var result = hook(location, callback);\n\n  if (hook.length < 2) {\n    // Assume the hook runs synchronously and automatically\n    // call the callback with the return value.\n    callback(result);\n  } else {\n    process.env.NODE_ENV !== 'production' ? _warning2['default'](result === undefined, 'You should not \"return\" in a transition hook with a callback argument; call the callback instead') : undefined;\n  }\n}\n\nexports['default'] = runTransitionHook;\nmodule.exports = exports['default'];\n}).call(this,require('_process'))\n},{\"_process\":1,\"warning\":47}],46:[function(require,module,exports){\n/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n  if (\"production\" !== 'production') {\n    if (format === undefined) {\n      throw new Error('invariant requires an error message argument');\n    }\n  }\n\n  if (!condition) {\n    var error;\n    if (format === undefined) {\n      error = new Error(\n        'Minified exception occurred; use the non-minified dev environment ' +\n        'for the full error message and additional helpful warnings.'\n      );\n    } else {\n      var args = [a, b, c, d, e, f];\n      var argIndex = 0;\n      error = new Error(\n        format.replace(/%s/g, function() { return args[argIndex++]; })\n      );\n      error.name = 'Invariant Violation';\n    }\n\n    error.framesToPop = 1; // we don't care about invariant's own frame\n    throw error;\n  }\n};\n\nmodule.exports = invariant;\n\n},{}],47:[function(require,module,exports){\n/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = function() {};\n\nif (\"production\" !== 'production') {\n  warning = function(condition, format, args) {\n    var len = arguments.length;\n    args = new Array(len > 2 ? len - 2 : 0);\n    for (var key = 2; key < len; key++) {\n      args[key - 2] = arguments[key];\n    }\n    if (format === undefined) {\n      throw new Error(\n        '`warning(condition, format, ...args)` requires a warning ' +\n        'message argument'\n      );\n    }\n\n    if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n      throw new Error(\n        'The warning format should be able to uniquely identify this ' +\n        'warning. Please, use a more descriptive format than: ' + format\n      );\n    }\n\n    if (!condition) {\n      var argIndex = 0;\n      var message = 'Warning: ' +\n        format.replace(/%s/g, function() {\n          return args[argIndex++];\n        });\n      if (typeof console !== 'undefined') {\n        console.error(message);\n      }\n      try {\n        // This error was thrown as a convenience so that you can use this stack\n        // to find the callsite that caused this warning to fire.\n        throw new Error(message);\n      } catch(x) {}\n    }\n  };\n}\n\nmodule.exports = warning;\n\n},{}],48:[function(require,module,exports){\n\"use strict\";\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.select = select;\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    _classCallCheck(this, _class);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments));\n  }\n\n  _createClass(_class, [{\n    key: \"refresh\",\n    value: function refresh() {\n      window.location.reload();\n    }\n  }, {\n    key: \"getMessage\",\n    value: function getMessage() {\n      if (this.props.signedIn) {\n        return interpolate(gettext(\"You have signed in as %(username)s. Please refresh the page before continuing.\"), { username: this.props.signedIn.username }, true);\n      } else if (this.props.signedOut) {\n        return interpolate(gettext(\"%(username)s, you have been signed out. Please refresh the page before continuing.\"), { username: this.props.user.username }, true);\n      }\n    }\n  }, {\n    key: \"getClassName\",\n    value: function getClassName() {\n      if (this.props.signedIn || this.props.signedOut) {\n        return \"auth-message show\";\n      } else {\n        return \"auth-message\";\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        \"div\",\n        { className: this.getClassName() },\n        _react2.default.createElement(\n          \"div\",\n          { className: \"container\" },\n          _react2.default.createElement(\n            \"p\",\n            { className: \"lead\" },\n            this.getMessage()\n          ),\n          _react2.default.createElement(\n            \"p\",\n            null,\n            _react2.default.createElement(\n              \"button\",\n              { type: \"button\", className: \"btn btn-default\",\n                onClick: this.refresh },\n              gettext(\"Reload page\")\n            ),\n            \" \",\n            _react2.default.createElement(\n              \"span\",\n              { className: \"hidden-xs hidden-sm text-muted\" },\n              gettext(\"or press F5 key.\")\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\nfunction select(state) {\n  return {\n    user: state.auth.user,\n    signedIn: state.auth.signedIn,\n    signedOut: state.auth.signedOut\n  };\n}\n\n},{\"react\":\"react\"}],49:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar BASE_URL = $('base').attr('href') + 'user-avatar/';\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    _classCallCheck(this, _class);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments));\n  }\n\n  _createClass(_class, [{\n    key: 'getSrc',\n    value: function getSrc() {\n      var size = this.props.size || 100; // jshint ignore:line\n      var url = BASE_URL;\n\n      if (this.props.user && this.props.user.id) {\n        // just avatar hash, size and user id\n        url += this.props.user.avatar_hash + '/' + size + '/' + this.props.user.id + '.png';\n      } else {\n        // just append avatar size to file to produce no-avatar placeholder\n        url += size + '.png';\n      }\n\n      return url;\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement('img', { src: this.getSrc(),\n        className: this.props.className || 'user-avatar',\n        title: gettext(\"User avatar\") });\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"react\":\"react\"}],50:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    _classCallCheck(this, _class);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments));\n  }\n\n  _createClass(_class, [{\n    key: 'getReasonMessage',\n    value: function getReasonMessage() {\n      /* jshint ignore:start */\n      if (this.props.message.html) {\n        return _react2.default.createElement('div', { className: 'lead',\n          dangerouslySetInnerHTML: { __html: this.props.message.html } });\n      } else {\n        return _react2.default.createElement(\n          'p',\n          { className: 'lead' },\n          this.props.message.plain\n        );\n      }\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'getExpirationMessage',\n    value: function getExpirationMessage() {\n      if (this.props.expires) {\n        if (this.props.expires.isAfter((0, _moment2.default)())) {\n          return interpolate(gettext(\"This ban expires %(expires_on)s.\"), { 'expires_on': this.props.expires.fromNow() }, true);\n        } else {\n          return gettext(\"This ban has expired.\");\n        }\n      } else {\n        return gettext(\"This ban is permanent.\");\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'page page-error page-error-banned' },\n        _react2.default.createElement(\n          'div',\n          { className: 'container' },\n          _react2.default.createElement(\n            'div',\n            { className: 'message-panel' },\n            _react2.default.createElement(\n              'div',\n              { className: 'message-icon' },\n              _react2.default.createElement(\n                'span',\n                { className: 'material-icon' },\n                'highlight_off'\n              )\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'message-body' },\n              this.getReasonMessage(),\n              _react2.default.createElement(\n                'p',\n                { className: 'message-footnote' },\n                this.getExpirationMessage()\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"moment\":\"moment\",\"react\":\"react\"}],51:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _loader = require('./loader');\n\nvar _loader2 = _interopRequireDefault(_loader);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// jshint ignore:line\n\nvar Button = function (_React$Component) {\n  _inherits(Button, _React$Component);\n\n  function Button() {\n    _classCallCheck(this, Button);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(Button).apply(this, arguments));\n  }\n\n  _createClass(Button, [{\n    key: 'render',\n    value: function render() {\n      var className = 'btn ' + this.props.className;\n      var disabled = this.props.disabled;\n\n      if (this.props.loading) {\n        className += ' btn-loading';\n        disabled = true;\n      }\n\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'button',\n        { type: this.props.onClick ? 'button' : 'submit',\n          className: className,\n          disabled: disabled,\n          onClick: this.props.onClick },\n        this.props.children,\n        this.props.loading ? _react2.default.createElement(_loader2.default, null) : null\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return Button;\n}(_react2.default.Component);\n\nexports.default = Button;\n\nButton.defaultProps = {\n  className: \"btn-default\",\n\n  type: \"submit\",\n\n  loading: false,\n  disabled: false,\n\n  onClick: null\n};\n\n},{\"./loader\":60,\"react\":\"react\"}],52:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _avatar = require('../avatar');\n\nvar _avatar2 = _interopRequireDefault(_avatar);\n\nvar _button = require('../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _ajax = require('../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _snackbar = require('../../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\n// jshint ignore:line\n\nvar BASE_URL = $('base').attr('href') + 'user-avatar';\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.cropAvatar = function () {\n      if (_this.state.isLoading) {\n        return false;\n      }\n\n      _this.setState({\n        'isLoading': true\n      });\n\n      var avatarType = _this.props.upload ? 'crop_tmp' : 'crop_org';\n      var cropit = $('.crop-form');\n\n      _ajax2.default.post(_this.props.user.api_url.avatar, {\n        'avatar': avatarType,\n        'crop': {\n          'offset': cropit.cropit('offset'),\n          'zoom': cropit.cropit('zoom')\n        }\n      }).then(function (data) {\n        _this.props.onComplete(data.avatar_hash, data.options);\n        _snackbar2.default.success(data.detail);\n      }, function (rejection) {\n        if (rejection.status === 400) {\n          _snackbar2.default.error(rejection.detail);\n          _this.setState({\n            'isLoading': false\n          });\n        } else {\n          _this.props.showError(rejection);\n        }\n      });\n    };\n\n    _this.state = {\n      'isLoading': false\n    };\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'getAvatarSize',\n    value: function getAvatarSize() {\n      if (this.props.upload) {\n        return this.props.options.crop_tmp.size;\n      } else {\n        return this.props.options.crop_org.size;\n      }\n    }\n  }, {\n    key: 'getAvatarSecret',\n    value: function getAvatarSecret() {\n      if (this.props.upload) {\n        return this.props.options.crop_tmp.secret;\n      } else {\n        return this.props.options.crop_org.secret;\n      }\n    }\n  }, {\n    key: 'getAvatarHash',\n    value: function getAvatarHash() {\n      return this.props.upload || this.props.user.avatar_hash;\n    }\n  }, {\n    key: 'getImagePath',\n    value: function getImagePath() {\n      return [BASE_URL, this.getAvatarSecret() + ':' + this.getAvatarHash(), this.props.user.id + '.png'].join('/');\n    }\n  }, {\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      var _this2 = this;\n\n      var cropit = $('.crop-form');\n      cropit.width(this.getAvatarSize());\n\n      cropit.cropit({\n        'width': this.getAvatarSize(),\n        'height': this.getAvatarSize(),\n        'imageState': {\n          'src': this.getImagePath()\n        },\n        onImageLoaded: function onImageLoaded() {\n          if (_this2.props.upload) {\n            // center uploaded image\n            var zoomLevel = cropit.cropit('zoom');\n            var imageSize = cropit.cropit('imageSize');\n\n            // is it wider than taller?\n            if (imageSize.width > imageSize.height) {\n              var displayedWidth = imageSize.width * zoomLevel;\n              var offsetX = (displayedWidth - _this2.getAvatarSize()) / -2;\n\n              cropit.cropit('offset', {\n                'x': offsetX,\n                'y': 0\n              });\n            } else if (imageSize.width < imageSize.height) {\n              var displayedHeight = imageSize.height * zoomLevel;\n              var offsetY = (displayedHeight - _this2.getAvatarSize()) / -2;\n\n              cropit.cropit('offset', {\n                'x': 0,\n                'y': offsetY\n              });\n            }\n          } else {\n            // use preserved crop\n            var crop = _this2.props.options.crop_org.crop;\n            if (crop) {\n              cropit.cropit('zoom', crop.zoom);\n              cropit.cropit('offset', {\n                'x': crop.x,\n                'y': crop.y\n              });\n            }\n          }\n        }\n      });\n    }\n  }, {\n    key: 'componentWillUnmount',\n    value: function componentWillUnmount() {\n      $('.crop-form').cropit('disable');\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'render',\n\n    /* jshint ignore:end */\n\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        null,\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-body modal-avatar-crop' },\n          _react2.default.createElement(\n            'div',\n            { className: 'crop-form' },\n            _react2.default.createElement('div', { className: 'cropit-image-preview' }),\n            _react2.default.createElement('input', { type: 'range', className: 'cropit-image-zoom-input' })\n          )\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-footer' },\n          _react2.default.createElement(\n            'div',\n            { className: 'col-md-6 col-md-offset-3' },\n            _react2.default.createElement(\n              _button2.default,\n              { onClick: this.cropAvatar,\n                loading: this.state.isLoading,\n                className: 'btn-primary btn-block' },\n              this.props.upload ? gettext(\"Set avatar\") : gettext(\"Crop image\")\n            ),\n            _react2.default.createElement(\n              _button2.default,\n              { onClick: this.props.showIndex,\n                disabled: this.state.isLoading,\n                className: 'btn-default btn-block' },\n              gettext(\"Cancel\")\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../services/ajax\":91,\"../../services/snackbar\":99,\"../avatar\":49,\"../button\":51,\"react\":\"react\"}],53:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Gallery = exports.GalleryItem = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _button = require('../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _ajax = require('../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _snackbar = require('../../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _batch = require('../../utils/batch');\n\nvar _batch2 = _interopRequireDefault(_batch);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\n// jshint ignore:line\n\nvar GalleryItem = exports.GalleryItem = function (_React$Component) {\n  _inherits(GalleryItem, _React$Component);\n\n  function GalleryItem() {\n    var _Object$getPrototypeO;\n\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, GalleryItem);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_Object$getPrototypeO = Object.getPrototypeOf(GalleryItem)).call.apply(_Object$getPrototypeO, [this].concat(args))), _this), _this.select = function () {\n      _this.props.select(_this.props.image);\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n  /* jshint ignore:start */\n\n  _createClass(GalleryItem, [{\n    key: 'getClassName',\n\n    /* jshint ignore:end */\n\n    value: function getClassName() {\n      if (this.props.selection === this.props.image) {\n        if (this.props.disabled) {\n          return 'btn btn-avatar btn-disabled avatar-selected';\n        } else {\n          return 'btn btn-avatar avatar-selected';\n        }\n      } else if (this.props.disabled) {\n        return 'btn btn-avatar btn-disabled';\n      } else {\n        return 'btn btn-avatar';\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'button',\n        { type: 'button',\n          className: this.getClassName(),\n          disabled: this.props.disabled,\n          onClick: this.select },\n        _react2.default.createElement('img', { src: _index2.default.get('MEDIA_URL') + this.props.image })\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return GalleryItem;\n}(_react2.default.Component);\n\nvar Gallery = exports.Gallery = function (_React$Component2) {\n  _inherits(Gallery, _React$Component2);\n\n  function Gallery() {\n    _classCallCheck(this, Gallery);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(Gallery).apply(this, arguments));\n  }\n\n  _createClass(Gallery, [{\n    key: 'render',\n    value: function render() {\n      var _this3 = this;\n\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'avatars-gallery' },\n        _react2.default.createElement(\n          'h3',\n          null,\n          this.props.name\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'avatars-gallery-images' },\n          (0, _batch2.default)(this.props.images, 4, null).map(function (row, i) {\n            return _react2.default.createElement(\n              'div',\n              { className: 'row', key: i },\n              row.map(function (item, i) {\n                return _react2.default.createElement(\n                  'div',\n                  { className: 'col-xs-3', key: i },\n                  item ? _react2.default.createElement(GalleryItem, { image: item,\n                    disabled: _this3.props.disabled,\n                    select: _this3.props.select,\n                    selection: _this3.props.selection }) : _react2.default.createElement('div', { className: 'blank-avatar' })\n                );\n              })\n            );\n          })\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return Gallery;\n}(_react2.default.Component);\n\nvar _class = function (_React$Component3) {\n  _inherits(_class, _React$Component3);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this4 = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this4.select = function (image) {\n      _this4.setState({\n        selection: image\n      });\n    };\n\n    _this4.save = function () {\n      if (_this4.state.isLoading) {\n        return false;\n      }\n\n      _this4.setState({\n        'isLoading': true\n      });\n\n      _ajax2.default.post(_this4.props.user.api_url.avatar, {\n        avatar: 'galleries',\n        image: _this4.state.selection\n      }).then(function (response) {\n        _this4.setState({\n          'isLoading': false\n        });\n\n        _snackbar2.default.success(response.detail);\n        _this4.props.onComplete(response.avatar_hash, response.options);\n      }, function (rejection) {\n        if (rejection.status === 400) {\n          _snackbar2.default.error(rejection.detail);\n          _this4.setState({\n            'isLoading': false\n          });\n        } else {\n          _this4.props.showError(rejection);\n        }\n      });\n    };\n\n    _this4.state = {\n      'selection': null,\n      'isLoading': false\n    };\n    return _this4;\n  }\n\n  /* jshint ignore:start */\n\n  _createClass(_class, [{\n    key: 'render',\n\n    /* jshint ignore:end */\n\n    value: function render() {\n      var _this5 = this;\n\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        null,\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-body modal-avatar-gallery' },\n          this.props.options.galleries.map(function (item, i) {\n            return _react2.default.createElement(Gallery, { name: item.name,\n              images: item.images,\n              selection: _this5.state.selection,\n              disabled: _this5.state.isLoading,\n              select: _this5.select,\n              key: i });\n          })\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-footer' },\n          _react2.default.createElement(\n            'div',\n            { className: 'row' },\n            _react2.default.createElement(\n              'div',\n              { className: 'col-md-6 col-md-offset-3' },\n              _react2.default.createElement(\n                _button2.default,\n                { onClick: this.save,\n                  loading: this.state.isLoading,\n                  disabled: !this.state.selection,\n                  className: 'btn-primary btn-block' },\n                this.state.selection ? gettext(\"Save choice\") : gettext(\"Select avatar\")\n              ),\n              _react2.default.createElement(\n                _button2.default,\n                { onClick: this.props.showIndex,\n                  disabled: this.state.isLoading,\n                  className: 'btn-default btn-block' },\n                gettext(\"Cancel\")\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../index\":85,\"../../services/ajax\":91,\"../../services/snackbar\":99,\"../../utils/batch\":103,\"../button\":51,\"react\":\"react\"}],54:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _avatar = require('../avatar');\n\nvar _avatar2 = _interopRequireDefault(_avatar);\n\nvar _button = require('../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _loader = require('../loader');\n\nvar _loader2 = _interopRequireDefault(_loader);\n\nvar _ajax = require('../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _snackbar = require('../../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.setGravatar = function () {\n      _this.callApi('gravatar');\n    };\n\n    _this.setGenerated = function () {\n      _this.callApi('generated');\n    };\n\n    _this.state = {\n      'isLoading': false\n    };\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'callApi',\n    value: function callApi(avatarType) {\n      var _this2 = this;\n\n      if (this.state.isLoading) {\n        return false;\n      }\n\n      this.setState({\n        'isLoading': true\n      });\n\n      _ajax2.default.post(this.props.user.api_url.avatar, {\n        avatar: avatarType\n      }).then(function (response) {\n        _this2.setState({\n          'isLoading': false\n        });\n\n        _snackbar2.default.success(response.detail);\n        _this2.props.onComplete(response.avatar_hash, response.options);\n      }, function (rejection) {\n        if (rejection.status === 400) {\n          _snackbar2.default.error(rejection.detail);\n          _this2.setState({\n            'isLoading': false\n          });\n        } else {\n          _this2.props.showError(rejection);\n        }\n      });\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'getGravatarButton',\n\n    /* jshint ignore:end */\n\n    value: function getGravatarButton() {\n      if (this.props.options.gravatar) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          _button2.default,\n          { onClick: this.setGravatar,\n            disabled: this.state.isLoading,\n            className: 'btn-default btn-block btn-avatar-gravatar' },\n          gettext(\"Download my Gravatar\")\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getCropButton',\n    value: function getCropButton() {\n      if (this.props.options.crop_org) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          _button2.default,\n          { onClick: this.props.showCrop,\n            disabled: this.state.isLoading,\n            className: 'btn-default btn-block btn-avatar-crop' },\n          gettext(\"Re-crop uploaded image\")\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getUploadButton',\n    value: function getUploadButton() {\n      if (this.props.options.upload) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          _button2.default,\n          { onClick: this.props.showUpload,\n            disabled: this.state.isLoading,\n            className: 'btn-default btn-block btn-avatar-upload' },\n          gettext(\"Upload new image\")\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getGalleryButton',\n    value: function getGalleryButton() {\n      if (this.props.options.galleries) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          _button2.default,\n          { onClick: this.props.showGallery,\n            disabled: this.state.isLoading,\n            className: 'btn-default btn-block btn-avatar-gallery' },\n          gettext(\"Pick avatar from gallery\")\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getAvatarPreview',\n    value: function getAvatarPreview() {\n      if (this.state.isLoading) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'div',\n          { className: 'avatar-preview preview-loading' },\n          _react2.default.createElement(_avatar2.default, { user: this.props.user, size: '200' }),\n          _react2.default.createElement(_loader2.default, null)\n        );\n        /* jshint ignore:end */\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(\n            'div',\n            { className: 'avatar-preview' },\n            _react2.default.createElement(_avatar2.default, { user: this.props.user, size: '200' })\n          );\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'modal-body modal-avatar-index' },\n        _react2.default.createElement(\n          'div',\n          { className: 'row' },\n          _react2.default.createElement(\n            'div',\n            { className: 'col-md-5' },\n            this.getAvatarPreview()\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'col-md-7' },\n            this.getGravatarButton(),\n            _react2.default.createElement(\n              _button2.default,\n              { onClick: this.setGenerated,\n                disabled: this.state.isLoading,\n                className: 'btn-default btn-block btn-avatar-generate' },\n              gettext(\"Generate my individual avatar\")\n            ),\n            this.getCropButton(),\n            this.getUploadButton(),\n            this.getGalleryButton()\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../services/ajax\":91,\"../../services/snackbar\":99,\"../avatar\":49,\"../button\":51,\"../loader\":60,\"react\":\"react\"}],55:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.ChangeAvatarError = undefined;\nexports.select = select;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _index = require('./index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _crop = require('./crop');\n\nvar _crop2 = _interopRequireDefault(_crop);\n\nvar _upload = require('./upload');\n\nvar _upload2 = _interopRequireDefault(_upload);\n\nvar _gallery = require('./gallery');\n\nvar _gallery2 = _interopRequireDefault(_gallery);\n\nvar _modalLoader = require('../modal-loader');\n\nvar _modalLoader2 = _interopRequireDefault(_modalLoader);\n\nvar _users = require('../../reducers/users');\n\nvar _ajax = require('../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _store = require('../../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\n// jshint ignore:line\n\nvar ChangeAvatarError = exports.ChangeAvatarError = function (_React$Component) {\n  _inherits(ChangeAvatarError, _React$Component);\n\n  function ChangeAvatarError() {\n    _classCallCheck(this, ChangeAvatarError);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(ChangeAvatarError).apply(this, arguments));\n  }\n\n  _createClass(ChangeAvatarError, [{\n    key: 'getErrorReason',\n    value: function getErrorReason() {\n      if (this.props.reason) {\n        /* jshint ignore:start */\n        return _react2.default.createElement('p', { dangerouslySetInnerHTML: { __html: this.props.reason } });\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'modal-body' },\n        _react2.default.createElement(\n          'div',\n          { className: 'message-icon' },\n          _react2.default.createElement(\n            'span',\n            { className: 'material-icon' },\n            'remove_circle_outline'\n          )\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'message-body' },\n          _react2.default.createElement(\n            'p',\n            { className: 'lead' },\n            this.props.message\n          ),\n          this.getErrorReason()\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return ChangeAvatarError;\n}(_react2.default.Component);\n\nvar _class = function (_React$Component2) {\n  _inherits(_class, _React$Component2);\n\n  function _class() {\n    var _Object$getPrototypeO;\n\n    var _temp, _this2, _ret;\n\n    _classCallCheck(this, _class);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this2 = _possibleConstructorReturn(this, (_Object$getPrototypeO = Object.getPrototypeOf(_class)).call.apply(_Object$getPrototypeO, [this].concat(args))), _this2), _this2.showError = function (error) {\n      _this2.setState({\n        error: error\n      });\n    }, _this2.showIndex = function () {\n      _this2.setState({\n        'component': _index2.default\n      });\n    }, _this2.showUpload = function () {\n      _this2.setState({\n        'component': _upload2.default\n      });\n    }, _this2.showCrop = function () {\n      _this2.setState({\n        'component': _crop2.default\n      });\n    }, _this2.showGallery = function () {\n      _this2.setState({\n        'component': _gallery2.default\n      });\n    }, _this2.completeFlow = function (avatarHash, options) {\n      _store2.default.dispatch((0, _users.updateAvatar)(_this2.props.user, avatarHash));\n\n      _this2.setState({\n        'component': _index2.default,\n        options: options\n      });\n    }, _temp), _possibleConstructorReturn(_this2, _ret);\n  }\n\n  _createClass(_class, [{\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      var _this3 = this;\n\n      _ajax2.default.get(this.props.user.api_url.avatar).then(function (options) {\n        _this3.setState({\n          'component': _index2.default,\n          'options': options,\n          'error': null\n        });\n      }, function (rejection) {\n        _this3.showError(rejection);\n      });\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'getBody',\n\n    /* jshint ignore:end */\n\n    value: function getBody() {\n      if (this.state) {\n        if (this.state.error) {\n          /* jshint ignore:start */\n          return _react2.default.createElement(ChangeAvatarError, { message: this.state.error.detail,\n            reason: this.state.error.reason });\n          /* jshint ignore:end */\n        } else {\n            /* jshint ignore:start */\n            return _react2.default.createElement(this.state.component, { options: this.state.options,\n              user: this.props.user,\n              onComplete: this.completeFlow,\n              showError: this.showError,\n              showIndex: this.showIndex,\n              showCrop: this.showCrop,\n              showUpload: this.showUpload,\n              showGallery: this.showGallery });\n            /* jshint ignore:end */\n          }\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(_modalLoader2.default, null);\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'getClassName',\n    value: function getClassName() {\n      if (this.state && this.state.error) {\n        return \"modal-dialog modal-message modal-change-avatar\";\n      } else {\n        return \"modal-dialog modal-change-avatar\";\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: this.getClassName(),\n          role: 'document' },\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-content' },\n          _react2.default.createElement(\n            'div',\n            { className: 'modal-header' },\n            _react2.default.createElement(\n              'button',\n              { type: 'button', className: 'close', 'data-dismiss': 'modal',\n                'aria-label': gettext(\"Close\") },\n              _react2.default.createElement(\n                'span',\n                { 'aria-hidden': 'true' },\n                '×'\n              )\n            ),\n            _react2.default.createElement(\n              'h4',\n              { className: 'modal-title' },\n              gettext(\"Change your avatar\")\n            )\n          ),\n          this.getBody()\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\nfunction select(state) {\n  return {\n    'user': state.auth.user\n  };\n}\n\n},{\"../../reducers/users\":90,\"../../services/ajax\":91,\"../../services/store\":100,\"../modal-loader\":61,\"./crop\":52,\"./gallery\":53,\"./index\":54,\"./upload\":56,\"react\":\"react\"}],56:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _crop = require('./crop');\n\nvar _crop2 = _interopRequireDefault(_crop);\n\nvar _button = require('../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _ajax = require('../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _snackbar = require('../../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _fileSize = require('../../utils/file-size');\n\nvar _fileSize2 = _interopRequireDefault(_fileSize);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.pickFile = function () {\n      document.getElementById('avatar-hidden-upload').click();\n    };\n\n    _this.uploadFile = function () {\n      var image = document.getElementById('avatar-hidden-upload').files[0];\n\n      var validationError = _this.validateFile(image);\n      if (validationError) {\n        _snackbar2.default.error(validationError);\n        return;\n      }\n\n      _this.setState({\n        image: image,\n        'preview': URL.createObjectURL(image),\n        'progress': 0\n      });\n\n      var data = new FormData();\n      data.append('avatar', 'upload');\n      data.append('image', image);\n\n      _ajax2.default.upload(_this.props.user.api_url.avatar, data, function (progress) {\n        _this.setState({\n          progress: progress\n        });\n      }).then(function (data) {\n        _this.setState({\n          'options': data.options,\n          'uploaded': data.detail\n        });\n        _snackbar2.default.info(gettext(\"Your image has been uploaded and you may now crop it.\"));\n      }, function (rejection) {\n        if (rejection.status === 400) {\n          _snackbar2.default.error(rejection.detail);\n          _this.setState({\n            'isLoading': false,\n            'image': null,\n            'progress': 0\n          });\n        } else {\n          _this.props.showError(rejection);\n        }\n      });\n    };\n\n    _this.state = {\n      'image': null,\n      'preview': null,\n      'progress': 0,\n      'uploaded': null\n    };\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'validateFile',\n    value: function validateFile(image) {\n      if (image.size > this.props.options.upload.limit) {\n        return interpolate(gettext(\"Selected file is too big. (%(filesize)s)\"), {\n          'filesize': (0, _fileSize2.default)(image.size)\n        }, true);\n      }\n\n      var invalidTypeMsg = gettext(\"Selected file type is not supported.\");\n      if (this.props.options.upload.allowed_mime_types.indexOf(image.type) === -1) {\n        return invalidTypeMsg;\n      }\n\n      var extensionFound = false;\n      var loweredFilename = image.name.toLowerCase();\n      this.props.options.upload.allowed_extensions.map(function (extension) {\n        if (loweredFilename.substr(extension.length * -1) === extension) {\n          extensionFound = true;\n        }\n      });\n\n      if (!extensionFound) {\n        return invalidTypeMsg;\n      }\n\n      return false;\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'getUploadRequirements',\n\n    /* jshint ignore:end */\n\n    value: function getUploadRequirements(options) {\n      var extensions = options.allowed_extensions.map(function (extension) {\n        return extension.substr(1);\n      });\n\n      return interpolate(gettext(\"%(files)s files smaller than %(limit)s\"), {\n        'files': extensions.join(', '),\n        'limit': (0, _fileSize2.default)(options.limit)\n      }, true);\n    }\n  }, {\n    key: 'getUploadButton',\n    value: function getUploadButton() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'modal-body modal-avatar-upload' },\n        _react2.default.createElement(\n          _button2.default,\n          { className: 'btn-pick-file',\n            onClick: this.pickFile },\n          _react2.default.createElement(\n            'div',\n            { className: 'material-icon' },\n            'input'\n          ),\n          gettext(\"Select file\")\n        ),\n        _react2.default.createElement(\n          'p',\n          { className: 'text-muted' },\n          this.getUploadRequirements(this.props.options.upload)\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'getUploadProgressLabel',\n    value: function getUploadProgressLabel() {\n      return interpolate(gettext(\"%(progress)s % complete\"), {\n        'progress': this.state.progress\n      }, true);\n    }\n  }, {\n    key: 'getUploadProgress',\n    value: function getUploadProgress() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'modal-body modal-avatar-upload' },\n        _react2.default.createElement(\n          'div',\n          { className: 'upload-progress' },\n          _react2.default.createElement('img', { src: this.state.preview }),\n          _react2.default.createElement(\n            'div',\n            { className: 'progress' },\n            _react2.default.createElement(\n              'div',\n              { className: 'progress-bar', role: 'progressbar',\n                'aria-valuenow': '{this.state.progress}',\n                'aria-valuemin': '0', 'aria-valuemax': '100',\n                style: { width: this.state.progress + '%' } },\n              _react2.default.createElement(\n                'span',\n                { className: 'sr-only' },\n                this.getUploadProgressLabel()\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'renderUpload',\n    value: function renderUpload() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        null,\n        _react2.default.createElement('input', { type: 'file',\n          id: 'avatar-hidden-upload',\n          className: 'hidden-file-upload',\n          onChange: this.uploadFile }),\n        this.state.image ? this.getUploadProgress() : this.getUploadButton(),\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-footer' },\n          _react2.default.createElement(\n            'div',\n            { className: 'col-md-6 col-md-offset-3' },\n            _react2.default.createElement(\n              _button2.default,\n              { onClick: this.props.showIndex,\n                disabled: !!this.state.image,\n                className: 'btn-default btn-block' },\n              gettext(\"Cancel\")\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'renderCrop',\n    value: function renderCrop() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(_crop2.default, { options: this.state.options,\n        user: this.props.user,\n        upload: this.state.uploaded,\n        onComplete: this.props.onComplete,\n        showError: this.props.showError,\n        showIndex: this.props.showIndex });\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return this.state.uploaded ? this.renderCrop() : this.renderUpload();\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../services/ajax\":91,\"../../services/snackbar\":99,\"../../utils/file-size\":104,\"../button\":51,\"./crop\":52,\"react\":\"react\"}],57:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    _classCallCheck(this, _class);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments));\n  }\n\n  _createClass(_class, [{\n    key: 'isValidated',\n    value: function isValidated() {\n      return typeof this.props.validation !== \"undefined\";\n    }\n  }, {\n    key: 'getClassName',\n    value: function getClassName() {\n      var className = 'form-group';\n      if (this.isValidated()) {\n        className += ' has-feedback';\n        if (this.props.validation === null) {\n          className += ' has-success';\n        } else {\n          className += ' has-error';\n        }\n      }\n      return className;\n    }\n  }, {\n    key: 'getFeedback',\n    value: function getFeedback() {\n      var _this2 = this;\n\n      if (this.props.validation) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'div',\n          { className: 'help-block errors' },\n          this.props.validation.map(function (error, i) {\n            return _react2.default.createElement(\n              'p',\n              { key: _this2.props.for + 'FeedbackItem' + i },\n              error\n            );\n          })\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getFeedbackIcon',\n    value: function getFeedbackIcon() {\n      if (this.isValidated()) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'span',\n          { className: 'material-icon form-control-feedback',\n            'aria-hidden': 'true', key: this.props.for + 'FeedbackIcon' },\n          this.props.validation ? 'clear' : 'check'\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getFeedbackDescription',\n    value: function getFeedbackDescription() {\n      if (this.isValidated()) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'span',\n          { id: this.props.for + '_status', className: 'sr-only' },\n          this.props.validation ? gettext('(error)') : gettext('(success)')\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getHelpText',\n    value: function getHelpText() {\n      if (this.props.helpText) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'p',\n          { className: 'help-block' },\n          this.props.helpText\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: this.getClassName() },\n        _react2.default.createElement(\n          'label',\n          { className: 'control-label ' + (this.props.labelClass || ''),\n            htmlFor: this.props.for || '' },\n          this.props.label + ':'\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: this.props.controlClass || '' },\n          this.props.children,\n          this.getFeedbackIcon(),\n          this.getFeedbackDescription(),\n          this.getFeedback(),\n          this.getHelpText(),\n          this.props.extra || null\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"react\":\"react\"}],58:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _validators = require('../utils/validators');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar validateRequired = (0, _validators.required)();\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    var _Object$getPrototypeO;\n\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, _class);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_Object$getPrototypeO = Object.getPrototypeOf(_class)).call.apply(_Object$getPrototypeO, [this].concat(args))), _this), _this.bindInput = function (name) {\n      return function (event) {\n        var newState = _defineProperty({}, name, event.target.value);\n\n        var formErrors = _this.state.errors || {};\n        formErrors[name] = _this.validateField(name, newState[name]);\n        newState.errors = formErrors;\n\n        _this.setState(newState);\n      };\n    }, _this.handleSubmit = function (event) {\n      // we don't reload page on submissions\n      event.preventDefault();\n      if (_this.state.isLoading) {\n        return;\n      }\n\n      if (_this.clean()) {\n        _this.setState({ isLoading: true });\n        var promise = _this.send();\n\n        if (promise) {\n          promise.then(function (success) {\n            _this.setState({ isLoading: false });\n            _this.handleSuccess(success);\n          }, function (rejection) {\n            _this.setState({ isLoading: false });\n            _this.handleError(rejection);\n          });\n        } else {\n          _this.setState({ isLoading: false });\n        }\n      }\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  _createClass(_class, [{\n    key: 'validate',\n    value: function validate() {\n      var errors = {};\n      if (!this.state.validators) {\n        return errors;\n      }\n\n      var validators = {\n        required: this.state.validators.required || this.state.validators,\n        optional: this.state.validators.optional || {}\n      };\n\n      var validatedFields = [];\n\n      // add required fields to validation\n      for (var name in validators.required) {\n        if (validators.required.hasOwnProperty(name) && validators.required[name]) {\n          validatedFields.push(name);\n        }\n      }\n\n      // add optional fields to validation\n      for (var name in validators.optional) {\n        if (validators.optional.hasOwnProperty(name) && validators.optional[name]) {\n          validatedFields.push(name);\n        }\n      }\n\n      // validate fields values\n      for (var i in validatedFields) {\n        var name = validatedFields[i];\n        var fieldErrors = this.validateField(name, this.state[name]);\n\n        if (fieldErrors === null) {\n          errors[name] = null;\n        } else if (fieldErrors) {\n          errors[name] = fieldErrors;\n        }\n      }\n\n      return errors;\n    }\n  }, {\n    key: 'isValid',\n    value: function isValid() {\n      var errors = this.validate();\n      for (var field in errors) {\n        if (errors.hasOwnProperty(field)) {\n          if (errors[field] !== null) {\n            return false;\n          }\n        }\n      }\n\n      return true;\n    }\n  }, {\n    key: 'validateField',\n    value: function validateField(name, value) {\n      var errors = [];\n      if (!this.state.validators) {\n        return errors;\n      }\n\n      var validators = {\n        required: (this.state.validators.required || this.state.validators)[name],\n        optional: (this.state.validators.optional || {})[name]\n      };\n\n      var requiredError = validateRequired(value) || false;\n\n      if (validators.required) {\n        if (requiredError) {\n          errors = [requiredError];\n        } else {\n          for (var i in validators.required) {\n            var validationError = validators.required[i](value);\n            if (validationError) {\n              errors.push(validationError);\n            }\n          }\n        }\n\n        return errors.length ? errors : null;\n      } else if (requiredError === false && validators.optional) {\n        for (var i in validators.optional) {\n          var validationError = validators.optional[i](value);\n          if (validationError) {\n            errors.push(validationError);\n          }\n        }\n\n        return errors.length ? errors : null;\n      }\n\n      return false; // false === field wasn't validated\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'clean',\n    value: function clean() {\n      return true;\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return null;\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess(success) {\n      return;\n    }\n  }, {\n    key: 'handleError',\n\n    /* jshint ignore:end */\n    value: function handleError(rejection) {\n      return;\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../utils/validators\":109,\"react\":\"react\"}],59:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    _classCallCheck(this, _class);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments));\n  }\n\n  _createClass(_class, [{\n    key: 'isActive',\n    value: function isActive() {\n      if (this.props.path) {\n        return document.location.pathname.indexOf(this.props.path) === 0;\n      } else {\n        return false;\n      }\n    }\n  }, {\n    key: 'getClassName',\n    value: function getClassName() {\n      if (this.isActive()) {\n        return (this.props.className || '') + ' ' + (this.props.activeClassName || 'active');\n      } else {\n        return this.props.className || '';\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      // jshint ignore:start\n      return _react2.default.createElement(\n        'li',\n        { className: this.getClassName() },\n        this.props.children\n      );\n      // jshint ignore:end\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"react\":\"react\"}],60:[function(require,module,exports){\n\"use strict\";\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    _classCallCheck(this, _class);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments));\n  }\n\n  _createClass(_class, [{\n    key: \"render\",\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        \"div\",\n        { className: this.props.className || \"loader\" },\n        _react2.default.createElement(\"div\", { className: \"loader-spinning-wheel\" })\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"react\":\"react\"}],61:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _loader = require('./loader');\n\nvar _loader2 = _interopRequireDefault(_loader);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// jshint ignore:line\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    _classCallCheck(this, _class);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments));\n  }\n\n  _createClass(_class, [{\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'modal-body modal-loader' },\n        _react2.default.createElement(_loader2.default, null)\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"./loader\":60,\"react\":\"react\"}],62:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.UsernameHistory = exports.ChangeUsernameLoading = exports.NoChangesLeft = exports.ChangeUsername = undefined;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _avatar = require('../avatar');\n\nvar _avatar2 = _interopRequireDefault(_avatar);\n\nvar _button = require('../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('../form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _formGroup = require('../form-group');\n\nvar _formGroup2 = _interopRequireDefault(_formGroup);\n\nvar _loader = require('../loader');\n\nvar _loader2 = _interopRequireDefault(_loader);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _usernameHistory = require('../../reducers/username-history');\n\nvar _users = require('../../reducers/users');\n\nvar _ajax = require('../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _pageTitle = require('../../services/page-title');\n\nvar _pageTitle2 = _interopRequireDefault(_pageTitle);\n\nvar _snackbar = require('../../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _store = require('../../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nvar _random = require('../../utils/random');\n\nvar random = _interopRequireWildcard(_random);\n\nvar _validators = require('../../utils/validators');\n\nvar validators = _interopRequireWildcard(_validators);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar ChangeUsername = exports.ChangeUsername = function (_Form) {\n  _inherits(ChangeUsername, _Form);\n\n  function ChangeUsername(props) {\n    _classCallCheck(this, ChangeUsername);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(ChangeUsername).call(this, props));\n\n    _this.state = {\n      username: '',\n\n      validators: {\n        username: [validators.usernameContent(), validators.usernameMinLength({\n          username_length_min: props.options.length_min\n        }), validators.usernameMaxLength({\n          username_length_max: props.options.length_max\n        })]\n      },\n\n      isLoading: false\n    };\n    return _this;\n  }\n\n  _createClass(ChangeUsername, [{\n    key: 'getHelpText',\n    value: function getHelpText() {\n      var phrases = [];\n\n      if (this.props.options.changes_left > 0) {\n        var message = ngettext(\"You can change your username %(changes_left)s more time.\", \"You can change your username %(changes_left)s more times.\", this.props.options.changes_left);\n\n        phrases.push(interpolate(message, {\n          'changes_left': this.props.options.changes_left\n        }, true));\n      }\n\n      if (this.props.user.acl.name_changes_expire > 0) {\n        var message = ngettext(\"Used changes redeem after %(name_changes_expire)s day.\", \"Used changes redeem after %(name_changes_expire)s days.\", this.props.user.acl.name_changes_expire);\n\n        phrases.push(interpolate(message, {\n          'name_changes_expire': this.props.user.acl.name_changes_expire\n        }, true));\n      }\n\n      return phrases.length ? phrases.join(' ') : null;\n    }\n  }, {\n    key: 'clean',\n    value: function clean() {\n      var errors = this.validate();\n      if (errors.username) {\n        _snackbar2.default.error(errors.username[0]);\n        return false;\n      }if (this.state.username.trim() === this.props.user.username) {\n        _snackbar2.default.info(gettext(\"Your new username is same as current one.\"));\n        return false;\n      } else {\n        return true;\n      }\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(this.props.user.api_url.username, {\n        'username': this.state.username\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess(success) {\n      this.setState({\n        'username': ''\n      });\n\n      this.props.complete(success.username, success.slug, success.options);\n    }\n  }, {\n    key: 'handleError',\n    value: function handleError(rejection) {\n      _snackbar2.default.apiError(rejection);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'form',\n        { onSubmit: this.handleSubmit, className: 'form-horizontal' },\n        _react2.default.createElement(\n          'div',\n          { className: 'panel panel-default panel-form' },\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-heading' },\n            _react2.default.createElement(\n              'h3',\n              { className: 'panel-title' },\n              gettext(\"Change username\")\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-body' },\n            _react2.default.createElement(\n              _formGroup2.default,\n              { label: gettext(\"New username\"), 'for': 'id_username',\n                labelClass: 'col-sm-4', controlClass: 'col-sm-8',\n                helpText: this.getHelpText() },\n              _react2.default.createElement('input', { type: 'text', id: 'id_username', className: 'form-control',\n                disabled: this.state.isLoading,\n                onChange: this.bindInput('username'),\n                value: this.state.username })\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-footer' },\n            _react2.default.createElement(\n              'div',\n              { className: 'row' },\n              _react2.default.createElement(\n                'div',\n                { className: 'col-sm-8 col-sm-offset-4' },\n                _react2.default.createElement(\n                  _button2.default,\n                  { className: 'btn-primary', loading: this.state.isLoading },\n                  gettext(\"Change username\")\n                )\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return ChangeUsername;\n}(_form2.default);\n\nvar NoChangesLeft = exports.NoChangesLeft = function (_React$Component) {\n  _inherits(NoChangesLeft, _React$Component);\n\n  function NoChangesLeft() {\n    _classCallCheck(this, NoChangesLeft);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(NoChangesLeft).apply(this, arguments));\n  }\n\n  _createClass(NoChangesLeft, [{\n    key: 'getHelpText',\n    value: function getHelpText() {\n      if (this.props.options.next_on) {\n        return interpolate(gettext(\"You will be able to change your username %(next_change)s.\"), { 'next_change': this.props.options.next_on.fromNow() }, true);\n      } else {\n        return gettext(\"You have used up available name changes.\");\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'panel panel-default panel-form' },\n        _react2.default.createElement(\n          'div',\n          { className: 'panel-heading' },\n          _react2.default.createElement(\n            'h3',\n            { className: 'panel-title' },\n            gettext(\"Change username\")\n          )\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'panel-body panel-message-body' },\n          _react2.default.createElement(\n            'div',\n            { className: 'message-icon' },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              'info_outline'\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'message-body' },\n            _react2.default.createElement(\n              'p',\n              { className: 'lead' },\n              gettext(\"You can't change your username at the moment.\")\n            ),\n            _react2.default.createElement(\n              'p',\n              { className: 'help-block' },\n              this.getHelpText()\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return NoChangesLeft;\n}(_react2.default.Component);\n\nvar ChangeUsernameLoading = exports.ChangeUsernameLoading = function (_React$Component2) {\n  _inherits(ChangeUsernameLoading, _React$Component2);\n\n  function ChangeUsernameLoading() {\n    _classCallCheck(this, ChangeUsernameLoading);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(ChangeUsernameLoading).apply(this, arguments));\n  }\n\n  _createClass(ChangeUsernameLoading, [{\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'panel panel-default panel-form' },\n        _react2.default.createElement(\n          'div',\n          { className: 'panel-heading' },\n          _react2.default.createElement(\n            'h3',\n            { className: 'panel-title' },\n            gettext(\"Change username\")\n          )\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'panel-body panel-body-loading' },\n          _react2.default.createElement(_loader2.default, { className: 'loader loader-spaced' })\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return ChangeUsernameLoading;\n}(_react2.default.Component);\n\nvar UsernameHistory = exports.UsernameHistory = function (_React$Component3) {\n  _inherits(UsernameHistory, _React$Component3);\n\n  function UsernameHistory() {\n    _classCallCheck(this, UsernameHistory);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(UsernameHistory).apply(this, arguments));\n  }\n\n  _createClass(UsernameHistory, [{\n    key: 'renderUserAvatar',\n    value: function renderUserAvatar(item) {\n      if (item.changed_by) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'a',\n          { href: item.changed_by.absolute_url, className: 'user-avatar' },\n          _react2.default.createElement(_avatar2.default, { user: item.changed_by, size: '100' })\n        );\n        /* jshint ignore:end */\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(\n            'span',\n            { className: 'user-avatar' },\n            _react2.default.createElement(_avatar2.default, { size: '100' })\n          );\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'renderUsername',\n    value: function renderUsername(item) {\n      if (item.changed_by) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'a',\n          { href: item.changed_by.absolute_url, className: 'item-title' },\n          item.changed_by.username\n        );\n        /* jshint ignore:end */\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(\n            'span',\n            { className: 'item-title' },\n            item.changed_by_username\n          );\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'renderHistory',\n    value: function renderHistory() {\n      var _this5 = this;\n\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'username-history ui-ready' },\n        _react2.default.createElement(\n          'ul',\n          { className: 'list-group' },\n          this.props.changes.map(function (item) {\n            return _react2.default.createElement(\n              'li',\n              { className: 'list-group-item', key: item.id },\n              _react2.default.createElement(\n                'div',\n                { className: 'username-change-avatar' },\n                _this5.renderUserAvatar(item)\n              ),\n              _react2.default.createElement(\n                'div',\n                { className: 'username-change-author' },\n                _this5.renderUsername(item)\n              ),\n              _react2.default.createElement(\n                'div',\n                { className: 'username-change' },\n                item.old_username,\n                _react2.default.createElement(\n                  'span',\n                  { className: 'material-icon' },\n                  'arrow_forward'\n                ),\n                item.new_username\n              ),\n              _react2.default.createElement(\n                'div',\n                { className: 'username-change-date' },\n                _react2.default.createElement(\n                  'abbr',\n                  { title: item.changed_on.format('LLL') },\n                  item.changed_on.fromNow()\n                )\n              )\n            );\n          })\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'renderEmptyHistory',\n    value: function renderEmptyHistory() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'username-history ui-ready' },\n        _react2.default.createElement(\n          'ul',\n          { className: 'list-group' },\n          _react2.default.createElement(\n            'li',\n            { className: 'list-group-item empty-message' },\n            gettext(\"No name changes have been recorded for your account.\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'renderHistoryPreview',\n    value: function renderHistoryPreview() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'username-history ui-preview' },\n        _react2.default.createElement(\n          'ul',\n          { className: 'list-group' },\n          random.range(3, 5).map(function (i) {\n            return _react2.default.createElement(\n              'li',\n              { className: 'list-group-item', key: i },\n              _react2.default.createElement(\n                'div',\n                { className: 'username-change-avatar' },\n                _react2.default.createElement(\n                  'span',\n                  { className: 'user-avatar' },\n                  _react2.default.createElement(_avatar2.default, { size: '100' })\n                )\n              ),\n              _react2.default.createElement(\n                'div',\n                { className: 'username-change-author' },\n                _react2.default.createElement(\n                  'span',\n                  { className: 'ui-preview-text', style: { width: random.int(30, 100) + \"px\" } },\n                  ' '\n                )\n              ),\n              _react2.default.createElement(\n                'div',\n                { className: 'username-change' },\n                _react2.default.createElement(\n                  'span',\n                  { className: 'ui-preview-text', style: { width: random.int(30, 50) + \"px\" } },\n                  ' '\n                ),\n                _react2.default.createElement(\n                  'span',\n                  { className: 'material-icon' },\n                  'arrow_forward'\n                ),\n                _react2.default.createElement(\n                  'span',\n                  { className: 'ui-preview-text', style: { width: random.int(30, 50) + \"px\" } },\n                  ' '\n                )\n              ),\n              _react2.default.createElement(\n                'div',\n                { className: 'username-change-date' },\n                _react2.default.createElement(\n                  'span',\n                  { className: 'ui-preview-text', style: { width: random.int(50, 100) + \"px\" } },\n                  ' '\n                )\n              )\n            );\n          })\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      if (this.props.isLoaded) {\n        if (this.props.changes.length) {\n          return this.renderHistory();\n        } else {\n          return this.renderEmptyHistory();\n        }\n      } else {\n        return this.renderHistoryPreview();\n      }\n    }\n  }]);\n\n  return UsernameHistory;\n}(_react2.default.Component);\n\nvar _class = function (_React$Component4) {\n  _inherits(_class, _React$Component4);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this6 = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this6.onComplete = function (username, slug, options) {\n      _this6.setState({\n        options: options\n      });\n\n      _store2.default.dispatch((0, _usernameHistory.addNameChange)({ username: username, slug: slug }, _this6.props.user, _this6.props.user));\n      _store2.default.dispatch((0, _users.updateUsername)(_this6.props.user, username, slug));\n\n      _snackbar2.default.success(gettext(\"Your username has been changed successfully.\"));\n    };\n\n    _this6.state = {\n      isLoaded: false,\n      options: null\n    };\n    return _this6;\n  }\n\n  _createClass(_class, [{\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      var _this7 = this;\n\n      _pageTitle2.default.set({\n        title: gettext(\"Change username\"),\n        parent: gettext(\"Change your options\")\n      });\n\n      Promise.all([_ajax2.default.get(this.props.user.api_url.username), _ajax2.default.get(_index2.default.get('USERNAME_CHANGES_API'), { user: this.props.user.id })]).then(function (data) {\n        _this7.setState({\n          isLoaded: true,\n          options: {\n            changes_left: data[0].changes_left,\n            length_min: data[0].length_min,\n            length_max: data[0].length_max,\n            next_on: data[0].next_on ? (0, _moment2.default)(data[0].next_on) : null\n          }\n        });\n\n        _store2.default.dispatch((0, _usernameHistory.dehydrate)(data[1].results));\n      });\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'getChangeForm',\n\n    /* jshint ignore:end */\n\n    value: function getChangeForm() {\n      if (this.state.isLoaded) {\n        if (this.state.options.changes_left > 0) {\n          /* jshint ignore:start */\n          return _react2.default.createElement(ChangeUsername, { user: this.props.user,\n            options: this.state.options,\n            complete: this.onComplete });\n          /* jshint ignore:end */\n        } else {\n            /* jshint ignore:start */\n            return _react2.default.createElement(NoChangesLeft, { options: this.state.options });\n            /* jshint ignore:end */\n          }\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(ChangeUsernameLoading, null);\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        null,\n        this.getChangeForm(),\n        _react2.default.createElement(UsernameHistory, { isLoaded: this.state.isLoaded,\n          changes: this.props['username-history'] })\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../index\":85,\"../../reducers/username-history\":89,\"../../reducers/users\":90,\"../../services/ajax\":91,\"../../services/page-title\":98,\"../../services/snackbar\":99,\"../../services/store\":100,\"../../utils/random\":107,\"../../utils/validators\":109,\"../avatar\":49,\"../button\":51,\"../form\":58,\"../form-group\":57,\"../loader\":60,\"moment\":\"moment\",\"react\":\"react\"}],63:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _button = require('../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('../form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _formGroup = require('../form-group');\n\nvar _formGroup2 = _interopRequireDefault(_formGroup);\n\nvar _select = require('../select');\n\nvar _select2 = _interopRequireDefault(_select);\n\nvar _yesNoSwitch = require('../yes-no-switch');\n\nvar _yesNoSwitch2 = _interopRequireDefault(_yesNoSwitch);\n\nvar _auth = require('../../reducers/auth');\n\nvar _ajax = require('../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _pageTitle = require('../../services/page-title');\n\nvar _pageTitle2 = _interopRequireDefault(_pageTitle);\n\nvar _snackbar = require('../../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _store = require('../../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar _class = function (_Form) {\n  _inherits(_class, _Form);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.state = {\n      'isLoading': false,\n\n      'is_hiding_presence': props.user.is_hiding_presence,\n      'limits_private_thread_invites_to': props.user.limits_private_thread_invites_to,\n      'subscribe_to_started_threads': props.user.subscribe_to_started_threads,\n      'subscribe_to_replied_threads': props.user.subscribe_to_replied_threads,\n\n      'errors': {}\n    };\n\n    _this.privateThreadInvitesChoices = [{\n      'value': 0,\n      'icon': 'help_outline',\n      'label': gettext('Everybody')\n    }, {\n      'value': 1,\n      'icon': 'done_all',\n      'label': gettext('Users I follow')\n    }, {\n      'value': 2,\n      'icon': 'highlight_off',\n      'label': gettext('Nobody')\n    }];\n\n    _this.subscribeToChoices = [{\n      'value': 0,\n      'icon': 'bookmark_border',\n      'label': gettext('No')\n    }, {\n      'value': 1,\n      'icon': 'bookmark',\n      'label': gettext('Bookmark')\n    }, {\n      'value': 2,\n      'icon': 'mail',\n      'label': gettext('Bookmark with e-mail notification')\n    }];\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(this.props.user.api_url.options, {\n        'is_hiding_presence': this.state.is_hiding_presence,\n        'limits_private_thread_invites_to': this.state.limits_private_thread_invites_to,\n        'subscribe_to_started_threads': this.state.subscribe_to_started_threads,\n        'subscribe_to_replied_threads': this.state.subscribe_to_replied_threads\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess() {\n      _store2.default.dispatch((0, _auth.patchUser)({\n        'is_hiding_presence': this.state.is_hiding_presence,\n        'limits_private_thread_invites_to': this.state.limits_private_thread_invites_to,\n        'subscribe_to_started_threads': this.state.subscribe_to_started_threads,\n        'subscribe_to_replied_threads': this.state.subscribe_to_replied_threads\n      }));\n      _snackbar2.default.success(gettext(\"Your forum options have been changed.\"));\n    }\n  }, {\n    key: 'handleError',\n    value: function handleError(rejection) {\n      if (rejection.status === 400) {\n        _snackbar2.default.error(gettext(\"Please reload page and try again.\"));\n      } else {\n        _snackbar2.default.apiError(rejection);\n      }\n    }\n  }, {\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      _pageTitle2.default.set({\n        title: gettext(\"Forum options\"),\n        parent: gettext(\"Change your options\")\n      });\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'form',\n        { onSubmit: this.handleSubmit, className: 'form-horizontal' },\n        _react2.default.createElement(\n          'div',\n          { className: 'panel panel-default panel-form' },\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-heading' },\n            _react2.default.createElement(\n              'h3',\n              { className: 'panel-title' },\n              gettext(\"Change forum options\")\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-body' },\n            _react2.default.createElement(\n              'fieldset',\n              null,\n              _react2.default.createElement(\n                'legend',\n                null,\n                gettext(\"Privacy settings\")\n              ),\n              _react2.default.createElement(\n                _formGroup2.default,\n                { label: gettext(\"Hide my presence\"),\n                  helpText: gettext(\"If you hide your presence, only members with permission to see hidden users will see when you are online.\"),\n                  'for': 'id_is_hiding_presence',\n                  labelClass: 'col-sm-4', controlClass: 'col-sm-8' },\n                _react2.default.createElement(_yesNoSwitch2.default, { id: 'id_is_hiding_presence',\n                  disabled: this.state.isLoading,\n                  iconOn: 'visibility',\n                  iconOff: 'visibility_off',\n                  labelOn: gettext(\"Show my presence to other users\"),\n                  labelOff: gettext(\"Hide my presence from other users\"),\n                  onChange: this.bindInput('is_hiding_presence'),\n                  value: this.state.is_hiding_presence })\n              ),\n              _react2.default.createElement(\n                _formGroup2.default,\n                { label: gettext(\"Private thread invitations\"),\n                  'for': 'id_limits_private_thread_invites_to',\n                  labelClass: 'col-sm-4', controlClass: 'col-sm-8' },\n                _react2.default.createElement(_select2.default, { id: 'id_limits_private_thread_invites_to',\n                  disabled: this.state.isLoading,\n                  onChange: this.bindInput('limits_private_thread_invites_to'),\n                  value: this.state.limits_private_thread_invites_to,\n                  choices: this.privateThreadInvitesChoices })\n              )\n            ),\n            _react2.default.createElement(\n              'fieldset',\n              null,\n              _react2.default.createElement(\n                'legend',\n                null,\n                gettext(\"Automatic subscriptions\")\n              ),\n              _react2.default.createElement(\n                _formGroup2.default,\n                { label: gettext(\"Threads I start\"),\n                  'for': 'id_subscribe_to_started_threads',\n                  labelClass: 'col-sm-4', controlClass: 'col-sm-8' },\n                _react2.default.createElement(_select2.default, { id: 'id_subscribe_to_started_threads',\n                  disabled: this.state.isLoading,\n                  onChange: this.bindInput('subscribe_to_started_threads'),\n                  value: this.state.subscribe_to_started_threads,\n                  choices: this.subscribeToChoices })\n              ),\n              _react2.default.createElement(\n                _formGroup2.default,\n                { label: gettext(\"Threads I reply to\"),\n                  'for': 'id_subscribe_to_replied_threads',\n                  labelClass: 'col-sm-4', controlClass: 'col-sm-8' },\n                _react2.default.createElement(_select2.default, { id: 'id_subscribe_to_replied_threads',\n                  disabled: this.state.isLoading,\n                  onChange: this.bindInput('subscribe_to_replied_threads'),\n                  value: this.state.subscribe_to_replied_threads,\n                  choices: this.subscribeToChoices })\n              )\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-footer' },\n            _react2.default.createElement(\n              'div',\n              { className: 'row' },\n              _react2.default.createElement(\n                'div',\n                { className: 'col-sm-8 col-sm-offset-4' },\n                _react2.default.createElement(\n                  _button2.default,\n                  { className: 'btn-primary', loading: this.state.isLoading },\n                  gettext(\"Save changes\")\n                )\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_form2.default);\n\nexports.default = _class;\n\n},{\"../../reducers/auth\":86,\"../../services/ajax\":91,\"../../services/page-title\":98,\"../../services/snackbar\":99,\"../../services/store\":100,\"../button\":51,\"../form\":58,\"../form-group\":57,\"../select\":73,\"../yes-no-switch\":84,\"react\":\"react\"}],64:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.CompactNav = exports.SideNav = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRouter = require('react-router');\n\nvar _li = require('../li');\n\nvar _li2 = _interopRequireDefault(_li);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n//jshint ignore:line\n\n//jshint ignore:line\n\nvar SideNav = exports.SideNav = function (_React$Component) {\n  _inherits(SideNav, _React$Component);\n\n  function SideNav() {\n    _classCallCheck(this, SideNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(SideNav).apply(this, arguments));\n  }\n\n  _createClass(SideNav, [{\n    key: 'render',\n    value: function render() {\n      var _this2 = this;\n\n      // jshint ignore:start\n      return _react2.default.createElement(\n        'div',\n        { className: 'list-group nav-side' },\n        this.props.options.map(function (option) {\n          return _react2.default.createElement(\n            _reactRouter.Link,\n            { to: _this2.props.baseUrl + option.component + '/',\n              className: 'list-group-item',\n              activeClassName: 'active',\n              key: option.component },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              option.icon\n            ),\n            option.name\n          );\n        })\n      );\n      // jshint ignore:end\n    }\n  }]);\n\n  return SideNav;\n}(_react2.default.Component);\n\nvar CompactNav = exports.CompactNav = function (_React$Component2) {\n  _inherits(CompactNav, _React$Component2);\n\n  function CompactNav() {\n    _classCallCheck(this, CompactNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(CompactNav).apply(this, arguments));\n  }\n\n  _createClass(CompactNav, [{\n    key: 'render',\n    value: function render() {\n      var _this4 = this;\n\n      // jshint ignore:start\n      return _react2.default.createElement(\n        'ul',\n        { className: 'dropdown-menu', role: 'menu' },\n        this.props.options.map(function (option) {\n          return _react2.default.createElement(\n            _li2.default,\n            { path: _this4.props.baseUrl + option.component + '/',\n              key: option.component },\n            _react2.default.createElement(\n              _reactRouter.Link,\n              { to: _this4.props.baseUrl + option.component + '/' },\n              _react2.default.createElement(\n                'span',\n                { className: 'material-icon' },\n                option.icon\n              ),\n              option.name\n            )\n          );\n        })\n      );\n      // jshint ignore:end\n    }\n  }]);\n\n  return CompactNav;\n}(_react2.default.Component);\n\n},{\"../../index\":85,\"../li\":59,\"react\":\"react\",\"react-router\":\"react-router\"}],65:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.select = select;\nexports.paths = paths;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = require('react-redux');\n\nvar _navs = require('./navs');\n\nvar _forumOptions = require('./forum-options');\n\nvar _forumOptions2 = _interopRequireDefault(_forumOptions);\n\nvar _changeUsername = require('./change-username');\n\nvar _changeUsername2 = _interopRequireDefault(_changeUsername);\n\nvar _signInCredentials = require('./sign-in-credentials');\n\nvar _signInCredentials2 = _interopRequireDefault(_signInCredentials);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.toggleNav = function () {\n      if (_this.state.dropdown) {\n        _this.setState({\n          dropdown: false\n        });\n      } else {\n        _this.setState({\n          dropdown: true\n        });\n      }\n    };\n\n    _this.state = {\n      dropdown: false\n    };\n    return _this;\n  }\n\n  /* jshint ignore:start */\n\n  _createClass(_class, [{\n    key: 'getToggleNavClassName',\n\n    /* jshint ignore:end */\n\n    value: function getToggleNavClassName() {\n      if (this.state.dropdown) {\n        return 'btn btn-default btn-icon open';\n      } else {\n        return 'btn btn-default btn-icon';\n      }\n    }\n  }, {\n    key: 'getCompactNavClassName',\n    value: function getCompactNavClassName() {\n      if (this.state.dropdown) {\n        return 'compact-nav open';\n      } else {\n        return 'compact-nav';\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'page page-options' },\n        _react2.default.createElement(\n          'div',\n          { className: 'page-header' },\n          _react2.default.createElement(\n            'div',\n            { className: 'container' },\n            _react2.default.createElement(\n              'h1',\n              { className: 'pull-left' },\n              gettext(\"Change your options\")\n            ),\n            _react2.default.createElement(\n              'button',\n              { className: 'btn btn-default btn-icon btn-dropdown-toggle hidden-md hidden-lg',\n                type: 'button',\n                onClick: this.toggleNav,\n                'aria-haspopup': 'true',\n                'aria-expanded': this.state.dropdown ? 'true' : 'false' },\n              _react2.default.createElement(\n                'i',\n                { className: 'material-icon' },\n                'menu'\n              )\n            )\n          )\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: this.getCompactNavClassName() },\n          _react2.default.createElement(_navs.CompactNav, { options: _index2.default.get('USER_OPTIONS'),\n            baseUrl: _index2.default.get('USERCP_URL') })\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'container' },\n          _react2.default.createElement(\n            'div',\n            { className: 'row' },\n            _react2.default.createElement(\n              'div',\n              { className: 'col-md-3 hidden-xs hidden-sm' },\n              _react2.default.createElement(_navs.SideNav, { options: _index2.default.get('USER_OPTIONS'),\n                baseUrl: _index2.default.get('USERCP_URL') })\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'col-md-9' },\n              this.props.children\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\nfunction select(store) {\n  return {\n    'tick': store.tick.tick,\n    'user': store.auth.user,\n    'username-history': store['username-history']\n  };\n}\n\nfunction paths() {\n  return [{\n    path: _index2.default.get('USERCP_URL') + 'forum-options/',\n    component: (0, _reactRedux.connect)(select)(_forumOptions2.default)\n  }, {\n    path: _index2.default.get('USERCP_URL') + 'change-username/',\n    component: (0, _reactRedux.connect)(select)(_changeUsername2.default)\n  }, {\n    path: _index2.default.get('USERCP_URL') + 'sign-in-credentials/',\n    component: (0, _reactRedux.connect)(select)(_signInCredentials2.default)\n  }];\n}\n\n},{\"../../index\":85,\"./change-username\":62,\"./forum-options\":63,\"./navs\":64,\"./sign-in-credentials\":66,\"react\":\"react\",\"react-redux\":\"react-redux\"}],66:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.ChangePassword = exports.ChangeEmail = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _button = require('../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('../form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _formGroup = require('../form-group');\n\nvar _formGroup2 = _interopRequireDefault(_formGroup);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _ajax = require('../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _pageTitle = require('../../services/page-title');\n\nvar _pageTitle2 = _interopRequireDefault(_pageTitle);\n\nvar _snackbar = require('../../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _validators = require('../../utils/validators');\n\nvar validators = _interopRequireWildcard(_validators);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n\nvar ChangeEmail = exports.ChangeEmail = function (_Form) {\n  _inherits(ChangeEmail, _Form);\n\n  function ChangeEmail(props) {\n    _classCallCheck(this, ChangeEmail);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(ChangeEmail).call(this, props));\n\n    _this.state = {\n      new_email: '',\n      password: '',\n\n      validators: {\n        new_email: [validators.email()],\n        password: []\n      },\n\n      isLoading: false\n    };\n    return _this;\n  }\n\n  _createClass(ChangeEmail, [{\n    key: 'clean',\n    value: function clean() {\n      var errors = this.validate();\n      var lengths = [this.state.new_email.trim().length, this.state.password.trim().length];\n\n      if (lengths.indexOf(0) !== -1) {\n        _snackbar2.default.error(gettext(\"Fill out all fields.\"));\n        return false;\n      }\n\n      if (errors.new_email) {\n        _snackbar2.default.error(errors.new_email[0]);\n        return false;\n      }\n\n      return true;\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(this.props.user.api_url.change_email, {\n        new_email: this.state.new_email,\n        password: this.state.password\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess(response) {\n      this.setState({\n        new_email: '',\n        password: ''\n      });\n\n      _snackbar2.default.success(response.detail);\n    }\n  }, {\n    key: 'handleError',\n    value: function handleError(rejection) {\n      if (rejection.status === 400) {\n        if (rejection.new_email) {\n          _snackbar2.default.error(rejection.new_email);\n        } else {\n          _snackbar2.default.error(rejection.password);\n        }\n      } else {\n        _snackbar2.default.apiError(rejection);\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'form',\n        { onSubmit: this.handleSubmit, className: 'form-horizontal' },\n        _react2.default.createElement('input', { type: 'type', style: { display: 'none' } }),\n        _react2.default.createElement('input', { type: 'password', style: { display: 'none' } }),\n        _react2.default.createElement(\n          'div',\n          { className: 'panel panel-default panel-form' },\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-heading' },\n            _react2.default.createElement(\n              'h3',\n              { className: 'panel-title' },\n              gettext(\"Change e-mail address\")\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-body' },\n            _react2.default.createElement(\n              _formGroup2.default,\n              { label: gettext(\"New e-mail\"), 'for': 'id_new_email',\n                labelClass: 'col-sm-4', controlClass: 'col-sm-8' },\n              _react2.default.createElement('input', { type: 'text', id: 'id_new_email', className: 'form-control',\n                disabled: this.state.isLoading,\n                onChange: this.bindInput('new_email'),\n                value: this.state.new_email })\n            ),\n            _react2.default.createElement('hr', null),\n            _react2.default.createElement(\n              _formGroup2.default,\n              { label: gettext(\"Your current password\"), 'for': 'id_password',\n                labelClass: 'col-sm-4', controlClass: 'col-sm-8' },\n              _react2.default.createElement('input', { type: 'password', id: 'id_password', className: 'form-control',\n                disabled: this.state.isLoading,\n                onChange: this.bindInput('password'),\n                value: this.state.password })\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-footer' },\n            _react2.default.createElement(\n              'div',\n              { className: 'row' },\n              _react2.default.createElement(\n                'div',\n                { className: 'col-sm-8 col-sm-offset-4' },\n                _react2.default.createElement(\n                  _button2.default,\n                  { className: 'btn-primary', loading: this.state.isLoading },\n                  gettext(\"Change e-mail\")\n                )\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return ChangeEmail;\n}(_form2.default);\n\nvar ChangePassword = exports.ChangePassword = function (_Form2) {\n  _inherits(ChangePassword, _Form2);\n\n  function ChangePassword(props) {\n    _classCallCheck(this, ChangePassword);\n\n    var _this2 = _possibleConstructorReturn(this, Object.getPrototypeOf(ChangePassword).call(this, props));\n\n    _this2.state = {\n      new_password: '',\n      repeat_password: '',\n      password: '',\n\n      validators: {\n        new_password: [validators.passwordMinLength(_index2.default.get('SETTINGS'))],\n        repeat_password: [],\n        password: []\n      },\n\n      isLoading: false\n    };\n    return _this2;\n  }\n\n  _createClass(ChangePassword, [{\n    key: 'clean',\n    value: function clean() {\n      var errors = this.validate();\n      var lengths = [this.state.new_password.trim().length, this.state.repeat_password.trim().length, this.state.password.trim().length];\n\n      if (lengths.indexOf(0) !== -1) {\n        _snackbar2.default.error(gettext(\"Fill out all fields.\"));\n        return false;\n      }\n\n      if (errors.new_password) {\n        _snackbar2.default.error(errors.new_password[0]);\n        return false;\n      }\n\n      if (this.state.new_password.trim() !== this.state.repeat_password.trim()) {\n        _snackbar2.default.error(gettext(\"New passwords are different.\"));\n        return false;\n      }\n\n      return true;\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(this.props.user.api_url.change_password, {\n        new_password: this.state.new_password,\n        password: this.state.password\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess(response) {\n      this.setState({\n        new_password: '',\n        repeat_password: '',\n        password: ''\n      });\n\n      _snackbar2.default.success(response.detail);\n    }\n  }, {\n    key: 'handleError',\n    value: function handleError(rejection) {\n      if (rejection.status === 400) {\n        if (rejection.new_password) {\n          _snackbar2.default.error(rejection.new_password);\n        } else {\n          _snackbar2.default.error(rejection.password);\n        }\n      } else {\n        _snackbar2.default.apiError(rejection);\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'form',\n        { onSubmit: this.handleSubmit, className: 'form-horizontal' },\n        _react2.default.createElement('input', { type: 'type', style: { display: 'none' } }),\n        _react2.default.createElement('input', { type: 'password', style: { display: 'none' } }),\n        _react2.default.createElement(\n          'div',\n          { className: 'panel panel-default panel-form' },\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-heading' },\n            _react2.default.createElement(\n              'h3',\n              { className: 'panel-title' },\n              gettext(\"Change password\")\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-body' },\n            _react2.default.createElement(\n              _formGroup2.default,\n              { label: gettext(\"New password\"), 'for': 'id_new_password',\n                labelClass: 'col-sm-4', controlClass: 'col-sm-8' },\n              _react2.default.createElement('input', { type: 'password', id: 'id_new_password', className: 'form-control',\n                disabled: this.state.isLoading,\n                onChange: this.bindInput('new_password'),\n                value: this.state.new_password })\n            ),\n            _react2.default.createElement(\n              _formGroup2.default,\n              { label: gettext(\"Repeat password\"), 'for': 'id_repeat_password',\n                labelClass: 'col-sm-4', controlClass: 'col-sm-8' },\n              _react2.default.createElement('input', { type: 'password', id: 'id_repeat_password', className: 'form-control',\n                disabled: this.state.isLoading,\n                onChange: this.bindInput('repeat_password'),\n                value: this.state.repeat_password })\n            ),\n            _react2.default.createElement('hr', null),\n            _react2.default.createElement(\n              _formGroup2.default,\n              { label: gettext(\"Your current password\"), 'for': 'id_password',\n                labelClass: 'col-sm-4', controlClass: 'col-sm-8' },\n              _react2.default.createElement('input', { type: 'password', id: 'id_password', className: 'form-control',\n                disabled: this.state.isLoading,\n                onChange: this.bindInput('password'),\n                value: this.state.password })\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-footer' },\n            _react2.default.createElement(\n              'div',\n              { className: 'row' },\n              _react2.default.createElement(\n                'div',\n                { className: 'col-sm-8 col-sm-offset-4' },\n                _react2.default.createElement(\n                  _button2.default,\n                  { className: 'btn-primary', loading: this.state.isLoading },\n                  gettext(\"Change password\")\n                )\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return ChangePassword;\n}(_form2.default);\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    _classCallCheck(this, _class);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments));\n  }\n\n  _createClass(_class, [{\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      _pageTitle2.default.set({\n        title: gettext(\"Change email or password\"),\n        parent: gettext(\"Change your options\")\n      });\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        null,\n        _react2.default.createElement(ChangeEmail, { user: this.props.user }),\n        _react2.default.createElement(ChangePassword, { user: this.props.user }),\n        _react2.default.createElement(\n          'p',\n          { className: 'message-line' },\n          _react2.default.createElement(\n            'span',\n            { className: 'material-icon' },\n            'warning'\n          ),\n          _react2.default.createElement(\n            'a',\n            { href: _index2.default.get('FORGOTTEN_PASSWORD_URL') },\n            gettext(\"Change forgotten password\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../index\":85,\"../../services/ajax\":91,\"../../services/page-title\":98,\"../../services/snackbar\":99,\"../../utils/validators\":109,\"../button\":51,\"../form\":58,\"../form-group\":57,\"react\":\"react\"}],67:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.LABELS = exports.STYLES = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _zxcvbn = require('../services/zxcvbn');\n\nvar _zxcvbn2 = _interopRequireDefault(_zxcvbn);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar STYLES = exports.STYLES = ['progress-bar-danger', 'progress-bar-warning', 'progress-bar-warning', 'progress-bar-primary', 'progress-bar-success'];\n\nvar LABELS = exports.LABELS = [gettext(\"Entered password is very weak.\"), gettext(\"Entered password is weak.\"), gettext(\"Entered password is average.\"), gettext(\"Entered password is strong.\"), gettext(\"Entered password is very strong.\")];\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this._score = 0;\n    _this._password = null;\n    _this._inputs = [];\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'getScore',\n    value: function getScore(password, inputs) {\n      var _this2 = this;\n\n      var cacheStale = false;\n\n      if (password.trim() !== this._password) {\n        cacheStale = true;\n      }\n\n      if (inputs.length !== this._inputs.length) {\n        cacheStale = true;\n      } else {\n        inputs.map(function (value, i) {\n          if (value.trim() !== _this2._inputs[i]) {\n            cacheStale = true;\n          }\n        });\n      }\n\n      if (cacheStale) {\n        this._score = _zxcvbn2.default.scorePassword(password, inputs);\n        this._password = password.trim();\n        this._inputs = inputs.map(function (value) {\n          return value.trim();\n        });\n      }\n\n      return this._score;\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      var score = this.getScore(this.props.password, this.props.inputs);\n\n      return _react2.default.createElement(\n        'div',\n        { className: 'help-block password-strength' },\n        _react2.default.createElement(\n          'div',\n          { className: 'progress' },\n          _react2.default.createElement(\n            'div',\n            { className: \"progress-bar \" + STYLES[score],\n              style: { width: 20 + 20 * score + '%' },\n              role: 'progress-bar',\n              'aria-valuenow': score,\n              'aria-valuemin': '0',\n              'aria-valuemax': '4' },\n            _react2.default.createElement(\n              'span',\n              { className: 'sr-only' },\n              LABELS[score]\n            )\n          )\n        ),\n        _react2.default.createElement(\n          'p',\n          { className: 'text-small' },\n          LABELS[score]\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../services/zxcvbn\":101,\"react\":\"react\"}],68:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _loader = require('./loader');\n\nvar _loader2 = _interopRequireDefault(_loader);\n\nvar _register = require('./register.js');\n\nvar _register2 = _interopRequireDefault(_register);\n\nvar _captcha = require('../services/captcha');\n\nvar _captcha2 = _interopRequireDefault(_captcha);\n\nvar _modal = require('../services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nvar _snackbar = require('../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _zxcvbn = require('../services/zxcvbn');\n\nvar _zxcvbn2 = _interopRequireDefault(_zxcvbn);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\n// jshint ignore:line\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.showRegisterModal = function () {\n      if (misago.get('SETTINGS').account_activation === 'closed') {\n        _snackbar2.default.info(gettext(\"New registrations are currently disabled.\"));\n      } else if (_this.state.isLoaded) {\n        _modal2.default.show(_register2.default);\n      } else {\n        _this.setState({\n          'isLoading': true\n        });\n\n        Promise.all([_captcha2.default.load(), _zxcvbn2.default.load()]).then(function () {\n          if (!_this.state.isLoaded) {\n            _this.setState({\n              'isLoading': false,\n              'isLoaded': false\n            });\n          }\n\n          _modal2.default.show(_register2.default);\n        });\n      }\n    };\n\n    _this.state = {\n      'isLoading': false,\n      'isLoaded': false\n    };\n    return _this;\n  }\n\n  /* jshint ignore:start */\n\n  _createClass(_class, [{\n    key: 'getClassName',\n\n    /* jshint ignore:end */\n\n    value: function getClassName() {\n      return this.props.className + (this.state.isLoading ? ' btn-loading' : '');\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'button',\n        { type: 'button', onClick: this.showRegisterModal,\n          className: 'btn ' + this.getClassName(),\n          disabled: this.state.isLoaded },\n        gettext(\"Register\"),\n        this.state.isLoading ? _react2.default.createElement(_loader2.default, null) : null\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../services/captcha\":93,\"../services/modal\":97,\"../services/snackbar\":99,\"../services/zxcvbn\":101,\"./loader\":60,\"./register.js\":69,\"react\":\"react\"}],69:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.RegisterComplete = exports.RegisterForm = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _button = require('./button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('./form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _formGroup = require('./form-group');\n\nvar _formGroup2 = _interopRequireDefault(_formGroup);\n\nvar _passwordStrength = require('./password-strength');\n\nvar _passwordStrength2 = _interopRequireDefault(_passwordStrength);\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _ajax = require('../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _auth = require('../services/auth');\n\nvar _auth2 = _interopRequireDefault(_auth);\n\nvar _captcha = require('../services/captcha');\n\nvar _captcha2 = _interopRequireDefault(_captcha);\n\nvar _modal = require('../services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nvar _snackbar = require('../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _bannedPage = require('../utils/banned-page');\n\nvar _bannedPage2 = _interopRequireDefault(_bannedPage);\n\nvar _validators = require('../utils/validators');\n\nvar validators = _interopRequireWildcard(_validators);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar RegisterForm = exports.RegisterForm = function (_Form) {\n  _inherits(RegisterForm, _Form);\n\n  function RegisterForm(props) {\n    _classCallCheck(this, RegisterForm);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(RegisterForm).call(this, props));\n\n    _this.state = {\n      'isLoading': false,\n\n      'username': '',\n      'email': '',\n      'password': '',\n      'captcha': '',\n\n      'validators': {\n        'username': [validators.usernameContent(), validators.usernameMinLength(_index2.default.get('SETTINGS')), validators.usernameMaxLength(_index2.default.get('SETTINGS'))],\n        'email': [validators.email()],\n        'password': [validators.passwordMinLength(_index2.default.get('SETTINGS'))],\n        'captcha': _captcha2.default.validator()\n      },\n\n      'errors': {}\n    };\n    return _this;\n  }\n\n  _createClass(RegisterForm, [{\n    key: 'clean',\n    value: function clean() {\n      if (this.isValid()) {\n        return true;\n      } else {\n        _snackbar2.default.error(gettext(\"Form contains errors.\"));\n        this.setState({\n          'errors': this.validate()\n        });\n        return false;\n      }\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(_index2.default.get('USERS_API'), {\n        'username': this.state.username,\n        'email': this.state.email,\n        'password': this.state.password,\n        'captcha': this.state.captcha\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess(apiResponse) {\n      this.props.callback(apiResponse);\n    }\n  }, {\n    key: 'handleError',\n    value: function handleError(rejection) {\n      if (rejection.status === 400) {\n        this.setState({\n          'errors': Object.assign({}, this.state.errors, rejection)\n        });\n        _snackbar2.default.error(gettext(\"Form contains errors.\"));\n      } else if (rejection.status === 403 && rejection.ban) {\n        (0, _bannedPage2.default)(rejection.ban);\n        _modal2.default.hide();\n      } else {\n        _snackbar2.default.apiError(rejection);\n      }\n    }\n  }, {\n    key: 'getLegalFootNote',\n    value: function getLegalFootNote() {\n      if (_index2.default.get('TERMS_OF_SERVICE_URL')) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'a',\n          { href: _index2.default.get('TERMS_OF_SERVICE_URL'),\n            target: '_blank' },\n          gettext(\"By registering you agree to site's terms and conditions.\")\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'modal-dialog modal-register', role: 'document' },\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-content' },\n          _react2.default.createElement(\n            'div',\n            { className: 'modal-header' },\n            _react2.default.createElement(\n              'button',\n              { type: 'button', className: 'close', 'data-dismiss': 'modal',\n                'aria-label': gettext(\"Close\") },\n              _react2.default.createElement(\n                'span',\n                { 'aria-hidden': 'true' },\n                '×'\n              )\n            ),\n            _react2.default.createElement(\n              'h4',\n              { className: 'modal-title' },\n              gettext(\"Register\")\n            )\n          ),\n          _react2.default.createElement(\n            'form',\n            { onSubmit: this.handleSubmit, className: 'form-horizontal' },\n            _react2.default.createElement('input', { type: 'type', style: { display: 'none' } }),\n            _react2.default.createElement('input', { type: 'password', style: { display: 'none' } }),\n            _react2.default.createElement(\n              'div',\n              { className: 'modal-body' },\n              _react2.default.createElement(\n                _formGroup2.default,\n                { label: gettext(\"Username\"), 'for': 'id_username',\n                  labelClass: 'col-sm-4', controlClass: 'col-sm-8',\n                  validation: this.state.errors.username },\n                _react2.default.createElement('input', { type: 'text', id: 'id_username', className: 'form-control',\n                  'aria-describedby': 'id_username_status',\n                  disabled: this.state.isLoading,\n                  onChange: this.bindInput('username'),\n                  value: this.state.username })\n              ),\n              _react2.default.createElement(\n                _formGroup2.default,\n                { label: gettext(\"E-mail\"), 'for': 'id_email',\n                  labelClass: 'col-sm-4', controlClass: 'col-sm-8',\n                  validation: this.state.errors.email },\n                _react2.default.createElement('input', { type: 'text', id: 'id_email', className: 'form-control',\n                  'aria-describedby': 'id_email_status',\n                  disabled: this.state.isLoading,\n                  onChange: this.bindInput('email'),\n                  value: this.state.email })\n              ),\n              _react2.default.createElement(\n                _formGroup2.default,\n                { label: gettext(\"Password\"), 'for': 'id_password',\n                  labelClass: 'col-sm-4', controlClass: 'col-sm-8',\n                  validation: this.state.errors.password,\n                  extra: _react2.default.createElement(_passwordStrength2.default, { password: this.state.password,\n                    inputs: [this.state.username, this.state.email] }) },\n                _react2.default.createElement('input', { type: 'password', id: 'id_password', className: 'form-control',\n                  'aria-describedby': 'id_password_status',\n                  disabled: this.state.isLoading,\n                  onChange: this.bindInput('password'),\n                  value: this.state.password })\n              ),\n              _captcha2.default.component({\n                form: this,\n                labelClass: \"col-sm-4\",\n                controlClass: \"col-sm-8\"\n              })\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'modal-footer' },\n              this.getLegalFootNote(),\n              _react2.default.createElement(\n                _button2.default,\n                { className: 'btn-primary', loading: this.state.isLoading },\n                gettext(\"Register account\")\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return RegisterForm;\n}(_form2.default);\n\nvar RegisterComplete = exports.RegisterComplete = function (_React$Component) {\n  _inherits(RegisterComplete, _React$Component);\n\n  function RegisterComplete() {\n    _classCallCheck(this, RegisterComplete);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(RegisterComplete).apply(this, arguments));\n  }\n\n  _createClass(RegisterComplete, [{\n    key: 'getLead',\n    value: function getLead() {\n      if (this.props.activation === 'user') {\n        return gettext(\"%(username)s, your account has been created but you need to activate it before you will be able to sign in.\");\n      } else if (this.props.activation === 'admin') {\n        return gettext(\"%(username)s, your account has been created but board administrator will have to activate it before you will be able to sign in.\");\n      }\n    }\n  }, {\n    key: 'getSubscript',\n    value: function getSubscript() {\n      if (this.props.activation === 'user') {\n        return gettext(\"We have sent an e-mail to %(email)s with link that you have to click to activate your account.\");\n      } else if (this.props.activation === 'admin') {\n        return gettext(\"We will send an e-mail to %(email)s when this takes place.\");\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'modal-dialog modal-message modal-register',\n          role: 'document' },\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-content' },\n          _react2.default.createElement(\n            'div',\n            { className: 'modal-header' },\n            _react2.default.createElement(\n              'button',\n              { type: 'button', className: 'close', 'data-dismiss': 'modal',\n                'aria-label': gettext(\"Close\") },\n              _react2.default.createElement(\n                'span',\n                { 'aria-hidden': 'true' },\n                '×'\n              )\n            ),\n            _react2.default.createElement(\n              'h4',\n              { className: 'modal-title' },\n              gettext(\"Registration complete\")\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'modal-body' },\n            _react2.default.createElement(\n              'div',\n              { className: 'message-icon' },\n              _react2.default.createElement(\n                'span',\n                { className: 'material-icon' },\n                'info_outline'\n              )\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'message-body' },\n              _react2.default.createElement(\n                'p',\n                { className: 'lead' },\n                interpolate(this.getLead(), { 'username': this.props.username }, true)\n              ),\n              _react2.default.createElement(\n                'p',\n                null,\n                interpolate(this.getSubscript(), { 'email': this.props.email }, true)\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return RegisterComplete;\n}(_react2.default.Component);\n\nvar _class = function (_React$Component2) {\n  _inherits(_class, _React$Component2);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this3 = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this3.completeRegistration = function (apiResponse) {\n      if (apiResponse.activation === 'active') {\n        _modal2.default.hide();\n        _auth2.default.signIn(apiResponse);\n      } else {\n        _this3.setState({\n          'complete': apiResponse\n        });\n      }\n    };\n\n    _this3.state = {\n      'complete': false\n    };\n    return _this3;\n  }\n\n  /* jshint ignore:start */\n\n  _createClass(_class, [{\n    key: 'render',\n\n    /* jshint ignore:end */\n\n    value: function render() {\n      /* jshint ignore:start */\n      if (this.state.complete) {\n        return _react2.default.createElement(RegisterComplete, { activation: this.state.complete.activation,\n          username: this.state.complete.username,\n          email: this.state.complete.email });\n      } else {\n        return _react2.default.createElement(RegisterForm, { callback: this.completeRegistration });\n      }\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../index\":85,\"../services/ajax\":91,\"../services/auth\":92,\"../services/captcha\":93,\"../services/modal\":97,\"../services/snackbar\":99,\"../utils/banned-page\":102,\"../utils/validators\":109,\"./button\":51,\"./form\":58,\"./form-group\":57,\"./password-strength\":67,\"react\":\"react\"}],70:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.LinkSent = exports.RequestLinkForm = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _button = require('./button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('./form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _ajax = require('../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _snackbar = require('../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _validators = require('../utils/validators');\n\nvar validators = _interopRequireWildcard(_validators);\n\nvar _bannedPage = require('../utils/banned-page');\n\nvar _bannedPage2 = _interopRequireDefault(_bannedPage);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n\nvar RequestLinkForm = exports.RequestLinkForm = function (_Form) {\n  _inherits(RequestLinkForm, _Form);\n\n  function RequestLinkForm(props) {\n    _classCallCheck(this, RequestLinkForm);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(RequestLinkForm).call(this, props));\n\n    _this.state = {\n      'isLoading': false,\n\n      'email': '',\n\n      'validators': {\n        'email': [validators.email()]\n      }\n    };\n    return _this;\n  }\n\n  _createClass(RequestLinkForm, [{\n    key: 'clean',\n    value: function clean() {\n      if (this.isValid()) {\n        return true;\n      } else {\n        _snackbar2.default.error(gettext(\"Enter a valid email address.\"));\n        return false;\n      }\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(_index2.default.get('SEND_ACTIVATION_API'), {\n        'email': this.state.email\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess(apiResponse) {\n      this.props.callback(apiResponse);\n    }\n  }, {\n    key: 'handleError',\n    value: function handleError(rejection) {\n      if (['already_active', 'inactive_admin'].indexOf(rejection.code) > -1) {\n        _snackbar2.default.info(rejection.detail);\n      } else if (rejection.status === 403 && rejection.ban) {\n        (0, _bannedPage2.default)(rejection.ban);\n      } else {\n        _snackbar2.default.apiError(rejection);\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'well well-form well-form-request-activation-link' },\n        _react2.default.createElement(\n          'form',\n          { onSubmit: this.handleSubmit },\n          _react2.default.createElement(\n            'div',\n            { className: 'form-group' },\n            _react2.default.createElement(\n              'div',\n              { className: 'control-input' },\n              _react2.default.createElement('input', { type: 'text', className: 'form-control',\n                placeholder: gettext(\"Your e-mail address\"),\n                disabled: this.state.isLoading,\n                onChange: this.bindInput('email'),\n                value: this.state.email })\n            )\n          ),\n          _react2.default.createElement(\n            _button2.default,\n            { className: 'btn-primary btn-block',\n              loading: this.state.isLoading },\n            gettext(\"Send link\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return RequestLinkForm;\n}(_form2.default);\n\nvar LinkSent = exports.LinkSent = function (_React$Component) {\n  _inherits(LinkSent, _React$Component);\n\n  function LinkSent() {\n    _classCallCheck(this, LinkSent);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(LinkSent).apply(this, arguments));\n  }\n\n  _createClass(LinkSent, [{\n    key: 'getMessage',\n    value: function getMessage() {\n      return interpolate(gettext(\"Activation link was sent to %(email)s\"), {\n        email: this.props.user.email\n      }, true);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'well well-form well-form-request-activation-link well-done' },\n        _react2.default.createElement(\n          'div',\n          { className: 'done-message' },\n          _react2.default.createElement(\n            'div',\n            { className: 'message-icon' },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              'check'\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'message-body' },\n            _react2.default.createElement(\n              'p',\n              null,\n              this.getMessage()\n            )\n          ),\n          _react2.default.createElement(\n            'button',\n            { type: 'button', className: 'btn btn-primary btn-block',\n              onClick: this.props.callback },\n            gettext(\"Request another link\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return LinkSent;\n}(_react2.default.Component);\n\nvar _class = function (_React$Component2) {\n  _inherits(_class, _React$Component2);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this3 = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this3.complete = function (apiResponse) {\n      _this3.setState({\n        complete: apiResponse\n      });\n    };\n\n    _this3.reset = function () {\n      _this3.setState({\n        complete: false\n      });\n    };\n\n    _this3.state = {\n      complete: false\n    };\n    return _this3;\n  }\n\n  /* jshint ignore:start */\n\n  _createClass(_class, [{\n    key: 'render',\n\n    /* jshint ignore:end */\n\n    value: function render() {\n      /* jshint ignore:start */\n      if (this.state.complete) {\n        return _react2.default.createElement(LinkSent, { user: this.state.complete, callback: this.reset });\n      } else {\n        return _react2.default.createElement(RequestLinkForm, { callback: this.complete });\n      };\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../index\":85,\"../services/ajax\":91,\"../services/snackbar\":99,\"../utils/banned-page\":102,\"../utils/validators\":109,\"./button\":51,\"./form\":58,\"react\":\"react\"}],71:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.AccountInactivePage = exports.LinkSent = exports.RequestResetForm = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _button = require('./button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('./form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _ajax = require('../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _snackbar = require('../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _validators = require('../utils/validators');\n\nvar validators = _interopRequireWildcard(_validators);\n\nvar _bannedPage = require('../utils/banned-page');\n\nvar _bannedPage2 = _interopRequireDefault(_bannedPage);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar RequestResetForm = exports.RequestResetForm = function (_Form) {\n  _inherits(RequestResetForm, _Form);\n\n  function RequestResetForm(props) {\n    _classCallCheck(this, RequestResetForm);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(RequestResetForm).call(this, props));\n\n    _this.state = {\n      'isLoading': false,\n\n      'email': '',\n\n      'validators': {\n        'email': [validators.email()]\n      }\n    };\n    return _this;\n  }\n\n  _createClass(RequestResetForm, [{\n    key: 'clean',\n    value: function clean() {\n      if (this.isValid()) {\n        return true;\n      } else {\n        _snackbar2.default.error(gettext(\"Enter a valid email address.\"));\n        return false;\n      }\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(_index2.default.get('SEND_PASSWORD_RESET_API'), {\n        'email': this.state.email\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess(apiResponse) {\n      this.props.callback(apiResponse);\n    }\n  }, {\n    key: 'handleError',\n    value: function handleError(rejection) {\n      if (['inactive_user', 'inactive_admin'].indexOf(rejection.code) > -1) {\n        this.props.showInactivePage(rejection);\n      } else if (rejection.status === 403 && rejection.ban) {\n        (0, _bannedPage2.default)(rejection.ban);\n      } else {\n        _snackbar2.default.apiError(rejection);\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'well well-form well-form-request-password-reset' },\n        _react2.default.createElement(\n          'form',\n          { onSubmit: this.handleSubmit },\n          _react2.default.createElement(\n            'div',\n            { className: 'form-group' },\n            _react2.default.createElement(\n              'div',\n              { className: 'control-input' },\n              _react2.default.createElement('input', { type: 'text', className: 'form-control',\n                placeholder: gettext(\"Your e-mail address\"),\n                disabled: this.state.isLoading,\n                onChange: this.bindInput('email'),\n                value: this.state.email })\n            )\n          ),\n          _react2.default.createElement(\n            _button2.default,\n            { className: 'btn-primary btn-block',\n              loading: this.state.isLoading },\n            gettext(\"Send link\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return RequestResetForm;\n}(_form2.default);\n\nvar LinkSent = exports.LinkSent = function (_React$Component) {\n  _inherits(LinkSent, _React$Component);\n\n  function LinkSent() {\n    _classCallCheck(this, LinkSent);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(LinkSent).apply(this, arguments));\n  }\n\n  _createClass(LinkSent, [{\n    key: 'getMessage',\n    value: function getMessage() {\n      return interpolate(gettext(\"Reset password link was sent to %(email)s\"), {\n        email: this.props.user.email\n      }, true);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'well well-form well-form-request-password-reset well-done' },\n        _react2.default.createElement(\n          'div',\n          { className: 'done-message' },\n          _react2.default.createElement(\n            'div',\n            { className: 'message-icon' },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              'check'\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'message-body' },\n            _react2.default.createElement(\n              'p',\n              null,\n              this.getMessage()\n            )\n          ),\n          _react2.default.createElement(\n            'button',\n            { type: 'button', className: 'btn btn-primary btn-block',\n              onClick: this.props.callback },\n            gettext(\"Request another link\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return LinkSent;\n}(_react2.default.Component);\n\nvar AccountInactivePage = exports.AccountInactivePage = function (_React$Component2) {\n  _inherits(AccountInactivePage, _React$Component2);\n\n  function AccountInactivePage() {\n    _classCallCheck(this, AccountInactivePage);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(AccountInactivePage).apply(this, arguments));\n  }\n\n  _createClass(AccountInactivePage, [{\n    key: 'getActivateButton',\n    value: function getActivateButton() {\n      if (this.props.activation === 'inactive_user') {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'p',\n          null,\n          _react2.default.createElement(\n            'a',\n            { href: _index2.default.get('REQUEST_ACTIVATION_URL') },\n            gettext(\"Activate your account.\")\n          )\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'page page-message page-message-info page-forgotten-password-inactive' },\n        _react2.default.createElement(\n          'div',\n          { className: 'container' },\n          _react2.default.createElement(\n            'div',\n            { className: 'message-panel' },\n            _react2.default.createElement(\n              'div',\n              { className: 'message-icon' },\n              _react2.default.createElement(\n                'span',\n                { className: 'material-icon' },\n                'info_outline'\n              )\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'message-body' },\n              _react2.default.createElement(\n                'p',\n                { className: 'lead' },\n                gettext(\"Your account is inactive.\")\n              ),\n              _react2.default.createElement(\n                'p',\n                null,\n                this.props.message\n              ),\n              this.getActivateButton()\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return AccountInactivePage;\n}(_react2.default.Component);\n\nvar _class = function (_React$Component3) {\n  _inherits(_class, _React$Component3);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this4 = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this4.complete = function (apiResponse) {\n      _this4.setState({\n        complete: apiResponse\n      });\n    };\n\n    _this4.reset = function () {\n      _this4.setState({\n        complete: false\n      });\n    };\n\n    _this4.state = {\n      complete: false\n    };\n    return _this4;\n  }\n\n  /* jshint ignore:start */\n\n  _createClass(_class, [{\n    key: 'showInactivePage',\n    value: function showInactivePage(apiResponse) {\n      _reactDom2.default.render(_react2.default.createElement(AccountInactivePage, { activation: apiResponse.code,\n        message: apiResponse.detail }), document.getElementById('page-mount'));\n    }\n    /* jshint ignore:end */\n\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      if (this.state.complete) {\n        return _react2.default.createElement(LinkSent, { user: this.state.complete, callback: this.reset });\n      } else {\n        return _react2.default.createElement(RequestResetForm, { callback: this.complete,\n          showInactivePage: this.showInactivePage });\n      };\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../index\":85,\"../services/ajax\":91,\"../services/snackbar\":99,\"../utils/banned-page\":102,\"../utils/validators\":109,\"./button\":51,\"./form\":58,\"react\":\"react\",\"react-dom\":\"react-dom\"}],72:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.PasswordChangedPage = exports.ResetPasswordForm = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _button = require('./button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('./form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _signIn = require('./sign-in.js');\n\nvar _signIn2 = _interopRequireDefault(_signIn);\n\nvar _ajax = require('../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _auth = require('../services/auth');\n\nvar _auth2 = _interopRequireDefault(_auth);\n\nvar _modal = require('../services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nvar _snackbar = require('../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _validators = require('../utils/validators');\n\nvar validators = _interopRequireWildcard(_validators);\n\nvar _bannedPage = require('../utils/banned-page');\n\nvar _bannedPage2 = _interopRequireDefault(_bannedPage);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar ResetPasswordForm = exports.ResetPasswordForm = function (_Form) {\n  _inherits(ResetPasswordForm, _Form);\n\n  function ResetPasswordForm(props) {\n    _classCallCheck(this, ResetPasswordForm);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(ResetPasswordForm).call(this, props));\n\n    _this.state = {\n      'isLoading': false,\n\n      'password': '',\n\n      'validators': {\n        'password': [validators.passwordMinLength(_index2.default.get('SETTINGS'))]\n      }\n    };\n    return _this;\n  }\n\n  _createClass(ResetPasswordForm, [{\n    key: 'clean',\n    value: function clean() {\n      if (this.isValid()) {\n        return true;\n      } else {\n        if (this.state.password.trim().length) {\n          _snackbar2.default.error(this.state.errors.password[0]);\n        } else {\n          _snackbar2.default.error(gettext(\"Enter new password.\"));\n        }\n        return false;\n      }\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(_index2.default.get('CHANGE_PASSWORD_API'), {\n        'password': this.state.password\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess(apiResponse) {\n      this.props.callback(apiResponse);\n    }\n  }, {\n    key: 'handleError',\n    value: function handleError(rejection) {\n      if (rejection.status === 403 && rejection.ban) {\n        (0, _bannedPage2.default)(rejection.ban);\n      } else {\n        _snackbar2.default.apiError(rejection);\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'well well-form well-form-reset-password' },\n        _react2.default.createElement(\n          'form',\n          { onSubmit: this.handleSubmit },\n          _react2.default.createElement(\n            'div',\n            { className: 'form-group' },\n            _react2.default.createElement(\n              'div',\n              { className: 'control-input' },\n              _react2.default.createElement('input', { type: 'password', className: 'form-control',\n                placeholder: gettext(\"Enter new password\"),\n                disabled: this.state.isLoading,\n                onChange: this.bindInput('password'),\n                value: this.state.password })\n            )\n          ),\n          _react2.default.createElement(\n            _button2.default,\n            { className: 'btn-primary btn-block',\n              loading: this.state.isLoading },\n            gettext(\"Change password\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return ResetPasswordForm;\n}(_form2.default);\n\nvar PasswordChangedPage = exports.PasswordChangedPage = function (_React$Component) {\n  _inherits(PasswordChangedPage, _React$Component);\n\n  function PasswordChangedPage() {\n    _classCallCheck(this, PasswordChangedPage);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(PasswordChangedPage).apply(this, arguments));\n  }\n\n  _createClass(PasswordChangedPage, [{\n    key: 'getMessage',\n    value: function getMessage() {\n      return interpolate(gettext(\"%(username)s, your password has been changed successfully.\"), {\n        username: this.props.user.username\n      }, true);\n    }\n  }, {\n    key: 'showSignIn',\n    value: function showSignIn() {\n      _modal2.default.show(_signIn2.default);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'page page-message page-message-success page-forgotten-password-changed' },\n        _react2.default.createElement(\n          'div',\n          { className: 'container' },\n          _react2.default.createElement(\n            'div',\n            { className: 'message-panel' },\n            _react2.default.createElement(\n              'div',\n              { className: 'message-icon' },\n              _react2.default.createElement(\n                'span',\n                { className: 'material-icon' },\n                'check'\n              )\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'message-body' },\n              _react2.default.createElement(\n                'p',\n                { className: 'lead' },\n                this.getMessage()\n              ),\n              _react2.default.createElement(\n                'p',\n                null,\n                gettext(\"You will have to sign in using new password before continuing.\")\n              ),\n              _react2.default.createElement(\n                'p',\n                null,\n                _react2.default.createElement(\n                  'button',\n                  { type: 'button', className: 'btn btn-primary', onClick: this.showSignIn },\n                  gettext(\"Sign in\")\n                )\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return PasswordChangedPage;\n}(_react2.default.Component);\n\nvar _class = function (_React$Component2) {\n  _inherits(_class, _React$Component2);\n\n  function _class() {\n    var _Object$getPrototypeO;\n\n    var _temp, _this3, _ret;\n\n    _classCallCheck(this, _class);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this3 = _possibleConstructorReturn(this, (_Object$getPrototypeO = Object.getPrototypeOf(_class)).call.apply(_Object$getPrototypeO, [this].concat(args))), _this3), _this3.complete = function (apiResponse) {\n      _auth2.default.softSignOut();\n\n      // nuke \"redirect_to\" field so we don't end\n      // coming back to error page after sign in\n      $('#hidden-login-form input[name=\"redirect_to\"]').remove();\n\n      _reactDom2.default.render(_react2.default.createElement(PasswordChangedPage, { user: apiResponse }), document.getElementById('page-mount'));\n    }, _temp), _possibleConstructorReturn(_this3, _ret);\n  }\n  /* jshint ignore:start */\n\n  _createClass(_class, [{\n    key: 'render',\n\n    /* jshint ignore:end */\n\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(ResetPasswordForm, { callback: this.complete });\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../index\":85,\"../services/ajax\":91,\"../services/auth\":92,\"../services/modal\":97,\"../services/snackbar\":99,\"../utils/banned-page\":102,\"../utils/validators\":109,\"./button\":51,\"./form\":58,\"./sign-in.js\":74,\"react\":\"react\",\"react-dom\":\"react-dom\"}],73:[function(require,module,exports){\n\"use strict\";\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    var _Object$getPrototypeO;\n\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, _class);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_Object$getPrototypeO = Object.getPrototypeOf(_class)).call.apply(_Object$getPrototypeO, [this].concat(args))), _this), _this.change = function (value) {\n      return function () {\n        _this.props.onChange({\n          target: {\n            value: value\n          }\n        });\n      };\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  _createClass(_class, [{\n    key: \"getChoice\",\n    value: function getChoice() {\n      var _this2 = this;\n\n      var choice = null;\n      this.props.choices.map(function (item) {\n        if (item.value === _this2.props.value) {\n          choice = item;\n        }\n      });\n      return choice;\n    }\n  }, {\n    key: \"getIcon\",\n    value: function getIcon() {\n      return this.getChoice().icon;\n    }\n  }, {\n    key: \"getLabel\",\n    value: function getLabel() {\n      return this.getChoice().label;\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: \"render\",\n\n    /* jshint ignore:end */\n\n    value: function render() {\n      var _this3 = this;\n\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        \"div\",\n        { className: \"btn-group btn-select-group\" },\n        _react2.default.createElement(\n          \"button\",\n          { type: \"button\",\n            className: \"btn btn-select dropdown-toggle\",\n            id: this.props.id || null,\n            \"data-toggle\": \"dropdown\",\n            \"aria-haspopup\": \"true\",\n            \"aria-expanded\": \"false\",\n            \"aria-describedby\": this.props['aria-describedby'] || null,\n            disabled: this.props.disabled || false },\n          _react2.default.createElement(\n            \"span\",\n            { className: \"material-icon\" },\n            this.getIcon()\n          ),\n          this.getLabel()\n        ),\n        _react2.default.createElement(\n          \"ul\",\n          { className: \"dropdown-menu\" },\n          this.props.choices.map(function (item, i) {\n            return _react2.default.createElement(\n              \"li\",\n              { key: i },\n              _react2.default.createElement(\n                \"button\",\n                { type: \"button\", className: \"btn-link\",\n                  onClick: _this3.change(item.value) },\n                _react2.default.createElement(\n                  \"span\",\n                  { className: \"material-icon\" },\n                  item.icon\n                ),\n                item.label\n              )\n            );\n          })\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"react\":\"react\"}],74:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _button = require('./button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('./form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _ajax = require('../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _modal = require('../services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nvar _snackbar = require('../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _bannedPage = require('../utils/banned-page');\n\nvar _bannedPage2 = _interopRequireDefault(_bannedPage);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n\nvar _class = function (_Form) {\n  _inherits(_class, _Form);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.state = {\n      'isLoading': false,\n      'showActivation': false,\n\n      'username': '',\n      'password': '',\n\n      'validators': {\n        'username': [],\n        'password': []\n      }\n    };\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'clean',\n    value: function clean() {\n      if (!this.isValid()) {\n        _snackbar2.default.error(gettext(\"Fill out both fields.\"));\n        return false;\n      } else {\n        return true;\n      }\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(_index2.default.get('AUTH_API'), {\n        'username': this.state.username,\n        'password': this.state.password\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess() {\n      var form = $('#hidden-login-form');\n\n      form.append('<input type=\"text\" name=\"username\" />');\n      form.append('<input type=\"password\" name=\"password\" />');\n\n      // fill out form with user credentials and submit it, this will tell\n      // Misago to redirect user back to right page, and will trigger browser's\n      // key ring feature\n      form.find('input[type=\"hidden\"]').val(_ajax2.default.getCsrfToken());\n      form.find('input[name=\"redirect_to\"]').val(window.location.pathname);\n      form.find('input[name=\"username\"]').val(this.state.username);\n      form.find('input[name=\"password\"]').val(this.state.password);\n      form.submit();\n\n      // keep form loading\n      this.setState({\n        'isLoading': true\n      });\n    }\n  }, {\n    key: 'handleError',\n    value: function handleError(rejection) {\n      if (rejection.status === 400) {\n        if (rejection.code === 'inactive_admin') {\n          _snackbar2.default.info(rejection.detail);\n        } else if (rejection.code === 'inactive_user') {\n          _snackbar2.default.info(rejection.detail);\n          this.setState({\n            'showActivation': true\n          });\n        } else if (rejection.code === 'banned') {\n          (0, _bannedPage2.default)(rejection.detail);\n          _modal2.default.hide();\n        } else {\n          _snackbar2.default.error(rejection.detail);\n        }\n      } else if (rejection.status === 403 && rejection.ban) {\n        (0, _bannedPage2.default)(rejection.ban);\n        _modal2.default.hide();\n      } else {\n        _snackbar2.default.apiError(rejection);\n      }\n    }\n  }, {\n    key: 'getActivationButton',\n    value: function getActivationButton() {\n      if (this.state.showActivation) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'a',\n          { href: _index2.default.get('REQUEST_ACTIVATION_URL'),\n            className: 'btn btn-success btn-block' },\n          gettext(\"Activate account\")\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'modal-dialog modal-sm modal-sign-in',\n          role: 'document' },\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-content' },\n          _react2.default.createElement(\n            'div',\n            { className: 'modal-header' },\n            _react2.default.createElement(\n              'button',\n              { type: 'button', className: 'close', 'data-dismiss': 'modal',\n                'aria-label': gettext(\"Close\") },\n              _react2.default.createElement(\n                'span',\n                { 'aria-hidden': 'true' },\n                '×'\n              )\n            ),\n            _react2.default.createElement(\n              'h4',\n              { className: 'modal-title' },\n              gettext(\"Sign in\")\n            )\n          ),\n          _react2.default.createElement(\n            'form',\n            { onSubmit: this.handleSubmit },\n            _react2.default.createElement(\n              'div',\n              { className: 'modal-body' },\n              _react2.default.createElement(\n                'div',\n                { className: 'form-group' },\n                _react2.default.createElement(\n                  'div',\n                  { className: 'control-input' },\n                  _react2.default.createElement('input', { id: 'id_username', className: 'form-control', type: 'text',\n                    disabled: this.state.isLoading,\n                    placeholder: gettext(\"Username or e-mail\"),\n                    onChange: this.bindInput('username'),\n                    value: this.state.username })\n                )\n              ),\n              _react2.default.createElement(\n                'div',\n                { className: 'form-group' },\n                _react2.default.createElement(\n                  'div',\n                  { className: 'control-input' },\n                  _react2.default.createElement('input', { id: 'id_password', className: 'form-control', type: 'password',\n                    disabled: this.state.isLoading,\n                    placeholder: gettext(\"Password\"),\n                    onChange: this.bindInput('password'),\n                    value: this.state.password })\n                )\n              )\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'modal-footer' },\n              this.getActivationButton(),\n              _react2.default.createElement(\n                _button2.default,\n                { className: 'btn-primary btn-block',\n                  loading: this.state.isLoading },\n                gettext(\"Sign in\")\n              ),\n              _react2.default.createElement(\n                'a',\n                { href: _index2.default.get('FORGOTTEN_PASSWORD_URL'),\n                  className: 'btn btn-default btn-block' },\n                gettext(\"Forgot password?\")\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_form2.default);\n\nexports.default = _class;\n\n},{\"../index\":85,\"../services/ajax\":91,\"../services/modal\":97,\"../services/snackbar\":99,\"../utils/banned-page\":102,\"./button\":51,\"./form\":58,\"react\":\"react\"}],75:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Snackbar = undefined;\nexports.select = select;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/* jshint ignore:start */\nvar TYPES_CLASSES = {\n  'info': 'alert-info',\n  'success': 'alert-success',\n  'warning': 'alert-warning',\n  'error': 'alert-danger'\n};\n/* jshint ignore:end */\n\nvar Snackbar = exports.Snackbar = function (_React$Component) {\n  _inherits(Snackbar, _React$Component);\n\n  function Snackbar() {\n    _classCallCheck(this, Snackbar);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(Snackbar).apply(this, arguments));\n  }\n\n  _createClass(Snackbar, [{\n    key: 'getSnackbarClass',\n    value: function getSnackbarClass() {\n      var snackbarClass = 'alerts-snackbar';\n      if (this.props.isVisible) {\n        snackbarClass += ' in';\n      } else {\n        snackbarClass += ' out';\n      }\n      return snackbarClass;\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: this.getSnackbarClass() },\n        _react2.default.createElement(\n          'p',\n          { className: 'alert ' + TYPES_CLASSES[this.props.type] },\n          this.props.message\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return Snackbar;\n}(_react2.default.Component);\n\nfunction select(state) {\n  return state.snackbar;\n}\n\n},{\"react\":\"react\"}],76:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.CompactGuestNav = exports.GuestNav = exports.GuestMenu = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _avatar = require('../avatar');\n\nvar _avatar2 = _interopRequireDefault(_avatar);\n\nvar _registerButton = require('../register-button');\n\nvar _registerButton2 = _interopRequireDefault(_registerButton);\n\nvar _signIn = require('../sign-in.js');\n\nvar _signIn2 = _interopRequireDefault(_signIn);\n\nvar _mobileNavbarDropdown = require('../../services/mobile-navbar-dropdown');\n\nvar _mobileNavbarDropdown2 = _interopRequireDefault(_mobileNavbarDropdown);\n\nvar _modal = require('../../services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n\nvar GuestMenu = exports.GuestMenu = function (_React$Component) {\n  _inherits(GuestMenu, _React$Component);\n\n  function GuestMenu() {\n    _classCallCheck(this, GuestMenu);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(GuestMenu).apply(this, arguments));\n  }\n\n  _createClass(GuestMenu, [{\n    key: 'showSignInModal',\n    value: function showSignInModal() {\n      _modal2.default.show(_signIn2.default);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'ul',\n        { className: 'dropdown-menu user-dropdown dropdown-menu-right',\n          role: 'menu' },\n        _react2.default.createElement(\n          'li',\n          { className: 'guest-preview' },\n          _react2.default.createElement(\n            'h4',\n            null,\n            gettext(\"You are browsing as guest.\")\n          ),\n          _react2.default.createElement(\n            'p',\n            null,\n            gettext('Sign in or register to start and participate in discussions.')\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'row' },\n            _react2.default.createElement(\n              'div',\n              { className: 'col-xs-6' },\n              _react2.default.createElement(\n                'button',\n                { type: 'button', className: 'btn btn-default btn-block',\n                  onClick: this.showSignInModal },\n                gettext(\"Sign in\")\n              )\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'col-xs-6' },\n              _react2.default.createElement(\n                _registerButton2.default,\n                { className: 'btn-primary btn-block' },\n                gettext(\"Register\")\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return GuestMenu;\n}(_react2.default.Component);\n\nvar GuestNav = exports.GuestNav = function (_GuestMenu) {\n  _inherits(GuestNav, _GuestMenu);\n\n  function GuestNav() {\n    _classCallCheck(this, GuestNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(GuestNav).apply(this, arguments));\n  }\n\n  _createClass(GuestNav, [{\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'nav nav-guest' },\n        _react2.default.createElement(\n          'button',\n          { type: 'button', className: 'btn navbar-btn btn-default',\n            onClick: this.showSignInModal },\n          gettext(\"Sign in\")\n        ),\n        _react2.default.createElement(\n          _registerButton2.default,\n          { className: 'navbar-btn btn-primary' },\n          gettext(\"Register\")\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return GuestNav;\n}(GuestMenu);\n\nvar CompactGuestNav = exports.CompactGuestNav = function (_React$Component2) {\n  _inherits(CompactGuestNav, _React$Component2);\n\n  function CompactGuestNav() {\n    _classCallCheck(this, CompactGuestNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(CompactGuestNav).apply(this, arguments));\n  }\n\n  _createClass(CompactGuestNav, [{\n    key: 'showGuestMenu',\n    value: function showGuestMenu() {\n      _mobileNavbarDropdown2.default.show(GuestMenu);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'button',\n        { type: 'button', onClick: this.showGuestMenu },\n        _react2.default.createElement(_avatar2.default, { size: '64' })\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return CompactGuestNav;\n}(_react2.default.Component);\n\n},{\"../../services/mobile-navbar-dropdown\":96,\"../../services/modal\":97,\"../avatar\":49,\"../register-button\":68,\"../sign-in.js\":74,\"react\":\"react\"}],77:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.CompactUserMenu = exports.UserMenu = undefined;\nexports.select = select;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _guestNav = require('./guest-nav');\n\nvar _userNav = require('./user-nav');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n\n// jshint ignore:line\n\nvar UserMenu = exports.UserMenu = function (_React$Component) {\n  _inherits(UserMenu, _React$Component);\n\n  function UserMenu() {\n    _classCallCheck(this, UserMenu);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(UserMenu).apply(this, arguments));\n  }\n\n  _createClass(UserMenu, [{\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      if (this.props.isAuthenticated) {\n        return _react2.default.createElement(_userNav.UserNav, { user: this.props.user });\n      } else {\n        return _react2.default.createElement(_guestNav.GuestNav, null);\n      }\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return UserMenu;\n}(_react2.default.Component);\n\nvar CompactUserMenu = exports.CompactUserMenu = function (_React$Component2) {\n  _inherits(CompactUserMenu, _React$Component2);\n\n  function CompactUserMenu() {\n    _classCallCheck(this, CompactUserMenu);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(CompactUserMenu).apply(this, arguments));\n  }\n\n  _createClass(CompactUserMenu, [{\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      if (this.props.isAuthenticated) {\n        return _react2.default.createElement(_userNav.CompactUserNav, { user: this.props.user });\n      } else {\n        return _react2.default.createElement(_guestNav.CompactGuestNav, null);\n      }\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return CompactUserMenu;\n}(_react2.default.Component);\n\nfunction select(state) {\n  return state.auth;\n}\n\n},{\"./guest-nav\":76,\"./user-nav\":78,\"react\":\"react\"}],78:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.CompactUserNav = exports.UserNav = exports.UserMenu = undefined;\nexports.selectUserMenu = selectUserMenu;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = require('react-redux');\n\nvar _avatar = require('../avatar');\n\nvar _avatar2 = _interopRequireDefault(_avatar);\n\nvar _root = require('../change-avatar/root');\n\nvar _root2 = _interopRequireDefault(_root);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _mobileNavbarDropdown = require('../../services/mobile-navbar-dropdown');\n\nvar _mobileNavbarDropdown2 = _interopRequireDefault(_mobileNavbarDropdown);\n\nvar _modal = require('../../services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar UserMenu = exports.UserMenu = function (_React$Component) {\n  _inherits(UserMenu, _React$Component);\n\n  function UserMenu() {\n    _classCallCheck(this, UserMenu);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(UserMenu).apply(this, arguments));\n  }\n\n  _createClass(UserMenu, [{\n    key: 'logout',\n    value: function logout() {\n      var decision = confirm(gettext(\"Are you sure you want to sign out?\"));\n      if (decision) {\n        $('#hidden-logout-form').submit();\n      }\n    }\n  }, {\n    key: 'changeAvatar',\n    value: function changeAvatar() {\n      _modal2.default.show((0, _reactRedux.connect)(_root.select)(_root2.default));\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'ul',\n        { className: 'dropdown-menu user-dropdown dropdown-menu-right',\n          role: 'menu' },\n        _react2.default.createElement(\n          'li',\n          { className: 'dropdown-header' },\n          _react2.default.createElement(\n            'strong',\n            null,\n            this.props.user.username\n          )\n        ),\n        _react2.default.createElement('li', { className: 'divider' }),\n        _react2.default.createElement(\n          'li',\n          null,\n          _react2.default.createElement(\n            'a',\n            { href: this.props.user.absolute_url },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              'account_circle'\n            ),\n            gettext(\"See your profile\")\n          )\n        ),\n        _react2.default.createElement(\n          'li',\n          null,\n          _react2.default.createElement(\n            'a',\n            { href: _index2.default.get('USERCP_URL') },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              'done_all'\n            ),\n            gettext(\"Change options\")\n          )\n        ),\n        _react2.default.createElement(\n          'li',\n          null,\n          _react2.default.createElement(\n            'button',\n            { type: 'button', className: 'btn-link', onClick: this.changeAvatar },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              'portrait'\n            ),\n            gettext(\"Change avatar\")\n          )\n        ),\n        _react2.default.createElement('li', { className: 'divider' }),\n        _react2.default.createElement(\n          'li',\n          { className: 'dropdown-footer' },\n          _react2.default.createElement(\n            'button',\n            { type: 'button', className: 'btn btn-default btn-block',\n              onClick: this.logout },\n            gettext(\"Log out\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return UserMenu;\n}(_react2.default.Component);\n\nvar UserNav = exports.UserNav = function (_React$Component2) {\n  _inherits(UserNav, _React$Component2);\n\n  function UserNav() {\n    _classCallCheck(this, UserNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(UserNav).apply(this, arguments));\n  }\n\n  _createClass(UserNav, [{\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'ul',\n        { className: 'ul nav navbar-nav nav-user' },\n        _react2.default.createElement(\n          'li',\n          { className: 'dropdown' },\n          _react2.default.createElement(\n            'a',\n            { href: this.props.user.absolute_url, className: 'dropdown-toggle',\n              'data-toggle': 'dropdown', 'aria-haspopup': 'true', 'aria-expanded': 'false',\n              role: 'button' },\n            _react2.default.createElement(_avatar2.default, { user: this.props.user, size: '64' })\n          ),\n          _react2.default.createElement(UserMenu, { user: this.props.user })\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return UserNav;\n}(_react2.default.Component);\n\nfunction selectUserMenu(state) {\n  return { user: state.auth.user };\n}\n\nvar CompactUserNav = exports.CompactUserNav = function (_React$Component3) {\n  _inherits(CompactUserNav, _React$Component3);\n\n  function CompactUserNav() {\n    _classCallCheck(this, CompactUserNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(CompactUserNav).apply(this, arguments));\n  }\n\n  _createClass(CompactUserNav, [{\n    key: 'showUserMenu',\n    value: function showUserMenu() {\n      _mobileNavbarDropdown2.default.showConnected('user-menu', (0, _reactRedux.connect)(selectUserMenu)(UserMenu));\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'button',\n        { type: 'button', onClick: this.showUserMenu },\n        _react2.default.createElement(_avatar2.default, { user: this.props.user, size: '64' })\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return CompactUserNav;\n}(_react2.default.Component);\n\n},{\"../../index\":85,\"../../services/mobile-navbar-dropdown\":96,\"../../services/modal\":97,\"../avatar\":49,\"../change-avatar/root\":55,\"react\":\"react\",\"react-redux\":\"react-redux\"}],79:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.StatusLabel = exports.StatusIcon = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    _classCallCheck(this, _class);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments));\n  }\n\n  _createClass(_class, [{\n    key: 'getClass',\n    value: function getClass() {\n      var status = '';\n      if (this.props.status.is_banned) {\n        status = 'banned';\n      } else if (this.props.status.is_hidden) {\n        status = 'offline';\n      } else if (this.props.status.is_online_hidden) {\n        status = 'online';\n      } else if (this.props.status.is_offline_hidden) {\n        status = 'offline';\n      } else if (this.props.status.is_online) {\n        status = 'online';\n      } else if (this.props.status.is_offline) {\n        status = 'offline';\n      }\n\n      return 'user-status user-' + status;\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'span',\n        { className: this.getClass() },\n        this.props.children\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\nvar StatusIcon = exports.StatusIcon = function (_React$Component2) {\n  _inherits(StatusIcon, _React$Component2);\n\n  function StatusIcon() {\n    _classCallCheck(this, StatusIcon);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(StatusIcon).apply(this, arguments));\n  }\n\n  _createClass(StatusIcon, [{\n    key: 'getIcon',\n    value: function getIcon() {\n      if (this.props.status.is_banned) {\n        return 'remove_circle_outline';\n      } else if (this.props.status.is_hidden) {\n        return 'help_outline';\n      } else if (this.props.status.is_online_hidden) {\n        return 'label';\n      } else if (this.props.status.is_offline_hidden) {\n        return 'label_outline';\n      } else if (this.props.status.is_online) {\n        return 'lens';\n      } else if (this.props.status.is_offline) {\n        return 'panorama_fish_eye';\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'span',\n        { className: 'material-icon status-icon' },\n        this.getIcon()\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return StatusIcon;\n}(_react2.default.Component);\n\nvar StatusLabel = exports.StatusLabel = function (_React$Component3) {\n  _inherits(StatusLabel, _React$Component3);\n\n  function StatusLabel() {\n    _classCallCheck(this, StatusLabel);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(StatusLabel).apply(this, arguments));\n  }\n\n  _createClass(StatusLabel, [{\n    key: 'getHelp',\n    value: function getHelp() {\n      if (this.props.status.is_banned) {\n        if (this.props.status.banned_until) {\n          return interpolate(gettext(\"%(username)s is hiding banned until %(ban_expires)s\"), {\n            username: this.props.user.username,\n            ban_expires: this.props.status.banned_until.format('LL, LT')\n          }, true);\n        } else {\n          return interpolate(gettext(\"%(username)s is hiding banned\"), {\n            username: this.props.user.username\n          }, true);\n        }\n      } else if (this.props.status.is_hidden) {\n        return interpolate(gettext(\"%(username)s is hiding activity\"), {\n          username: this.props.user.username\n        }, true);\n      } else if (this.props.status.is_online_hidden) {\n        return interpolate(gettext(\"%(username)s is online (hidden)\"), {\n          username: this.props.user.username\n        }, true);\n      } else if (this.props.status.is_offline_hidden) {\n        return interpolate(gettext(\"%(username)s was last seen %(last_click)s (hidden)\"), {\n          username: this.props.user.username,\n          last_click: this.props.status.last_click.fromNow()\n        }, true);\n      } else if (this.props.status.is_online) {\n        return interpolate(gettext(\"%(username)s is online\"), {\n          username: this.props.user.username\n        }, true);\n      } else if (this.props.status.is_offline) {\n        return interpolate(gettext(\"%(username)s was last seen %(last_click)s\"), {\n          username: this.props.user.username,\n          last_click: this.props.status.last_click.fromNow()\n        }, true);\n      }\n    }\n  }, {\n    key: 'getLabel',\n    value: function getLabel() {\n      if (this.props.status.is_banned) {\n        return gettext(\"Banned\");\n      } else if (this.props.status.is_hidden) {\n        return gettext(\"Hiding activity\");\n      } else if (this.props.status.is_online_hidden) {\n        return gettext(\"Online (hidden)\");\n      } else if (this.props.status.is_offline_hidden) {\n        return gettext(\"Offline (hidden)\");\n      } else if (this.props.status.is_online) {\n        return gettext(\"Online\");\n      } else if (this.props.status.is_offline) {\n        return gettext(\"Offline\");\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'span',\n        { className: this.props.className || \"status-label\",\n          title: this.getHelp() },\n        this.getLabel()\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return StatusLabel;\n}(_react2.default.Component);\n\n},{\"react\":\"react\"}],80:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.NoActivePosters = exports.ActivePostersLoading = exports.ActivePosters = exports.ActivePoster = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRouter = require('react-router');\n\nvar _avatar = require('../avatar');\n\nvar _avatar2 = _interopRequireDefault(_avatar);\n\nvar _userStatus = require('../user-status');\n\nvar _userStatus2 = _interopRequireDefault(_userStatus);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _users = require('../../reducers/users');\n\nvar _ajax = require('../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _pageTitle = require('../../services/page-title');\n\nvar _pageTitle2 = _interopRequireDefault(_pageTitle);\n\nvar _store = require('../../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nvar _random = require('../../utils/random');\n\nvar random = _interopRequireWildcard(_random);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\n// jshint ignore:line\n\nvar ActivePoster = exports.ActivePoster = function (_React$Component) {\n  _inherits(ActivePoster, _React$Component);\n\n  function ActivePoster() {\n    _classCallCheck(this, ActivePoster);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(ActivePoster).apply(this, arguments));\n  }\n\n  _createClass(ActivePoster, [{\n    key: 'getClassName',\n    value: function getClassName() {\n      if (this.props.rank.css_class) {\n        return \"list-group-item list-group-rank-\" + this.props.rank.css_class;\n      } else {\n        return \"list-group-item\";\n      }\n    }\n  }, {\n    key: 'getUserStatus',\n    value: function getUserStatus() {\n      if (this.props.user.status) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          _userStatus2.default,\n          { user: this.props.user, status: this.props.user.status },\n          _react2.default.createElement(_userStatus.StatusIcon, { user: this.props.user,\n            status: this.props.user.status }),\n          _react2.default.createElement(_userStatus.StatusLabel, { user: this.props.user,\n            status: this.props.user.status,\n            className: 'status-label hidden-xs hidden-sm' })\n        );\n        /* jshint ignore:end */\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(\n            'span',\n            { className: 'user-status' },\n            _react2.default.createElement(\n              'span',\n              { className: 'status-icon ui-preview' },\n              ' '\n            ),\n            _react2.default.createElement(\n              'span',\n              { className: 'status-label ui-preview hidden-xs hidden-sm' },\n              ' '\n            )\n          );\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'getRankName',\n    value: function getRankName() {\n      if (this.props.rank.is_tab) {\n        /* jshint ignore:start */\n        var rankUrl = _index2.default.get('USERS_LIST_URL') + this.props.rank.slug + '/';\n        return _react2.default.createElement(\n          _reactRouter.Link,\n          { to: rankUrl, className: 'rank-name' },\n          this.props.rank.name\n        );\n        /* jshint ignore:end */\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(\n            'span',\n            { className: 'rank-name' },\n            this.props.rank.name\n          );\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'getUserTitle',\n    value: function getUserTitle() {\n      if (this.props.user.title) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'span',\n          { className: 'user-title hidden-xs hidden-sm' },\n          this.props.user.title\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'li',\n        { className: this.getClassName() },\n        _react2.default.createElement(\n          'div',\n          { className: 'rank-user-avatar' },\n          _react2.default.createElement(\n            'a',\n            { href: this.props.user.absolute_url },\n            _react2.default.createElement(_avatar2.default, { user: this.props.user, size: '50' })\n          )\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'rank-user' },\n          _react2.default.createElement(\n            'div',\n            { className: 'user-name' },\n            _react2.default.createElement(\n              'a',\n              { href: this.props.user.absolute_url, className: 'item-title' },\n              this.props.user.username\n            )\n          ),\n          this.getUserStatus(),\n          this.getRankName(),\n          this.getUserTitle()\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'rank-position' },\n          _react2.default.createElement(\n            'div',\n            { className: 'stat-value' },\n            '#',\n            this.props.counter\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'text-muted' },\n            gettext(\"Rank\")\n          )\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'rank-posts-counted' },\n          _react2.default.createElement(\n            'div',\n            { className: 'stat-value' },\n            this.props.user.meta.score\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'text-muted' },\n            gettext(\"Ranked posts\")\n          )\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'rank-posts-total' },\n          _react2.default.createElement(\n            'div',\n            { className: 'stat-value' },\n            this.props.user.posts\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'text-muted' },\n            gettext(\"Total posts\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return ActivePoster;\n}(_react2.default.Component);\n\nvar ActivePosters = exports.ActivePosters = function (_React$Component2) {\n  _inherits(ActivePosters, _React$Component2);\n\n  function ActivePosters() {\n    _classCallCheck(this, ActivePosters);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(ActivePosters).apply(this, arguments));\n  }\n\n  _createClass(ActivePosters, [{\n    key: 'getLeadMessage',\n    value: function getLeadMessage() {\n      var message = ngettext(\"%(posters)s most active poster from last %(days)s days.\", \"%(posters)s most active posters from last %(days)s days.\", this.props.count);\n\n      return interpolate(message, {\n        posters: this.props.count,\n        days: this.props.trackedPeriod\n      }, true);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'active-posters-list' },\n        _react2.default.createElement(\n          'div',\n          { className: 'container' },\n          _react2.default.createElement(\n            'p',\n            { className: 'lead' },\n            this.getLeadMessage()\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'active-posters ui-ready' },\n            _react2.default.createElement(\n              'ul',\n              { className: 'list-group' },\n              this.props.users.map(function (user, i) {\n                return _react2.default.createElement(ActivePoster, { user: user,\n                  rank: user.rank,\n                  counter: i + 1,\n                  key: user.id });\n              })\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return ActivePosters;\n}(_react2.default.Component);\n\nvar ActivePostersLoading = exports.ActivePostersLoading = function (_React$Component3) {\n  _inherits(ActivePostersLoading, _React$Component3);\n\n  function ActivePostersLoading() {\n    _classCallCheck(this, ActivePostersLoading);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(ActivePostersLoading).apply(this, arguments));\n  }\n\n  _createClass(ActivePostersLoading, [{\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'active-posters-list' },\n        _react2.default.createElement(\n          'div',\n          { className: 'container' },\n          _react2.default.createElement(\n            'p',\n            { className: 'lead ui-preview-paragraph' },\n            random.range(3, 4).map(function (i) {\n              return _react2.default.createElement(\n                'span',\n                { key: i, className: 'ui-preview-text', style: { width: random.int(50, 120) + \"px\" } },\n                ' '\n              );\n            })\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'active-posters ui-preview' },\n            _react2.default.createElement(\n              'ul',\n              { className: 'list-group' },\n              random.range(5, 10).map(function (i, counter) {\n                return _react2.default.createElement(\n                  'li',\n                  { key: i, className: 'list-group-item' },\n                  _react2.default.createElement(\n                    'div',\n                    { className: 'rank-user-avatar' },\n                    _react2.default.createElement(\n                      'span',\n                      null,\n                      _react2.default.createElement(_avatar2.default, { size: '50' })\n                    )\n                  ),\n                  _react2.default.createElement(\n                    'div',\n                    { className: 'rank-user' },\n                    _react2.default.createElement(\n                      'div',\n                      { className: 'user-name' },\n                      _react2.default.createElement(\n                        'span',\n                        { className: 'item-title' },\n                        _react2.default.createElement(\n                          'span',\n                          { className: 'ui-preview-text', style: { width: random.int(30, 80) + \"px\" } },\n                          ' '\n                        )\n                      )\n                    ),\n                    _react2.default.createElement(\n                      'span',\n                      { className: 'user-status' },\n                      _react2.default.createElement(\n                        'span',\n                        { className: 'status-icon ui-preview' },\n                        ' '\n                      ),\n                      _react2.default.createElement(\n                        'span',\n                        { className: 'status-label ui-preview hidden-xs hidden-sm' },\n                        ' '\n                      )\n                    ),\n                    _react2.default.createElement(\n                      'span',\n                      { className: 'rank-name' },\n                      _react2.default.createElement(\n                        'span',\n                        { className: 'ui-preview-text', style: { width: random.int(30, 50) + \"px\" } },\n                        ' '\n                      )\n                    ),\n                    _react2.default.createElement(\n                      'span',\n                      { className: 'user-title hidden-xs hidden-sm' },\n                      _react2.default.createElement(\n                        'span',\n                        { className: 'ui-preview-text', style: { width: random.int(30, 50) + \"px\" } },\n                        ' '\n                      )\n                    )\n                  ),\n                  _react2.default.createElement(\n                    'div',\n                    { className: 'rank-position' },\n                    _react2.default.createElement(\n                      'div',\n                      { className: 'stat-value' },\n                      _react2.default.createElement(\n                        'span',\n                        { className: 'ui-preview-text', style: { width: \"30px\" } },\n                        ' '\n                      )\n                    ),\n                    _react2.default.createElement(\n                      'div',\n                      { className: 'text-muted' },\n                      gettext(\"Rank\")\n                    )\n                  ),\n                  _react2.default.createElement(\n                    'div',\n                    { className: 'rank-posts-counted' },\n                    _react2.default.createElement(\n                      'div',\n                      { className: 'stat-value' },\n                      _react2.default.createElement(\n                        'span',\n                        { className: 'ui-preview-text', style: { width: \"30px\" } },\n                        ' '\n                      )\n                    ),\n                    _react2.default.createElement(\n                      'div',\n                      { className: 'text-muted' },\n                      gettext(\"Ranked posts\")\n                    )\n                  ),\n                  _react2.default.createElement(\n                    'div',\n                    { className: 'rank-posts-total' },\n                    _react2.default.createElement(\n                      'div',\n                      { className: 'stat-value' },\n                      _react2.default.createElement(\n                        'span',\n                        { className: 'ui-preview-text', style: { width: \"30px\" } },\n                        ' '\n                      )\n                    ),\n                    _react2.default.createElement(\n                      'div',\n                      { className: 'text-muted' },\n                      gettext(\"Total posts\")\n                    )\n                  )\n                );\n              })\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return ActivePostersLoading;\n}(_react2.default.Component);\n\nvar NoActivePosters = exports.NoActivePosters = function (_React$Component4) {\n  _inherits(NoActivePosters, _React$Component4);\n\n  function NoActivePosters() {\n    _classCallCheck(this, NoActivePosters);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(NoActivePosters).apply(this, arguments));\n  }\n\n  _createClass(NoActivePosters, [{\n    key: 'getEmptyMessage',\n    value: function getEmptyMessage() {\n      return interpolate(gettext(\"No users have posted any new messages during last %(days)s days.\"), { 'days': this.props.trackedPeriod }, true);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'active-posters-list' },\n        _react2.default.createElement(\n          'div',\n          { className: 'container' },\n          _react2.default.createElement(\n            'p',\n            { className: 'lead' },\n            this.getEmptyMessage()\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return NoActivePosters;\n}(_react2.default.Component);\n\nvar _class = function (_React$Component5) {\n  _inherits(_class, _React$Component5);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this5 = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    if (_index2.default.has('USERS')) {\n      _this5.initWithPreloadedData(_index2.default.pop('USERS'));\n    } else {\n      _this5.initWithoutPreloadedData();\n    }\n\n    _this5.poolId = null;\n    _this5.startPooling();\n    return _this5;\n  }\n\n  _createClass(_class, [{\n    key: 'initWithPreloadedData',\n    value: function initWithPreloadedData(data) {\n      this.state = {\n        isLoaded: true,\n\n        trackedPeriod: data.tracked_period,\n        count: data.count\n      };\n\n      _store2.default.dispatch((0, _users.dehydrate)(data.results));\n    }\n  }, {\n    key: 'initWithoutPreloadedData',\n    value: function initWithoutPreloadedData() {\n      this.state = {\n        isLoaded: false\n      };\n    }\n  }, {\n    key: 'startPooling',\n    value: function startPooling() {\n      var _this6 = this;\n\n      var poolServer = function poolServer() {\n        _ajax2.default.get(_index2.default.get('USERS_API'), { list: 'active' }).then(function (data) {\n          _this6.setState({\n            isLoaded: true,\n\n            trackedPeriod: data.tracked_period,\n            count: data.count\n          });\n\n          _store2.default.dispatch((0, _users.dehydrate)(data.results));\n\n          _this6.poolId = window.setTimeout(poolServer, 90 * 1000);\n        });\n      };\n\n      poolServer();\n    }\n  }, {\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      _pageTitle2.default.set({\n        title: this.props.route.extra.name,\n        parent: gettext(\"Users\")\n      });\n    }\n  }, {\n    key: 'componentWillUnmount',\n    value: function componentWillUnmount() {\n      if (this.poolId) {\n        window.clearTimeout(this.poolId);\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      if (this.state.isLoaded) {\n        if (this.state.count > 0) {\n          /* jshint ignore:start */\n          return _react2.default.createElement(ActivePosters, { users: this.props.users,\n            trackedPeriod: this.state.trackedPeriod,\n            count: this.state.count });\n          /* jshint ignore:end */\n        } else {\n            /* jshint ignore:start */\n            return _react2.default.createElement(NoActivePosters, { trackedPeriod: this.state.trackedPeriod });\n            /* jshint ignore:end */\n          }\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(ActivePostersLoading, null);\n          /* jshint ignore:end */\n        }\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../index\":85,\"../../reducers/users\":90,\"../../services/ajax\":91,\"../../services/page-title\":98,\"../../services/store\":100,\"../../utils/random\":107,\"../avatar\":49,\"../user-status\":79,\"react\":\"react\",\"react-router\":\"react-router\"}],81:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.CompactNav = exports.TabsNav = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRouter = require('react-router');\n\nvar _li = require('../li');\n\nvar _li2 = _interopRequireDefault(_li);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n//jshint ignore:line\n\n//jshint ignore:line\n\n// jshint ignore:start\nvar listUrl = function listUrl(baseUrl, list) {\n  var url = baseUrl;\n  if (list.component === 'rank') {\n    url += list.slug;\n  } else {\n    url += list.component;\n  }\n  return url + '/';\n};\n\nvar navLinks = function navLinks(baseUrl, lists) {\n  return lists.map(function (list) {\n    var url = listUrl(baseUrl, list);\n    return _react2.default.createElement(\n      _li2.default,\n      { path: url,\n        key: url },\n      _react2.default.createElement(\n        _reactRouter.Link,\n        { to: url },\n        list.name\n      )\n    );\n  });\n};\n// jshint ignore:end\n\nvar TabsNav = exports.TabsNav = function (_React$Component) {\n  _inherits(TabsNav, _React$Component);\n\n  function TabsNav() {\n    _classCallCheck(this, TabsNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(TabsNav).apply(this, arguments));\n  }\n\n  _createClass(TabsNav, [{\n    key: 'render',\n    value: function render() {\n      // jshint ignore:start\n      return _react2.default.createElement(\n        'ul',\n        { className: 'nav nav-pills' },\n        navLinks(this.props.baseUrl, this.props.lists)\n      );\n      // jshint ignore:end\n    }\n  }]);\n\n  return TabsNav;\n}(_react2.default.Component);\n\nvar CompactNav = exports.CompactNav = function (_React$Component2) {\n  _inherits(CompactNav, _React$Component2);\n\n  function CompactNav() {\n    _classCallCheck(this, CompactNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(CompactNav).apply(this, arguments));\n  }\n\n  _createClass(CompactNav, [{\n    key: 'render',\n    value: function render() {\n      // jshint ignore:start\n      return _react2.default.createElement(\n        'ul',\n        { className: 'dropdown-menu', role: 'menu' },\n        navLinks(this.props.baseUrl, this.props.lists)\n      );\n      // jshint ignore:end\n    }\n  }]);\n\n  return CompactNav;\n}(_react2.default.Component);\n\n},{\"../../index\":85,\"../li\":59,\"react\":\"react\",\"react-router\":\"react-router\"}],82:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _pageTitle = require('../../services/page-title');\n\nvar _pageTitle2 = _interopRequireDefault(_pageTitle);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    _classCallCheck(this, _class);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments));\n  }\n\n  _createClass(_class, [{\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      _pageTitle2.default.set({\n        title: this.props.route.rank.name,\n        parent: gettext(\"Users\")\n      });\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        null,\n        _react2.default.createElement(\n          'div',\n          { className: 'container' },\n          'Hello, this is users with rank list!'\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../services/page-title\":98,\"react\":\"react\"}],83:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.select = select;\nexports.paths = paths;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = require('react-redux');\n\nvar _navs = require('./navs');\n\nvar _activePosters = require('./active-posters');\n\nvar _activePosters2 = _interopRequireDefault(_activePosters);\n\nvar _rank = require('./rank');\n\nvar _rank2 = _interopRequireDefault(_rank);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.toggleNav = function () {\n      if (_this.state.dropdown) {\n        _this.setState({\n          dropdown: false\n        });\n      } else {\n        _this.setState({\n          dropdown: true\n        });\n      }\n    };\n\n    _this.state = {\n      dropdown: false\n    };\n    return _this;\n  }\n\n  /* jshint ignore:start */\n\n  _createClass(_class, [{\n    key: 'getToggleNavClassName',\n\n    /* jshint ignore:end */\n\n    value: function getToggleNavClassName() {\n      if (this.state.dropdown) {\n        return 'btn btn-default btn-icon open';\n      } else {\n        return 'btn btn-default btn-icon';\n      }\n    }\n  }, {\n    key: 'getCompactNavClassName',\n    value: function getCompactNavClassName() {\n      if (this.state.dropdown) {\n        return 'compact-nav open';\n      } else {\n        return 'compact-nav';\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'page page-users-lists' },\n        _react2.default.createElement(\n          'div',\n          { className: 'page-header tabbed' },\n          _react2.default.createElement(\n            'div',\n            { className: 'container' },\n            _react2.default.createElement(\n              'h1',\n              { className: 'pull-left' },\n              gettext(\"Users\")\n            ),\n            _react2.default.createElement(\n              'button',\n              { className: 'btn btn-default btn-icon btn-dropdown-toggle hidden-md hidden-lg',\n                type: 'button',\n                onClick: this.toggleNav,\n                'aria-haspopup': 'true',\n                'aria-expanded': this.state.dropdown ? 'true' : 'false' },\n              _react2.default.createElement(\n                'i',\n                { className: 'material-icon' },\n                'menu'\n              )\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'page-tabs hidden-xs hidden-sm' },\n            _react2.default.createElement(\n              'div',\n              { className: 'container' },\n              _react2.default.createElement(_navs.TabsNav, { lists: _index2.default.get('USERS_LISTS'),\n                baseUrl: _index2.default.get('USERS_LIST_URL') })\n            )\n          )\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: this.getCompactNavClassName() },\n          _react2.default.createElement(_navs.CompactNav, { lists: _index2.default.get('USERS_LISTS'),\n            baseUrl: _index2.default.get('USERS_LIST_URL') })\n        ),\n        this.props.children\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\nfunction select(store) {\n  return {\n    'tick': store.tick.tick,\n    'user': store.auth.user,\n    'users': store.users\n  };\n}\n\nfunction paths() {\n  var paths = [];\n\n  _index2.default.get('USERS_LISTS').forEach(function (item) {\n    if (item.component === 'rank') {\n      paths.push({\n        path: _index2.default.get('USERS_LIST_URL') + item.slug + '/',\n        component: (0, _reactRedux.connect)(select)(_rank2.default),\n        rank: {\n          name: item.name,\n          slug: item.slug,\n          css_class: item.css_class,\n          description: item.description\n        }\n      });\n    } else if (item.component === 'active-posters') {\n      paths.push({\n        path: _index2.default.get('USERS_LIST_URL') + item.component + '/',\n        component: (0, _reactRedux.connect)(select)(_activePosters2.default),\n        extra: {\n          name: item.name\n        }\n      });\n    }\n  });\n\n  return paths;\n}\n\n},{\"../../index\":85,\"./active-posters\":80,\"./navs\":81,\"./rank\":82,\"react\":\"react\",\"react-redux\":\"react-redux\"}],84:[function(require,module,exports){\n\"use strict\";\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    var _Object$getPrototypeO;\n\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, _class);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_Object$getPrototypeO = Object.getPrototypeOf(_class)).call.apply(_Object$getPrototypeO, [this].concat(args))), _this), _this.toggle = function () {\n      _this.props.onChange({\n        target: {\n          value: !_this.props.value\n        }\n      });\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  _createClass(_class, [{\n    key: \"getClassName\",\n    value: function getClassName() {\n      if (this.props.value) {\n        return \"btn btn-yes-no btn-yes-no-on\";\n      } else {\n        return \"btn btn-yes-no btn-yes-no-off\";\n      }\n    }\n  }, {\n    key: \"getIcon\",\n    value: function getIcon() {\n      if (this.props.value) {\n        return this.props.iconOn || 'check_box';\n      } else {\n        return this.props.iconOff || 'check_box_outline_blank';\n      }\n    }\n  }, {\n    key: \"getLabel\",\n    value: function getLabel() {\n      if (this.props.value) {\n        return this.props.labelOn || gettext(\"yes\");\n      } else {\n        return this.props.labelOff || gettext(\"no\");\n      }\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: \"render\",\n\n    /* jshint ignore:end */\n\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        \"button\",\n        { type: \"button\",\n          onClick: this.toggle,\n          className: this.getClassName(),\n          id: this.props.id || null,\n          \"aria-describedby\": this.props['aria-describedby'] || null,\n          disabled: this.props.disabled || false },\n        _react2.default.createElement(\n          \"span\",\n          { className: \"material-icon\" },\n          this.getIcon()\n        ),\n        this.getLabel()\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"react\":\"react\"}],85:[function(require,module,exports){\n(function (global){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Misago = undefined;\n\nvar _orderedList = require('./utils/ordered-list');\n\nvar _orderedList2 = _interopRequireDefault(_orderedList);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Misago = exports.Misago = function () {\n  function Misago() {\n    _classCallCheck(this, Misago);\n\n    this._initializers = [];\n    this._context = {};\n  }\n\n  _createClass(Misago, [{\n    key: 'addInitializer',\n    value: function addInitializer(initializer) {\n      this._initializers.push({\n        key: initializer.name,\n\n        item: initializer.initializer,\n\n        after: initializer.after,\n        before: initializer.before\n      });\n    }\n  }, {\n    key: 'init',\n    value: function init(context) {\n      var _this = this;\n\n      this._context = context;\n\n      var initOrder = new _orderedList2.default(this._initializers).orderedValues();\n      initOrder.forEach(function (initializer) {\n        initializer(_this);\n      });\n    }\n\n    // context accessors\n\n  }, {\n    key: 'has',\n    value: function has(key) {\n      return !!this._context[key];\n    }\n  }, {\n    key: 'get',\n    value: function get(key, fallback) {\n      if (this.has(key)) {\n        return this._context[key];\n      } else {\n        return fallback || undefined;\n      }\n    }\n  }, {\n    key: 'pop',\n    value: function pop(key) {\n      if (this.has(key)) {\n        var value = this._context[key];\n        this._context[key] = null;\n        return value;\n      } else {\n        return undefined;\n      }\n    }\n  }]);\n\n  return Misago;\n}();\n\n// create  singleton\n\nvar misago = new Misago();\n\n// expose it globally\nglobal.misago = misago;\n\n// and export it for tests and stuff\nexports.default = misago;\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{\"./utils/ordered-list\":106}],86:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.SIGN_OUT = exports.SIGN_IN = exports.PATCH_USER = exports.initialState = undefined;\nexports.patchUser = patchUser;\nexports.signIn = signIn;\nexports.signOut = signOut;\nexports.default = auth;\n\nvar _users = require('./users');\n\nvar initialState = exports.initialState = {\n  signedIn: false,\n  signedOut: false\n};\n\nvar PATCH_USER = exports.PATCH_USER = 'PATCH_USER';\nvar SIGN_IN = exports.SIGN_IN = 'SIGN_IN';\nvar SIGN_OUT = exports.SIGN_OUT = 'SIGN_OUT';\n\nfunction patchUser(patch) {\n  return {\n    type: PATCH_USER,\n    patch: patch\n  };\n}\n\nfunction signIn(user) {\n  return {\n    type: SIGN_IN,\n    user: user\n  };\n}\n\nfunction signOut() {\n  var soft = arguments.length <= 0 || arguments[0] === undefined ? false : arguments[0];\n\n  return {\n    type: SIGN_OUT,\n    soft: soft\n  };\n}\n\nfunction auth() {\n  var state = arguments.length <= 0 || arguments[0] === undefined ? initialState : arguments[0];\n  var action = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];\n\n  switch (action.type) {\n    case PATCH_USER:\n      var newState = Object.assign({}, state);\n      newState.user = Object.assign({}, state.user, action.patch);\n      return newState;\n\n    case SIGN_IN:\n      return Object.assign({}, state, {\n        signedIn: action.user\n      });\n\n    case SIGN_OUT:\n      return Object.assign({}, state, {\n        isAuthenticated: false,\n        isAnonymous: true,\n        signedOut: !action.soft\n      });\n\n    case _users.UPDATE_AVATAR:\n      if (state.isAuthenticated && state.user.id === action.userId) {\n        var _newState = Object.assign({}, state);\n        _newState.user = Object.assign({}, state.user, {\n          'avatar_hash': action.avatarHash\n        });\n        return _newState;\n      }\n      return state;\n\n    case _users.UPDATE_USERNAME:\n      if (state.isAuthenticated && state.user.id === action.userId) {\n        var _newState2 = Object.assign({}, state);\n        _newState2.user = Object.assign({}, state.user, {\n          username: action.username,\n          slug: action.slug\n        });\n        return _newState2;\n      }\n      return state;\n\n    default:\n      return state;\n  }\n}\n\n},{\"./users\":90}],87:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.showSnackbar = showSnackbar;\nexports.hideSnackbar = hideSnackbar;\nexports.default = snackbar;\nvar initialState = exports.initialState = {\n  type: 'info',\n  message: '',\n  isVisible: false\n};\n\nvar SHOW_SNACKBAR = exports.SHOW_SNACKBAR = 'SHOW_SNACKBAR';\nvar HIDE_SNACKBAR = exports.HIDE_SNACKBAR = 'HIDE_SNACKBAR';\n\nfunction showSnackbar(message, type) {\n  return {\n    type: SHOW_SNACKBAR,\n    message: message,\n    messageType: type\n  };\n}\n\nfunction hideSnackbar() {\n  return {\n    type: HIDE_SNACKBAR\n  };\n}\n\nfunction snackbar() {\n  var state = arguments.length <= 0 || arguments[0] === undefined ? initialState : arguments[0];\n  var action = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];\n\n  if (action.type === SHOW_SNACKBAR) {\n    return {\n      type: action.messageType,\n      message: action.message,\n      isVisible: true\n    };\n  } else if (action.type === HIDE_SNACKBAR) {\n    return Object.assign({}, state, {\n      isVisible: false\n    });\n  } else {\n    return state;\n  }\n}\n\n},{}],88:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.doTick = doTick;\nexports.default = tick;\nvar initialState = exports.initialState = {\n  tick: 0\n};\n\nvar TICK = exports.TICK = 'TICK';\n\nfunction doTick() {\n  return {\n    type: TICK\n  };\n}\n\nfunction tick() {\n  var state = arguments.length <= 0 || arguments[0] === undefined ? initialState : arguments[0];\n  var action = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];\n\n  if (action.type === TICK) {\n    return Object.assign({}, state, {\n      tick: state.tick + 1\n    });\n  } else {\n    return state;\n  }\n}\n\n},{}],89:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.DEHYDRATE_RESULT = exports.ADD_NAME_CHANGE = undefined;\nexports.addNameChange = addNameChange;\nexports.dehydrate = dehydrate;\nexports.default = username;\n\nvar _users = require('./users');\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ADD_NAME_CHANGE = exports.ADD_NAME_CHANGE = 'ADD_NAME_CHANGE';\nvar DEHYDRATE_RESULT = exports.DEHYDRATE_RESULT = 'DEHYDRATE_RESULT';\n\nfunction addNameChange(change, user, changedBy) {\n  return {\n    type: ADD_NAME_CHANGE,\n    change: change,\n    user: user,\n    changedBy: changedBy\n  };\n}\n\nfunction dehydrate(items) {\n  return {\n    type: DEHYDRATE_RESULT,\n    items: items\n  };\n}\n\nfunction username() {\n  var state = arguments.length <= 0 || arguments[0] === undefined ? [] : arguments[0];\n  var action = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];\n\n  switch (action.type) {\n    case ADD_NAME_CHANGE:\n      var newState = state.slice();\n      newState.unshift({\n        id: Math.floor(Date.now() / 1000), // just small hax for getting id\n        changed_by: action.changedBy,\n        changed_by_username: action.changedBy.username,\n        changed_on: (0, _moment2.default)(),\n        new_username: action.change.username,\n        old_username: action.user.username\n      });\n      return newState;\n\n    case DEHYDRATE_RESULT:\n      return action.items.map(function (item) {\n        return Object.assign({}, item, {\n          changed_on: (0, _moment2.default)(item.changed_on)\n        });\n      });\n\n    case _users.UPDATE_AVATAR:\n      return state.map(function (item) {\n        item = Object.assign({}, item);\n        if (item.changed_by && item.changed_by.id === action.userId) {\n          item.changed_by = Object.assign({}, item.changed_by, {\n            'avatar_hash': action.avatarHash\n          });\n        }\n\n        return Object.assign({}, item);\n      });\n\n    case _users.UPDATE_USERNAME:\n      return state.map(function (item) {\n        item = Object.assign({}, item);\n        if (item.changed_by && item.changed_by.id === action.userId) {\n          item.changed_by = Object.assign({}, item.changed_by, {\n            'username': action.username,\n            'slug': action.slug\n          });\n        }\n\n        return Object.assign({}, item);\n      });\n\n    default:\n      return state;\n  }\n}\n\n},{\"./users\":90,\"moment\":\"moment\"}],90:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.UPDATE_USERNAME = exports.UPDATE_AVATAR = exports.DEHYDRATE_RESULT = undefined;\nexports.dehydrate = dehydrate;\nexports.updateAvatar = updateAvatar;\nexports.updateUsername = updateUsername;\nexports.default = user;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar DEHYDRATE_RESULT = exports.DEHYDRATE_RESULT = 'DEHYDRATE_RESULT';\nvar UPDATE_AVATAR = exports.UPDATE_AVATAR = 'UPDATE_AVATAR';\nvar UPDATE_USERNAME = exports.UPDATE_USERNAME = 'UPDATE_USERNAME';\n\nfunction dehydrate(items) {\n  return {\n    type: DEHYDRATE_RESULT,\n    items: items\n  };\n}\n\nfunction updateAvatar(user, avatarHash) {\n  return {\n    type: UPDATE_AVATAR,\n    userId: user.id,\n    avatarHash: avatarHash\n  };\n}\n\nfunction updateUsername(user, username, slug) {\n  return {\n    type: UPDATE_USERNAME,\n    userId: user.id,\n    username: username,\n    slug: slug\n  };\n}\n\nfunction user() {\n  var state = arguments.length <= 0 || arguments[0] === undefined ? [] : arguments[0];\n  var action = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];\n\n  switch (action.type) {\n    case DEHYDRATE_RESULT:\n      return action.items.map(function (item) {\n        var status = item.status || null;\n        if (status) {\n          status = Object.assign({}, status, {\n            last_click: status.last_click ? (0, _moment2.default)(status.last_click) : null,\n            banned_until: status.banned_until ? (0, _moment2.default)(status.banned_until) : null\n          });\n        }\n\n        return Object.assign({}, item, {\n          status: status\n        });\n      });\n\n    default:\n      return state;\n  }\n}\n\n},{\"moment\":\"moment\"}],91:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Ajax = exports.Ajax = function () {\n  function Ajax() {\n    _classCallCheck(this, Ajax);\n\n    this._cookieName = null;\n    this._csrfToken = null;\n  }\n\n  _createClass(Ajax, [{\n    key: 'init',\n    value: function init(cookieName) {\n      this._cookieName = cookieName;\n      this._csrfToken = this.getCsrfToken();\n    }\n  }, {\n    key: 'getCsrfToken',\n    value: function getCsrfToken() {\n      if (document.cookie.indexOf(this._cookieName) !== -1) {\n        var cookieRegex = new RegExp(this._cookieName + '\\=([^;]*)');\n        var cookie = document.cookie.match(cookieRegex)[0];\n        return cookie ? cookie.split('=')[1] : null;\n      } else {\n        return null;\n      }\n    }\n  }, {\n    key: 'request',\n    value: function request(method, url, data) {\n      var self = this;\n      return new Promise(function (resolve, reject) {\n        var xhr = {\n          url: url,\n          method: method,\n          headers: {\n            'X-CSRFToken': self._csrfToken\n          },\n\n          data: data ? JSON.stringify(data) : null,\n          contentType: \"application/json; charset=utf-8\",\n          dataType: 'json',\n\n          success: function success(data) {\n            resolve(data);\n          },\n\n          error: function error(jqXHR) {\n            var rejection = jqXHR.responseJSON || {};\n\n            rejection.status = jqXHR.status;\n\n            if (rejection.status === 0) {\n              rejection.detail = gettext(\"Lost connection with application.\");\n            }\n\n            rejection.statusText = jqXHR.statusText;\n\n            reject(rejection);\n          }\n        };\n\n        $.ajax(xhr);\n      });\n    }\n  }, {\n    key: 'get',\n    value: function get(url, params) {\n      if (params) {\n        url += '?' + $.param(params);\n      }\n      return this.request('GET', url);\n    }\n  }, {\n    key: 'post',\n    value: function post(url, data) {\n      return this.request('POST', url, data);\n    }\n  }, {\n    key: 'patch',\n    value: function patch(url, data) {\n      return this.request('PATCH', url, data);\n    }\n  }, {\n    key: 'put',\n    value: function put(url, data) {\n      return this.request('PUT', url, data);\n    }\n  }, {\n    key: 'delete',\n    value: function _delete(url) {\n      return this.request('DELETE', url);\n    }\n  }, {\n    key: 'upload',\n    value: function upload(url, data, progress) {\n      var self = this;\n      return new Promise(function (resolve, reject) {\n        var xhr = {\n          url: url,\n          method: 'POST',\n          headers: {\n            'X-CSRFToken': self._csrfToken\n          },\n\n          data: data,\n          contentType: false,\n          processData: false,\n\n          xhr: function xhr() {\n            var xhr = new window.XMLHttpRequest();\n            xhr.upload.addEventListener(\"progress\", function (evt) {\n              if (evt.lengthComputable) {\n                progress(Math.round(evt.loaded / evt.total * 100));\n              }\n            }, false);\n            return xhr;\n          },\n\n          success: function success(response) {\n            resolve(response);\n          },\n\n          error: function error(jqXHR) {\n            var rejection = jqXHR.responseJSON || {};\n\n            rejection.status = jqXHR.status;\n\n            if (rejection.status === 0) {\n              rejection.detail = gettext(\"Lost connection with application.\");\n            }\n\n            rejection.statusText = jqXHR.statusText;\n\n            reject(rejection);\n          }\n        };\n\n        $.ajax(xhr);\n      });\n    }\n  }]);\n\n  return Ajax;\n}();\n\nexports.default = new Ajax();\n\n},{}],92:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Auth = undefined;\n\nvar _auth = require('../reducers/auth');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// jshint ignore:line\n\nvar Auth = exports.Auth = function () {\n  function Auth() {\n    _classCallCheck(this, Auth);\n  }\n\n  _createClass(Auth, [{\n    key: 'init',\n    value: function init(store, local, modal) {\n      this._store = store;\n      this._local = local;\n      this._modal = modal;\n\n      // tell other tabs what auth state is because we are most current with it\n      this.syncSession();\n\n      // listen for other tabs to tell us that state changed\n      this.watchState();\n    }\n  }, {\n    key: 'syncSession',\n    value: function syncSession() {\n      var state = this._store.getState().auth;\n      if (state.isAuthenticated) {\n        this._local.set('auth', {\n          isAuthenticated: true,\n          username: state.user.username\n        });\n      } else {\n        this._local.set('auth', {\n          isAuthenticated: false\n        });\n      }\n    }\n  }, {\n    key: 'watchState',\n    value: function watchState() {\n      var _this = this;\n\n      this._local.watch('auth', function (newState) {\n        if (newState.isAuthenticated) {\n          _this._store.dispatch((0, _auth.signIn)({\n            username: newState.username\n          }));\n        } else {\n          _this._store.dispatch((0, _auth.signOut)());\n        }\n      });\n      this._modal.hide();\n    }\n  }, {\n    key: 'signIn',\n    value: function signIn(user) {\n      this._store.dispatch((0, _auth.signIn)(user));\n      this._local.set('auth', {\n        isAuthenticated: true,\n        username: user.username\n      });\n      this._modal.hide();\n    }\n  }, {\n    key: 'signOut',\n    value: function signOut() {\n      this._store.dispatch((0, _auth.signOut)());\n      this._local.set('auth', {\n        isAuthenticated: false\n      });\n      this._modal.hide();\n    }\n  }, {\n    key: 'softSignOut',\n    value: function softSignOut() {\n      this._store.dispatch((0, _auth.signOut)(true));\n      this._local.set('auth', {\n        isAuthenticated: false\n      });\n      this._modal.hide();\n    }\n  }]);\n\n  return Auth;\n}();\n\nexports.default = new Auth();\n\n},{\"../reducers/auth\":86}],93:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); /* global grecaptcha */\n// jshint ignore:line\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Captcha = exports.ReCaptcha = exports.ReCaptchaComponent = exports.QACaptcha = exports.NoCaptcha = exports.BaseCaptcha = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _formGroup = require('../components/form-group');\n\nvar _formGroup2 = _interopRequireDefault(_formGroup);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// jshint ignore:line\n\nvar BaseCaptcha = exports.BaseCaptcha = function () {\n  function BaseCaptcha() {\n    _classCallCheck(this, BaseCaptcha);\n  }\n\n  _createClass(BaseCaptcha, [{\n    key: 'init',\n    value: function init(context, ajax, include, snackbar) {\n      this._context = context;\n      this._ajax = ajax;\n      this._include = include;\n      this._snackbar = snackbar;\n    }\n  }]);\n\n  return BaseCaptcha;\n}();\n\nvar NoCaptcha = exports.NoCaptcha = function (_BaseCaptcha) {\n  _inherits(NoCaptcha, _BaseCaptcha);\n\n  function NoCaptcha() {\n    _classCallCheck(this, NoCaptcha);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(NoCaptcha).apply(this, arguments));\n  }\n\n  _createClass(NoCaptcha, [{\n    key: 'load',\n    value: function load() {\n      return new Promise(function (resolve) {\n        // immediately resolve as we don't have anything to validate\n        resolve();\n      });\n    }\n  }, {\n    key: 'validator',\n    value: function validator() {\n      return null;\n    }\n  }, {\n    key: 'component',\n    value: function component() {\n      return null;\n    }\n  }]);\n\n  return NoCaptcha;\n}(BaseCaptcha);\n\nvar QACaptcha = exports.QACaptcha = function (_BaseCaptcha2) {\n  _inherits(QACaptcha, _BaseCaptcha2);\n\n  function QACaptcha() {\n    _classCallCheck(this, QACaptcha);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(QACaptcha).apply(this, arguments));\n  }\n\n  _createClass(QACaptcha, [{\n    key: 'load',\n    value: function load() {\n      var self = this;\n      return new Promise(function (resolve, reject) {\n        self._ajax.get(self._context.get('CAPTCHA_API_URL')).then(function (data) {\n          self.question = data.question;\n          self.helpText = data.help_text;\n          resolve();\n        }, function () {\n          self._snackbar.error(gettext(\"Failed to load CAPTCHA.\"));\n          reject();\n        });\n      });\n    }\n  }, {\n    key: 'validator',\n    value: function validator() {\n      return [];\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'component',\n    value: function component(kwargs) {\n      return _react2.default.createElement(\n        _formGroup2.default,\n        { label: this.question, 'for': 'id_captcha',\n          labelClass: kwargs.labelClass || \"col-sm-4\",\n          controlClass: kwargs.controlClass || \"col-sm-8\",\n          validation: kwargs.form.state.errors.captcha,\n          helpText: this.helpText || null },\n        _react2.default.createElement('input', { type: 'text', id: 'id_captcha', className: 'form-control',\n          'aria-describedby': 'id_captcha_status',\n          disabled: kwargs.form.state.isLoading,\n          onChange: kwargs.form.bindInput('captcha'),\n          value: kwargs.form.state.captcha })\n      );\n    }\n    /* jshint ignore:end */\n\n  }]);\n\n  return QACaptcha;\n}(BaseCaptcha);\n\nvar ReCaptchaComponent = exports.ReCaptchaComponent = function (_React$Component) {\n  _inherits(ReCaptchaComponent, _React$Component);\n\n  function ReCaptchaComponent() {\n    _classCallCheck(this, ReCaptchaComponent);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(ReCaptchaComponent).apply(this, arguments));\n  }\n\n  _createClass(ReCaptchaComponent, [{\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      var _this4 = this;\n\n      grecaptcha.render('recaptcha', {\n        'sitekey': this.props.siteKey,\n        'callback': function callback(response) {\n          // fire fakey event to binding\n          _this4.props.binding({\n            target: {\n              value: response\n            }\n          });\n        }\n      });\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement('div', { id: 'recaptcha' });\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return ReCaptchaComponent;\n}(_react2.default.Component);\n\nvar ReCaptcha = exports.ReCaptcha = function (_BaseCaptcha3) {\n  _inherits(ReCaptcha, _BaseCaptcha3);\n\n  function ReCaptcha() {\n    _classCallCheck(this, ReCaptcha);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(ReCaptcha).apply(this, arguments));\n  }\n\n  _createClass(ReCaptcha, [{\n    key: 'load',\n    value: function load() {\n      this._include.include('https://www.google.com/recaptcha/api.js', true);\n\n      return new Promise(function (resolve) {\n        var wait = function wait() {\n          if (typeof grecaptcha === \"undefined\") {\n            window.setTimeout(function () {\n              wait();\n            }, 200);\n          } else {\n            resolve();\n          }\n        };\n        wait();\n      });\n    }\n  }, {\n    key: 'validator',\n    value: function validator() {\n      return [];\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'component',\n    value: function component(kwargs) {\n      return _react2.default.createElement(\n        _formGroup2.default,\n        { label: gettext(\"Captcha\"), 'for': 'id_captcha',\n          labelClass: kwargs.labelClass || \"col-sm-4\",\n          controlClass: kwargs.controlClass || \"col-sm-8\",\n          validation: kwargs.form.state.errors.captcha,\n          helpText: gettext(\"Please solve the quick test.\") },\n        _react2.default.createElement(ReCaptchaComponent, { siteKey: this._context.get('SETTINGS').recaptcha_site_key,\n          binding: kwargs.form.bindInput('captcha') })\n      );\n    }\n    /* jshint ignore:end */\n\n  }]);\n\n  return ReCaptcha;\n}(BaseCaptcha);\n\nvar Captcha = exports.Captcha = function () {\n  function Captcha() {\n    _classCallCheck(this, Captcha);\n  }\n\n  _createClass(Captcha, [{\n    key: 'init',\n    value: function init(context, ajax, include, snackbar) {\n      switch (context.get('SETTINGS').captcha_type) {\n        case 'no':\n          this._captcha = new NoCaptcha();\n          break;\n\n        case 'qa':\n          this._captcha = new QACaptcha();\n          break;\n\n        case 're':\n          this._captcha = new ReCaptcha();\n          break;\n      }\n\n      this._captcha.init(context, ajax, include, snackbar);\n    }\n\n    // accessors for underlying strategy\n\n  }, {\n    key: 'load',\n    value: function load() {\n      return this._captcha.load();\n    }\n  }, {\n    key: 'validator',\n    value: function validator() {\n      return this._captcha.validator();\n    }\n  }, {\n    key: 'component',\n    value: function component(kwargs) {\n      return this._captcha.component(kwargs);\n    }\n  }]);\n\n  return Captcha;\n}();\n\nexports.default = new Captcha();\n\n},{\"../components/form-group\":57,\"react\":\"react\"}],94:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Include = exports.Include = function () {\n  function Include() {\n    _classCallCheck(this, Include);\n  }\n\n  _createClass(Include, [{\n    key: 'init',\n    value: function init(staticUrl) {\n      this._staticUrl = staticUrl;\n      this._included = [];\n    }\n  }, {\n    key: 'include',\n    value: function include(script) {\n      var remote = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1];\n\n      if (this._included.indexOf(script) === -1) {\n        this._included.push(script);\n        this._include(script, remote);\n      }\n    }\n  }, {\n    key: '_include',\n    value: function _include(script, remote) {\n      $.ajax({\n        url: (!remote ? this._staticUrl : '') + script,\n        cache: true,\n        dataType: 'script'\n      });\n    }\n  }]);\n\n  return Include;\n}();\n\nexports.default = new Include();\n\n},{}],95:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar storage = window.localStorage;\n\nvar LocalStorage = exports.LocalStorage = function () {\n  function LocalStorage() {\n    _classCallCheck(this, LocalStorage);\n  }\n\n  _createClass(LocalStorage, [{\n    key: 'init',\n    value: function init(prefix) {\n      var _this = this;\n\n      this._prefix = prefix;\n      this._watchers = [];\n\n      window.addEventListener('storage', function (e) {\n        var newValueJson = JSON.parse(e.newValue);\n        _this._watchers.forEach(function (watcher) {\n          if (watcher.key === e.key && e.oldValue !== e.newValue) {\n            watcher.callback(newValueJson);\n          }\n        });\n      });\n    }\n  }, {\n    key: 'set',\n    value: function set(key, value) {\n      storage.setItem(this._prefix + key, JSON.stringify(value));\n    }\n  }, {\n    key: 'get',\n    value: function get(key) {\n      var itemString = storage.getItem(this._prefix + key);\n      if (itemString) {\n        return JSON.parse(itemString);\n      } else {\n        return null;\n      }\n    }\n  }, {\n    key: 'watch',\n    value: function watch(key, callback) {\n      this._watchers.push({\n        key: this._prefix + key,\n        callback: callback\n      });\n    }\n  }]);\n\n  return LocalStorage;\n}();\n\nexports.default = new LocalStorage();\n\n},{}],96:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.MobileNavbarDropdown = undefined;\n\nvar _mountComponent = require('../utils/mount-component');\n\nvar _mountComponent2 = _interopRequireDefault(_mountComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar MobileNavbarDropdown = exports.MobileNavbarDropdown = function () {\n  function MobileNavbarDropdown() {\n    _classCallCheck(this, MobileNavbarDropdown);\n  }\n\n  _createClass(MobileNavbarDropdown, [{\n    key: 'init',\n    value: function init(element) {\n      this._element = element;\n      this._component = null;\n    }\n  }, {\n    key: 'show',\n    value: function show(component) {\n      if (this._component === component) {\n        this.hide();\n      } else {\n        this._component = component;\n        (0, _mountComponent2.default)(component, this._element.id);\n        $(this._element).addClass('open');\n      }\n    }\n  }, {\n    key: 'showConnected',\n    value: function showConnected(name, component) {\n      if (this._component === name) {\n        this.hide();\n      } else {\n        this._component = name;\n        (0, _mountComponent2.default)(component, this._element.id, true);\n        $(this._element).addClass('open');\n      }\n    }\n  }, {\n    key: 'hide',\n    value: function hide() {\n      $(this._element).removeClass('open');\n      this._component = null;\n    }\n  }]);\n\n  return MobileNavbarDropdown;\n}();\n\nexports.default = new MobileNavbarDropdown();\n\n},{\"../utils/mount-component\":105}],97:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Modal = undefined;\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _mountComponent = require('../utils/mount-component');\n\nvar _mountComponent2 = _interopRequireDefault(_mountComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Modal = exports.Modal = function () {\n  function Modal() {\n    _classCallCheck(this, Modal);\n  }\n\n  _createClass(Modal, [{\n    key: 'init',\n    value: function init(element) {\n      var _this = this;\n\n      this._element = element;\n\n      this._modal = $(element).modal({ show: false });\n\n      this._modal.on('hidden.bs.modal', function () {\n        _reactDom2.default.unmountComponentAtNode(_this._element);\n      });\n    }\n  }, {\n    key: 'show',\n    value: function show(component) {\n      (0, _mountComponent2.default)(component, this._element.id);\n      this._modal.modal('show');\n    }\n  }, {\n    key: 'hide',\n    value: function hide() {\n      this._modal.modal('hide');\n    }\n  }]);\n\n  return Modal;\n}();\n\nexports.default = new Modal();\n\n},{\"../utils/mount-component\":105,\"react-dom\":\"react-dom\"}],98:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar PageTitle = exports.PageTitle = function () {\n  function PageTitle() {\n    _classCallCheck(this, PageTitle);\n  }\n\n  _createClass(PageTitle, [{\n    key: 'init',\n    value: function init(forumName) {\n      this._forumName = forumName;\n    }\n  }, {\n    key: 'set',\n    value: function set(title) {\n      if (typeof title === 'string') {\n        title = { title: title };\n      }\n\n      var finalTitle = title.title;\n\n      if (title.page) {\n        var pageLabel = interpolate(gettext('page %(page)s'), {\n          page: title.page\n        }, true);\n\n        finalTitle += ' (' + pageLabel + ')';\n      }\n\n      if (title.parent) {\n        finalTitle += ' | ' + title.parent;\n      }\n\n      document.title = finalTitle + ' | ' + this._forumName;\n    }\n  }]);\n\n  return PageTitle;\n}();\n\nexports.default = new PageTitle();\n\n},{}],99:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Snackbar = undefined;\n\nvar _snackbar = require('../reducers/snackbar');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar HIDE_ANIMATION_LENGTH = 300;\nvar MESSAGE_SHOW_LENGTH = 5000;\n\nvar Snackbar = exports.Snackbar = function () {\n  function Snackbar() {\n    _classCallCheck(this, Snackbar);\n  }\n\n  _createClass(Snackbar, [{\n    key: 'init',\n    value: function init(store) {\n      this._store = store;\n      this._timeout = null;\n    }\n  }, {\n    key: 'alert',\n    value: function alert(message, type) {\n      var _this = this;\n\n      if (this._timeout) {\n        window.clearTimeout(this._timeout);\n        this._store.dispatch((0, _snackbar.hideSnackbar)());\n\n        this._timeout = window.setTimeout(function () {\n          _this._timeout = null;\n          _this.alert(message, type);\n        }, HIDE_ANIMATION_LENGTH);\n      } else {\n        this._store.dispatch((0, _snackbar.showSnackbar)(message, type));\n        this._timeout = window.setTimeout(function () {\n          _this._store.dispatch((0, _snackbar.hideSnackbar)());\n          _this._timeout = null;\n        }, MESSAGE_SHOW_LENGTH);\n      }\n    }\n\n    // shorthands for message types\n\n  }, {\n    key: 'info',\n    value: function info(message) {\n      this.alert(message, 'info');\n    }\n  }, {\n    key: 'success',\n    value: function success(message) {\n      this.alert(message, 'success');\n    }\n  }, {\n    key: 'warning',\n    value: function warning(message) {\n      this.alert(message, 'warning');\n    }\n  }, {\n    key: 'error',\n    value: function error(message) {\n      this.alert(message, 'error');\n    }\n\n    // shorthand for api errors\n\n  }, {\n    key: 'apiError',\n    value: function apiError(rejection) {\n      var message = gettext(\"Unknown error has occured.\");\n\n      if (rejection.status === 0) {\n        message = rejection.detail;\n      }\n\n      if (rejection.status === 400 && rejection.detail) {\n        message = rejection.detail;\n      }\n\n      if (rejection.status === 403) {\n        message = rejection.detail;\n        if (message === \"Permission denied\") {\n          message = gettext(\"You don't have permission to perform this action.\");\n        }\n      }\n\n      if (rejection.status === 404) {\n        message = gettext(\"Action link is invalid.\");\n      }\n\n      this.error(message);\n    }\n  }]);\n\n  return Snackbar;\n}();\n\nexports.default = new Snackbar();\n\n},{\"../reducers/snackbar\":87}],100:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.StoreWrapper = undefined;\n\nvar _redux = require('redux');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar StoreWrapper = exports.StoreWrapper = function () {\n  function StoreWrapper() {\n    _classCallCheck(this, StoreWrapper);\n\n    this._store = null;\n    this._reducers = {};\n    this._initialState = {};\n  }\n\n  _createClass(StoreWrapper, [{\n    key: 'addReducer',\n    value: function addReducer(name, reducer, initialState) {\n      this._reducers[name] = reducer;\n      this._initialState[name] = initialState;\n    }\n  }, {\n    key: 'init',\n    value: function init() {\n      this._store = (0, _redux.createStore)((0, _redux.combineReducers)(this._reducers), this._initialState);\n    }\n  }, {\n    key: 'getStore',\n    value: function getStore() {\n      return this._store;\n    }\n\n    // Store API\n\n  }, {\n    key: 'getState',\n    value: function getState() {\n      return this._store.getState();\n    }\n  }, {\n    key: 'dispatch',\n    value: function dispatch(action) {\n      return this._store.dispatch(action);\n    }\n  }]);\n\n  return StoreWrapper;\n}();\n\nexports.default = new StoreWrapper();\n\n},{\"redux\":\"redux\"}],101:[function(require,module,exports){\n\"use strict\";\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/* global zxcvbn */\n\nvar Zxcvbn = exports.Zxcvbn = function () {\n  function Zxcvbn() {\n    _classCallCheck(this, Zxcvbn);\n  }\n\n  _createClass(Zxcvbn, [{\n    key: \"init\",\n    value: function init(include) {\n      this._include = include;\n    }\n  }, {\n    key: \"scorePassword\",\n    value: function scorePassword(password, inputs) {\n      // 0-4 score, the more the stronger password\n      return zxcvbn(password, inputs).score;\n    }\n  }, {\n    key: \"load\",\n    value: function load() {\n      if (typeof zxcvbn === \"undefined\") {\n        this._include.include('misago/js/zxcvbn.js');\n        return this._loadingPromise();\n      } else {\n        return this._loadedPromise();\n      }\n    }\n  }, {\n    key: \"_loadingPromise\",\n    value: function _loadingPromise() {\n      return new Promise(function (resolve) {\n        var wait = function wait() {\n          if (typeof zxcvbn === \"undefined\") {\n            window.setTimeout(function () {\n              wait();\n            }, 200);\n          } else {\n            resolve();\n          }\n        };\n        wait();\n      });\n    }\n  }, {\n    key: \"_loadedPromise\",\n    value: function _loadedPromise() {\n      // we have already loaded zxcvbn.js, resolve away!\n      return new Promise(function (resolve) {\n        resolve();\n      });\n    }\n  }]);\n\n  return Zxcvbn;\n}();\n\nexports.default = new Zxcvbn();\n\n},{}],102:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nexports.default = function (ban, changeState) {\n  _reactDom2.default.render(\n  /* jshint ignore:start */\n  _react2.default.createElement(\n    _reactRedux.Provider,\n    { store: _store2.default.getStore() },\n    _react2.default.createElement(RedrawedBannedPage, { message: ban.message,\n      expires: ban.expires_on ? (0, _moment2.default)(ban.expires_on) : null })\n  ),\n  /* jshint ignore:end */\n  document.getElementById('page-mount'));\n\n  if (typeof changeState === 'undefined' || changeState) {\n    var forumName = _index2.default.get('SETTINGS').forum_name;\n    document.title = gettext(\"You are banned\") + ' | ' + forumName;\n    window.history.pushState({}, \"\", _index2.default.get('BANNED_URL'));\n  }\n};\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _reactRedux = require('react-redux');\n\nvar _bannedPage = require('../components/banned-page');\n\nvar _bannedPage2 = _interopRequireDefault(_bannedPage);\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _store = require('../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// jshint ignore:line\n\n/* jshint ignore:start */\n// jshint ignore:line\n// jshint ignore:line\nvar select = function select(state) {\n  return state.tick;\n}; // jshint ignore:line\n// jshint ignore:line\n\nvar RedrawedBannedPage = (0, _reactRedux.connect)(select)(_bannedPage2.default);\n/* jshint ignore:end */\n\n},{\"../components/banned-page\":50,\"../index\":85,\"../services/store\":100,\"moment\":\"moment\",\"react\":\"react\",\"react-dom\":\"react-dom\",\"react-redux\":\"react-redux\"}],103:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nexports.default = function (list, rowWidth) {\n  var padding = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2];\n\n  var rows = [];\n  var row = [];\n\n  list.forEach(function (element) {\n    row.push(element);\n    if (row.length === rowWidth) {\n      rows.push(row);\n      row = [];\n    }\n  });\n\n  // pad row to required length?\n  if (padding !== false && row.length > 0 && row.length < rowWidth) {\n    for (var i = row.length; i < rowWidth; i++) {\n      row.push(padding);\n    }\n  }\n\n  if (row.length) {\n    rows.push(row);\n  }\n\n  return rows;\n};\n\n},{}],104:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nexports.default = function (bytes) {\n  if (bytes > 1000 * 1000 * 1000) {\n    return Math.round(bytes * 100 / (1000 * 1000 * 1000)) / 100 + ' GB';\n  } else if (bytes > 1000 * 1000) {\n    return Math.round(bytes * 100 / (1000 * 1000)) / 100 + ' MB';\n  } else if (bytes > 1000) {\n    return Math.round(bytes * 100 / 1000) / 100 + ' KB';\n  } else {\n    return Math.round(bytes * 100) / 100 + ' B';\n  }\n};\n\n},{}],105:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nexports.default = function (Component, rootElementId) {\n  var connected = arguments.length <= 2 || arguments[2] === undefined ? true : arguments[2];\n\n  var rootElement = document.getElementById(rootElementId);\n\n  if (rootElement) {\n    if (connected) {\n      _reactDom2.default.render(\n      /* jshint ignore:start */\n      _react2.default.createElement(\n        _reactRedux.Provider,\n        { store: _store2.default.getStore() },\n        _react2.default.createElement(Component, null)\n      ),\n      /* jshint ignore:end */\n      rootElement);\n    } else {\n      _reactDom2.default.render(\n      /* jshint ignore:start */\n      _react2.default.createElement(Component, null),\n      /* jshint ignore:end */\n      rootElement);\n    }\n  }\n};\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _reactRedux = require('react-redux');\n\nvar _store = require('../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n},{\"../services/store\":100,\"react\":\"react\",\"react-dom\":\"react-dom\",\"react-redux\":\"react-redux\"}],106:[function(require,module,exports){\n\"use strict\";\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar OrderedList = function () {\n  function OrderedList(items) {\n    _classCallCheck(this, OrderedList);\n\n    this.isOrdered = false;\n    this._items = items || [];\n  }\n\n  _createClass(OrderedList, [{\n    key: \"add\",\n    value: function add(key, item, order) {\n      this._items.push({\n        key: key,\n        item: item,\n\n        after: order ? order.after || null : null,\n        before: order ? order.before || null : null\n      });\n    }\n  }, {\n    key: \"get\",\n    value: function get(key, value) {\n      for (var i = 0; i < this._items.length; i++) {\n        if (this._items[i].key === key) {\n          return this._items[i].item;\n        }\n      }\n\n      return value;\n    }\n  }, {\n    key: \"has\",\n    value: function has(key) {\n      return this.get(key) !== undefined;\n    }\n  }, {\n    key: \"values\",\n    value: function values() {\n      var values = [];\n      for (var i = 0; i < this._items.length; i++) {\n        values.push(this._items[i].item);\n      }\n      return values;\n    }\n  }, {\n    key: \"order\",\n    value: function order(values_only) {\n      if (!this.isOrdered) {\n        this._items = this._order(this._items);\n        this.isOrdered = true;\n      }\n\n      if (values_only || typeof values_only === 'undefined') {\n        return this.values();\n      } else {\n        return this._items;\n      }\n    }\n  }, {\n    key: \"orderedValues\",\n    value: function orderedValues() {\n      return this.order(true);\n    }\n  }, {\n    key: \"_order\",\n    value: function _order(unordered) {\n      // Index of unordered items\n      var index = [];\n      unordered.forEach(function (item) {\n        index.push(item.key);\n      });\n\n      // Ordered items\n      var ordered = [];\n      var ordering = [];\n\n      // First pass: register items that\n      // don't specify their order\n      unordered.forEach(function (item) {\n        if (!item.after && !item.before) {\n          ordered.push(item);\n          ordering.push(item.key);\n        }\n      });\n\n      // Second pass: register items that\n      // specify their before to \"_end\"\n      unordered.forEach(function (item) {\n        if (item.before === \"_end\") {\n          ordered.push(item);\n          ordering.push(item.key);\n        }\n      });\n\n      // Third pass: keep iterating items\n      // until we hit iterations limit or finish\n      // ordering list\n      function insertItem(item) {\n        var insertAt = -1;\n        if (ordering.indexOf(item.key) === -1) {\n          if (item.after) {\n            insertAt = ordering.indexOf(item.after);\n            if (insertAt !== -1) {\n              insertAt += 1;\n            }\n          } else if (item.before) {\n            insertAt = ordering.indexOf(item.before);\n          }\n\n          if (insertAt !== -1) {\n            ordered.splice(insertAt, 0, item);\n            ordering.splice(insertAt, 0, item.key);\n          }\n        }\n      }\n\n      var iterations = 200;\n      while (iterations > 0 && index.length !== ordering.length) {\n        iterations -= 1;\n        unordered.forEach(insertItem);\n      }\n\n      return ordered;\n    }\n  }]);\n\n  return OrderedList;\n}();\n\nexports.default = OrderedList;\n\n},{}],107:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.int = int;\nexports.range = range;\nfunction int(min, max) {\n  return Math.floor(Math.random() * (max - min + 1)) + min;\n}\n\nfunction range(min, max) {\n  var array = new Array(int(min, max));\n  for (var i = 0; i < array.length; i++) {\n    array[i] = i;\n  }\n\n  return array;\n}\n\n},{}],108:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nexports.default = function (options) {\n  var routes = {\n    component: options.component,\n    childRoutes: [{\n      path: options.root,\n      onEnter: function onEnter(nextState, replaceState) {\n        replaceState(null, options.paths[0].path);\n      }\n    }].concat(options.paths.map(function (path) {\n      return path;\n    }))\n  };\n\n  _reactDom2.default.render(_react2.default.createElement(\n    _reactRedux.Provider,\n    { store: _store2.default.getStore() },\n    _react2.default.createElement(_reactRouter.Router, { routes: routes, history: history })\n  ), rootElement);\n};\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _reactRedux = require('react-redux');\n\nvar _reactRouter = require('react-router');\n\nvar _createBrowserHistory = require('history/lib/createBrowserHistory');\n\nvar _createBrowserHistory2 = _interopRequireDefault(_createBrowserHistory);\n\nvar _store = require('../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// jshint ignore:start\n\nvar rootElement = document.getElementById('page-mount');\nvar history = new _createBrowserHistory2.default();\n\n},{\"../services/store\":100,\"history/lib/createBrowserHistory\":38,\"react\":\"react\",\"react-dom\":\"react-dom\",\"react-redux\":\"react-redux\",\"react-router\":\"react-router\"}],109:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.required = required;\nexports.email = email;\nexports.minLength = minLength;\nexports.maxLength = maxLength;\nexports.usernameMinLength = usernameMinLength;\nexports.usernameMaxLength = usernameMaxLength;\nexports.usernameContent = usernameContent;\nexports.passwordMinLength = passwordMinLength;\nvar EMAIL = /^(([^<>()[\\]\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/i;\nvar USERNAME = new RegExp('^[0-9a-z]+$', 'i');\n\nfunction required() {\n  return function (value) {\n    if ($.trim(value).length === 0) {\n      return gettext(\"This field is required.\");\n    }\n  };\n}\n\nfunction email(message) {\n  return function (value) {\n    if (!EMAIL.test(value)) {\n      return message || gettext(\"Enter a valid email address.\");\n    }\n  };\n}\n\nfunction minLength(limitValue, message) {\n  return function (value) {\n    var returnMessage = '';\n    var length = $.trim(value).length;\n\n    if (length < limitValue) {\n      if (message) {\n        returnMessage = message(limitValue, length);\n      } else {\n        returnMessage = ngettext(\"Ensure this value has at least %(limit_value)s character (it has %(show_value)s).\", \"Ensure this value has at least %(limit_value)s characters (it has %(show_value)s).\", limitValue);\n      }\n      return interpolate(returnMessage, {\n        limit_value: limitValue,\n        show_value: length\n      }, true);\n    }\n  };\n}\n\nfunction maxLength(limitValue, message) {\n  return function (value) {\n    var returnMessage = '';\n    var length = $.trim(value).length;\n\n    if (length > limitValue) {\n      if (message) {\n        returnMessage = message(limitValue, length);\n      } else {\n        returnMessage = ngettext(\"Ensure this value has at most %(limit_value)s character (it has %(show_value)s).\", \"Ensure this value has at most %(limit_value)s characters (it has %(show_value)s).\", limitValue);\n      }\n      return interpolate(returnMessage, {\n        limit_value: limitValue,\n        show_value: length\n      }, true);\n    }\n  };\n}\n\nfunction usernameMinLength(settings) {\n  var message = function message(limitValue) {\n    return ngettext(\"Username must be at least %(limit_value)s character long.\", \"Username must be at least %(limit_value)s characters long.\", limitValue);\n  };\n  return this.minLength(settings.username_length_min, message);\n}\n\nfunction usernameMaxLength(settings) {\n  var message = function message(limitValue) {\n    return ngettext(\"Username cannot be longer than %(limit_value)s character.\", \"Username cannot be longer than %(limit_value)s characters.\", limitValue);\n  };\n  return this.maxLength(settings.username_length_max, message);\n}\n\nfunction usernameContent() {\n  return function (value) {\n    if (!USERNAME.test($.trim(value))) {\n      return gettext(\"Username can only contain latin alphabet letters and digits.\");\n    }\n  };\n}\n\nfunction passwordMinLength(settings) {\n  var message = function message(limitValue) {\n    return ngettext(\"Valid password must be at least %(limit_value)s character long.\", \"Valid password must be at least %(limit_value)s characters long.\", limitValue);\n  };\n  return this.minLength(settings.password_length_min, message);\n}\n\n},{}]},{},[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29]);\n"],"sourceRoot":"/source/"}
+{"version":3,"sources":["misago.js"],"names":["e","t","n","r","s","o","u","a","require","i","f","Error","code","l","exports","call","length",1,"module","cleanUpNextTick","draining","currentQueue","queue","concat","queueIndex","drainQueue","timeout","setTimeout","len","run","clearTimeout","Item","fun","array","this","noop","process","nextTick","args","Array","arguments","push","prototype","apply","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","binding","name","cwd","chdir","dir","umask",2,"global","_interopRequireDefault","obj","__esModule","default","_classCallCheck","instance","Constructor","TypeError","_createClass","defineProperties","target","props","descriptor","enumerable","configurable","writable","Object","defineProperty","key","protoProps","staticProps","value","Misago","undefined","_orderedList","_orderedList2","_initializers","_context","initializer","item","after","before","context","_this","initOrder","orderedValues","forEach","fallback","has","misago","self","window","../../../../documents/misago/frontend/src/utils/ordered-list",3,"_ajax2","init","_index2","get","_index","_ajax","addInitializer","../../../../../documents/misago/frontend/src/index","../../../../../documents/misago/frontend/src/services/ajax",4,"_mountComponent2","_reactRedux","connect","_authMessage","select","_authMessage2","_mountComponent","../../../../../documents/misago/frontend/src/components/auth-message","../../../../../documents/misago/frontend/src/utils/mount-component","react-redux",5,"_store2","addReducer","_auth2","assign","isAuthenticated","isAnonymous","user","_auth","initialState","_store","../../../../../documents/misago/frontend/src/reducers/auth","../../../../../documents/misago/frontend/src/services/store",6,"_localStorage2","_modal2","_modal","_localStorage","../../../../../documents/misago/frontend/src/services/auth","../../../../../documents/misago/frontend/src/services/local-storage","../../../../../documents/misago/frontend/src/services/modal",7,"_bannedPage2","_bannedPage","../../../../../documents/misago/frontend/src/utils/banned-page",8,"_captcha2","_include2","_snackbar2","_captcha","_include","_snackbar","../../../../../documents/misago/frontend/src/services/captcha","../../../../../documents/misago/frontend/src/services/include","../../../../../documents/misago/frontend/src/services/snackbar",9,10,11,"element","document","getElementById","_mobileNavbarDropdown2","_mobileNavbarDropdown","../../../../../documents/misago/frontend/src/services/mobile-navbar-dropdown",12,13,"_moment2","locale","$","attr","_moment","moment",14,"_routedComponent2","root","component","_root2","paths","_root","_routedComponent","../../../../../documents/misago/frontend/src/components/options/root","../../../../../documents/misago/frontend/src/utils/routed-component",15,"_pageTitle2","forum_name","_pageTitle","../../../../../documents/misago/frontend/src/services/page-title",16,"_requestActivationLink2","_requestActivationLink","../../../../../documents/misago/frontend/src/components/request-activation-link",17,"_requestPasswordReset2","_requestPasswordReset","../../../../../documents/misago/frontend/src/components/request-password-reset",18,"_resetPasswordForm2","_resetPasswordForm","../../../../../documents/misago/frontend/src/components/reset-password-form",19,"Snackbar","../../../../../documents/misago/frontend/src/components/snackbar",20,"../../../../../documents/misago/frontend/src/reducers/snackbar",21,22,23,"_tick2","_tick","../../../../../documents/misago/frontend/src/reducers/tick",24,"setInterval","dispatch","doTick","TICK_PERIOD",25,"UserMenu","CompactUserMenu","../../../../../documents/misago/frontend/src/components/user-menu/root",26,"_usernameHistory2","_usernameHistory","../../../../../documents/misago/frontend/src/reducers/username-history",27,"../../../../../documents/misago/frontend/src/components/users/root",28,"_users2","_users","../../../../../documents/misago/frontend/src/reducers/users",29,"_zxcvbn2","_zxcvbn","../../../../../documents/misago/frontend/src/services/zxcvbn",30,"isUndefinedOrNull","isBuffer","x","copy","slice","objEquiv","b","opts","isArguments","pSlice","deepEqual","ka","objectKeys","kb","sort","actual","expected","Date","getTime","strict","./lib/is_arguments.js","./lib/keys.js",31,"supported","object","toString","unsupported","hasOwnProperty","propertyIsEnumerable","supportsArgumentsClass",32,"shim","keys",33,"PUSH","REPLACE","POP",34,"loopAsync","turns","work","callback","done","isDone","next","currentTurn",35,"createKey","KeyPrefix","saveState","state","sessionStorage","setItem","JSON","stringify","error","SecurityError","NODE_ENV","_warning2","QuotaExceededError","readState","json","getItem","parse","_warning","_process","warning",36,"addEventListener","node","event","listener","attachEvent","removeEventListener","detachEvent","getHashPath","location","href","split","replaceHashPath","path","replace","pathname","search","getWindowPath","hash","go","history","getUserConfirmation","message","confirm","supportsHistory","ua","navigator","userAgent","indexOf","supportsGoWithoutReloadUsingHash",37,"canUseDOM","createElement",38,"createBrowserHistory","getCurrentLocation","historyState","_DOMUtils","_historyState","_DOMStateStorage","isSupported","replaceState","_extends","_parsePath2","createLocation","startPopStateListener","_ref","popStateListener","transitionTo","finishTransition","basename","action","_Actions","useRefresh","pushState","listenBefore","listenerCount","stopPopStateListener","unlisten","listen","registerTransitionHook","hook","unregisterTransitionHook","options","_ExecutionEnvironment","_invariant2","forceRefresh","_createDOMHistory2","source","_invariant","_createDOMHistory","_parsePath","./Actions","./DOMStateStorage","./DOMUtils","./ExecutionEnvironment","./createDOMHistory","./parsePath","invariant",39,"createDOMHistory","_createHistory2","_createHistory","./createHistory",40,"createRandomKey","Math","random","substr","locationsAreEqual","_deepEqual2","createHistory","transitionHooks","filter","getCurrent","pendingLocation","allKeys","updateLocation","newLocation","current","changeListeners","_location","confirmTransitionTo","_AsyncUtils","index","_runTransitionHook2","result","ok","nextLocation","prevPath","createPath","nextPath","prevIndex","nextIndex","goBack","goForward","keyLength","createHref","_createLocation3","setState","updateLocationState","DefaultKeyLength","_deprecate2","_deepEqual","_createLocation2","_runTransitionHook","_deprecate","./AsyncUtils","./createLocation","./deprecate","./runTransitionHook","deep-equal",41,"_fourthArg",42,"deprecate","fn",43,"extractPath","string","match","substring",44,"parsePath","_extractPath2","hashIndex","searchIndex","_extractPath","./extractPath",45,"runTransitionHook",46,"condition","format","c","d","argIndex","framesToPop",47,48,"_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","create","constructor","setPrototypeOf","__proto__","auth","signedIn","signedOut","_react","_react2","_class","_React$Component","getPrototypeOf","reload","interpolate","gettext","username","className","getClassName","getMessage","type","onClick","refresh","Component","react",49,"BASE_URL","size","url","id","avatar_hash","src","getSrc",50,"html","dangerouslySetInnerHTML","__html","plain","expires","isAfter","expires_on","fromNow","getReasonMessage","getExpirationMessage",51,"_loader","_loader2","Button","disabled","loading","children","defaultProps","./loader",52,"_avatar","_button","_button2","cropAvatar","isLoading","avatarType","upload","cropit","post","api_url","avatar","crop","offset","zoom","then","data","onComplete","success","detail","rejection","status","showError","crop_tmp","crop_org","secret","getAvatarSecret","getAvatarHash","join","_this2","width","getAvatarSize","height","imageState","getImagePath","onImageLoaded","zoomLevel","imageSize","displayedWidth","offsetX","y","displayedHeight","offsetY","showIndex","../../services/ajax","../../services/snackbar","../avatar","../button",53,"Gallery","GalleryItem","_batch","_batch2","_Object$getPrototypeO","_temp","_ret","_len","_key","image","selection","_React$Component2","_this3","images","map","row","_React$Component3","_this4","save","response","_this5","galleries","../../index","../../utils/batch",54,"_avatar2","setGravatar","callApi","setGenerated","gravatar","showCrop","showUpload","showGallery","getAvatarPreview","getGravatarButton","getCropButton","getUploadButton","getGalleryButton","../loader",55,"ChangeAvatarError","_crop","_crop2","_upload","_upload2","_gallery","_gallery2","_modalLoader","_modalLoader2","reason","getErrorReason","completeFlow","avatarHash","updateAvatar","role","data-dismiss","aria-label","aria-hidden","getBody","../../reducers/users","../../services/store","../modal-loader","./crop","./gallery","./index","./upload",56,"_fileSize","_fileSize2","pickFile","click","uploadFile","files","validationError","validateFile","preview","URL","createObjectURL","progress","FormData","append","uploaded","info","limit","filesize","invalidTypeMsg","allowed_mime_types","extensionFound","loweredFilename","toLowerCase","allowed_extensions","extension","extensions","getUploadRequirements","aria-valuenow","aria-valuemin","aria-valuemax","style","getUploadProgressLabel","onChange","getUploadProgress","renderCrop","renderUpload","../../utils/file-size",57,"validation","isValidated","helpText","labelClass","htmlFor","label","controlClass","getFeedbackIcon","getFeedbackDescription","getFeedback","getHelpText","extra",58,"_defineProperty","_validators","validateRequired","required","bindInput","newState","formErrors","errors","validateField","handleSubmit","preventDefault","clean","promise","send","handleSuccess","handleError","validators","optional","validatedFields","fieldErrors","validate","field","requiredError","../utils/validators",59,"isActive","activeClassName",60,61,62,"_interopRequireWildcard","newObj","UsernameHistory","ChangeUsernameLoading","NoChangesLeft","ChangeUsername","_form","_form2","_formGroup","_formGroup2","_random","_Form","usernameContent","usernameMinLength","username_length_min","length_min","usernameMaxLength","username_length_max","length_max","phrases","changes_left","ngettext","acl","name_changes_expire","trim","complete","slug","apiError","onSubmit","for","next_on","next_change","changed_by","absolute_url","changed_by_username","changes","renderUserAvatar","renderUsername","old_username","new_username","changed_on","range","isLoaded","renderHistory","renderEmptyHistory","renderHistoryPreview","_React$Component4","_this6","addNameChange","updateUsername","_this7","set","parent","Promise","all","dehydrate","results","getChangeForm","../../reducers/username-history","../../services/page-title","../../utils/random","../../utils/validators","../form","../form-group",63,"_select","_select2","_yesNoSwitch","_yesNoSwitch2","is_hiding_presence","limits_private_thread_invites_to","subscribe_to_started_threads","subscribe_to_replied_threads","privateThreadInvitesChoices","icon","subscribeToChoices","patchUser","iconOn","iconOff","labelOn","labelOff","choices","../../reducers/auth","../select","../yes-no-switch",64,"CompactNav","SideNav","_reactRouter","_li","_li2","option","Link","to","baseUrl","../li","react-router",65,"store","tick","username-history","_forumOptions2","_changeUsername2","_signInCredentials2","_navs","_forumOptions","_changeUsername","_signInCredentials","toggleNav","dropdown","aria-haspopup","aria-expanded","getCompactNavClassName","./change-username","./forum-options","./navs","./sign-in-credentials",66,"ChangePassword","ChangeEmail","new_email","password","email","lengths","change_email","display","_Form2","new_password","repeat_password","passwordMinLength","change_password",67,"LABELS","STYLES","_score","_password","_inputs","inputs","cacheStale","scorePassword","score","getScore","../services/zxcvbn",68,"_register","_register2","showRegisterModal","account_activation","show","load","../services/captcha","../services/modal","../services/snackbar","./register.js",69,"RegisterComplete","RegisterForm","_passwordStrength","_passwordStrength2","captcha","validator","isValid","apiResponse","ban","hide","aria-describedby","form","getLegalFootNote","activation","getLead","getSubscript","completeRegistration","signIn","../index","../services/ajax","../services/auth","../utils/banned-page","./button","./form","./form-group","./password-strength",70,"LinkSent","RequestLinkForm","placeholder","reset",71,"AccountInactivePage","RequestResetForm","_reactDom","_reactDom2","showInactivePage","getActivateButton","render","react-dom",72,"PasswordChangedPage","ResetPasswordForm","_signIn","_signIn2","showSignIn","softSignOut","remove","./sign-in.js",73,"change","choice","getChoice","data-toggle","getIcon","getLabel",74,"showActivation","find","val","getCsrfToken","submit","getActivationButton",75,"snackbar","TYPES_CLASSES","snackbarClass","isVisible","getSnackbarClass",76,"CompactGuestNav","GuestNav","GuestMenu","_registerButton","_registerButton2","showSignInModal","_GuestMenu","showGuestMenu","../../services/mobile-navbar-dropdown","../../services/modal","../register-button","../sign-in.js",77,"_guestNav","_userNav","UserNav","CompactUserNav","./guest-nav","./user-nav",78,"selectUserMenu","decision","changeAvatar","logout","showConnected","showUserMenu","../change-avatar/root",79,"StatusLabel","StatusIcon","is_banned","is_hidden","is_online_hidden","is_offline_hidden","is_online","is_offline","getClass","banned_until","ban_expires","last_click","getHelp",80,"NoActivePosters","ActivePostersLoading","ActivePosters","ActivePoster","_userStatus","_userStatus2","rank","css_class","is_tab","rankUrl","getUserStatus","getRankName","getUserTitle","counter","meta","posts","count","posters","days","trackedPeriod","getLeadMessage","users","getEmptyMessage","_React$Component5","initWithPreloadedData","pop","initWithoutPreloadedData","poolId","startPooling","tracked_period","poolServer","list","route","../user-status",81,"TabsNav","listUrl","navLinks","lists",82,83,"_rank2","description","_activePosters2","_activePosters","_rank","./active-posters","./rank",84,"toggle",85,"./utils/ordered-list",86,"patch","PATCH_USER","SIGN_IN","signOut","soft","SIGN_OUT","UPDATE_AVATAR","userId","_newState","UPDATE_USERNAME","_newState2","./users",87,"showSnackbar","SHOW_SNACKBAR","messageType","hideSnackbar","HIDE_SNACKBAR",88,"TICK",89,"changedBy","ADD_NAME_CHANGE","items","DEHYDRATE_RESULT","unshift","floor","now",90,"dehydrateStatus",91,"Ajax","_cookieName","_csrfToken","cookieName","cookie","cookieRegex","RegExp","method","resolve","reject","xhr","headers","X-CSRFToken","contentType","dataType","jqXHR","responseJSON","statusText","ajax","params","param","request","processData","XMLHttpRequest","evt","lengthComputable","round","loaded","total",92,"Auth","local","modal","_local","syncSession","watchState","getState","watch","../reducers/auth",93,"Captcha","ReCaptcha","ReCaptchaComponent","QACaptcha","NoCaptcha","BaseCaptcha","include","_BaseCaptcha","_BaseCaptcha2","question","help_text","kwargs","grecaptcha","sitekey","siteKey","_BaseCaptcha3","wait","recaptcha_site_key","captcha_type","../components/form-group",94,"Include","staticUrl","_staticUrl","_included","script","remote","cache",95,"storage","localStorage","LocalStorage","prefix","_prefix","_watchers","newValueJson","newValue","watcher","oldValue","itemString",96,"MobileNavbarDropdown","_element","_component","addClass","removeClass","../utils/mount-component",97,"Modal","unmountComponentAtNode",98,"PageTitle","forumName","_forumName","finalTitle","page","pageLabel",99,"HIDE_ANIMATION_LENGTH","MESSAGE_SHOW_LENGTH","_timeout","alert","../reducers/snackbar",100,"StoreWrapper","_redux","_reducers","_initialState","reducer","createStore","combineReducers","redux",101,"Zxcvbn","zxcvbn","_loadingPromise","_loadedPromise",102,"changeState","Provider","getStore","RedrawedBannedPage","../components/banned-page","../services/store",103,"rowWidth","padding","rows",104,"bytes",105,"rootElementId","connected","rootElement",106,"OrderedList","isOrdered","_items","order","values","values_only","_order","unordered","insertItem","insertAt","ordering","ordered","splice","iterations",107,"int","min","max",108,"routes","childRoutes","onEnter","nextState","Router","_createBrowserHistory","_createBrowserHistory2","history/lib/createBrowserHistory",109,"EMAIL","test","minLength","limitValue","returnMessage","limit_value","show_value","maxLength","settings","USERNAME","password_length_min"],"mappings":"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","file":"misago.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){\n// shim for using process in browser\n\nvar process = module.exports = {};\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n    draining = false;\n    if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n    } else {\n        queueIndex = -1;\n    }\n    if (queue.length) {\n        drainQueue();\n    }\n}\n\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    var timeout = setTimeout(cleanUpNextTick);\n    draining = true;\n\n    var len = queue.length;\n    while(len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n            if (currentQueue) {\n                currentQueue[queueIndex].run();\n            }\n        }\n        queueIndex = -1;\n        len = queue.length;\n    }\n    currentQueue = null;\n    draining = false;\n    clearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n    var args = new Array(arguments.length - 1);\n    if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n            args[i - 1] = arguments[i];\n        }\n    }\n    queue.push(new Item(fun, args));\n    if (queue.length === 1 && !draining) {\n        setTimeout(drainQueue, 0);\n    }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n    this.fun = fun;\n    this.array = array;\n}\nItem.prototype.run = function () {\n    this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n},{}],2:[function(require,module,exports){\n(function (global){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Misago = undefined;\n\nvar _orderedList = require('../../../../documents/misago/frontend/src/utils/ordered-list');\n\nvar _orderedList2 = _interopRequireDefault(_orderedList);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Misago = exports.Misago = function () {\n  function Misago() {\n    _classCallCheck(this, Misago);\n\n    this._initializers = [];\n    this._context = {};\n  }\n\n  _createClass(Misago, [{\n    key: 'addInitializer',\n    value: function addInitializer(initializer) {\n      this._initializers.push({\n        key: initializer.name,\n\n        item: initializer.initializer,\n\n        after: initializer.after,\n        before: initializer.before\n      });\n    }\n  }, {\n    key: 'init',\n    value: function init(context) {\n      var _this = this;\n\n      this._context = context;\n\n      var initOrder = new _orderedList2.default(this._initializers).orderedValues();\n      initOrder.forEach(function (initializer) {\n        initializer(_this);\n      });\n    }\n\n    // context accessors\n\n  }, {\n    key: 'has',\n    value: function has(key) {\n      return !!this._context[key];\n    }\n  }, {\n    key: 'get',\n    value: function get(key, fallback) {\n      if (this.has(key)) {\n        return this._context[key];\n      } else {\n        return fallback || undefined;\n      }\n    }\n  }, {\n    key: 'pop',\n    value: function pop(key) {\n      if (this.has(key)) {\n        var value = this._context[key];\n        this._context[key] = null;\n        return value;\n      } else {\n        return undefined;\n      }\n    }\n  }]);\n\n  return Misago;\n}();\n\n// create  singleton\n\nvar misago = new Misago();\n\n// expose it globally\nglobal.misago = misago;\n\n// and export it for tests and stuff\nexports.default = misago;\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{\"../../../../documents/misago/frontend/src/utils/ordered-list\":106}],3:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _ajax = require('../../../../../documents/misago/frontend/src/services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _ajax2.default.init(_index2.default.get('CSRF_COOKIE_NAME'));\n}\n\n_index2.default.addInitializer({\n  name: 'ajax',\n  initializer: initializer\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/services/ajax\":91}],4:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _reactRedux = require('react-redux');\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _authMessage = require('../../../../../documents/misago/frontend/src/components/auth-message');\n\nvar _authMessage2 = _interopRequireDefault(_authMessage);\n\nvar _mountComponent = require('../../../../../documents/misago/frontend/src/utils/mount-component');\n\nvar _mountComponent2 = _interopRequireDefault(_mountComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  (0, _mountComponent2.default)((0, _reactRedux.connect)(_authMessage.select)(_authMessage2.default), 'auth-message-mount');\n}\n\n_index2.default.addInitializer({\n  name: 'component:auth-message',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../documents/misago/frontend/src/components/auth-message\":48,\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/utils/mount-component\":105,\"react-redux\":\"react-redux\"}],5:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _auth = require('../../../../../documents/misago/frontend/src/reducers/auth');\n\nvar _auth2 = _interopRequireDefault(_auth);\n\nvar _store = require('../../../../../documents/misago/frontend/src/services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer(context) {\n  _store2.default.addReducer('auth', _auth2.default, Object.assign({\n    'isAuthenticated': context.get('isAuthenticated'),\n    'isAnonymous': !context.get('isAuthenticated'),\n\n    'user': context.get('user')\n  }, _auth.initialState));\n}\n\n_index2.default.addInitializer({\n  name: 'reducer:auth',\n  initializer: initializer,\n  before: 'store'\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/reducers/auth\":86,\"../../../../../documents/misago/frontend/src/services/store\":100}],6:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _auth = require('../../../../../documents/misago/frontend/src/services/auth');\n\nvar _auth2 = _interopRequireDefault(_auth);\n\nvar _modal = require('../../../../../documents/misago/frontend/src/services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nvar _store = require('../../../../../documents/misago/frontend/src/services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nvar _localStorage = require('../../../../../documents/misago/frontend/src/services/local-storage');\n\nvar _localStorage2 = _interopRequireDefault(_localStorage);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _auth2.default.init(_store2.default, _localStorage2.default, _modal2.default);\n}\n\n_index2.default.addInitializer({\n  name: 'auth',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/services/auth\":92,\"../../../../../documents/misago/frontend/src/services/local-storage\":95,\"../../../../../documents/misago/frontend/src/services/modal\":97,\"../../../../../documents/misago/frontend/src/services/store\":100}],7:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _bannedPage = require('../../../../../documents/misago/frontend/src/utils/banned-page');\n\nvar _bannedPage2 = _interopRequireDefault(_bannedPage);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer(context) {\n  if (context.has('BAN_MESSAGE')) {\n    (0, _bannedPage2.default)(context.get('BAN_MESSAGE'), false);\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'component:baned-page',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/utils/banned-page\":102}],8:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _ajax = require('../../../../../documents/misago/frontend/src/services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _captcha = require('../../../../../documents/misago/frontend/src/services/captcha');\n\nvar _captcha2 = _interopRequireDefault(_captcha);\n\nvar _include = require('../../../../../documents/misago/frontend/src/services/include');\n\nvar _include2 = _interopRequireDefault(_include);\n\nvar _snackbar = require('../../../../../documents/misago/frontend/src/services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer(context) {\n  _captcha2.default.init(context, _ajax2.default, _include2.default, _snackbar2.default);\n}\n\n_index2.default.addInitializer({\n  name: 'captcha',\n  initializer: initializer\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/services/ajax\":91,\"../../../../../documents/misago/frontend/src/services/captcha\":93,\"../../../../../documents/misago/frontend/src/services/include\":94,\"../../../../../documents/misago/frontend/src/services/snackbar\":99}],9:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _include = require('../../../../../documents/misago/frontend/src/services/include');\n\nvar _include2 = _interopRequireDefault(_include);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer(context) {\n  _include2.default.init(context.get('STATIC_URL'));\n}\n\n_index2.default.addInitializer({\n  name: 'include',\n  initializer: initializer\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/services/include\":94}],10:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _localStorage = require('../../../../../documents/misago/frontend/src/services/local-storage');\n\nvar _localStorage2 = _interopRequireDefault(_localStorage);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _localStorage2.default.init('misago_');\n}\n\n_index2.default.addInitializer({\n  name: 'local-storage',\n  initializer: initializer\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/services/local-storage\":95}],11:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _mobileNavbarDropdown = require('../../../../../documents/misago/frontend/src/services/mobile-navbar-dropdown');\n\nvar _mobileNavbarDropdown2 = _interopRequireDefault(_mobileNavbarDropdown);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  var element = document.getElementById('mobile-navbar-dropdown-mount');\n  if (element) {\n    _mobileNavbarDropdown2.default.init(element);\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'dropdown',\n  initializer: initializer,\n  before: 'store'\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/services/mobile-navbar-dropdown\":96}],12:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _modal = require('../../../../../documents/misago/frontend/src/services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  var element = document.getElementById('modal-mount');\n  if (element) {\n    _modal2.default.init(element);\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'modal',\n  initializer: initializer,\n  before: 'store'\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/services/modal\":97}],13:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _moment2.default.locale($('html').attr('lang'));\n}\n\n_index2.default.addInitializer({\n  name: 'moment',\n  initializer: initializer\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":85,\"moment\":\"moment\"}],14:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _root = require('../../../../../documents/misago/frontend/src/components/options/root');\n\nvar _root2 = _interopRequireDefault(_root);\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _store = require('../../../../../documents/misago/frontend/src/services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nvar _routedComponent = require('../../../../../documents/misago/frontend/src/utils/routed-component');\n\nvar _routedComponent2 = _interopRequireDefault(_routedComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer(context) {\n  if (context.has('USER_OPTIONS')) {\n    (0, _routedComponent2.default)({\n      root: _index2.default.get('USERCP_URL'),\n      component: _root2.default,\n      paths: (0, _root.paths)(_store2.default)\n    });\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'component:options',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../documents/misago/frontend/src/components/options/root\":65,\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/services/store\":100,\"../../../../../documents/misago/frontend/src/utils/routed-component\":108}],15:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _pageTitle = require('../../../../../documents/misago/frontend/src/services/page-title');\n\nvar _pageTitle2 = _interopRequireDefault(_pageTitle);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer(context) {\n  _pageTitle2.default.init(context.get('SETTINGS').forum_name);\n}\n\n_index2.default.addInitializer({\n  name: 'page-title',\n  initializer: initializer\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/services/page-title\":98}],16:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _requestActivationLink = require('../../../../../documents/misago/frontend/src/components/request-activation-link');\n\nvar _requestActivationLink2 = _interopRequireDefault(_requestActivationLink);\n\nvar _mountComponent = require('../../../../../documents/misago/frontend/src/utils/mount-component');\n\nvar _mountComponent2 = _interopRequireDefault(_mountComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  if (document.getElementById('request-activation-link-mount')) {\n    (0, _mountComponent2.default)(_requestActivationLink2.default, 'request-activation-link-mount', false);\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'component:request-activation-link',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../documents/misago/frontend/src/components/request-activation-link\":70,\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/utils/mount-component\":105}],17:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _requestPasswordReset = require('../../../../../documents/misago/frontend/src/components/request-password-reset');\n\nvar _requestPasswordReset2 = _interopRequireDefault(_requestPasswordReset);\n\nvar _mountComponent = require('../../../../../documents/misago/frontend/src/utils/mount-component');\n\nvar _mountComponent2 = _interopRequireDefault(_mountComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  if (document.getElementById('request-password-reset-mount')) {\n    (0, _mountComponent2.default)(_requestPasswordReset2.default, 'request-password-reset-mount', false);\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'component:request-password-reset',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../documents/misago/frontend/src/components/request-password-reset\":71,\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/utils/mount-component\":105}],18:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _resetPasswordForm = require('../../../../../documents/misago/frontend/src/components/reset-password-form');\n\nvar _resetPasswordForm2 = _interopRequireDefault(_resetPasswordForm);\n\nvar _mountComponent = require('../../../../../documents/misago/frontend/src/utils/mount-component');\n\nvar _mountComponent2 = _interopRequireDefault(_mountComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  if (document.getElementById('reset-password-form-mount')) {\n    (0, _mountComponent2.default)(_resetPasswordForm2.default, 'reset-password-form-mount', false);\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'component:reset-password-form',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../documents/misago/frontend/src/components/reset-password-form\":72,\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/utils/mount-component\":105}],19:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _reactRedux = require('react-redux');\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _snackbar = require('../../../../../documents/misago/frontend/src/components/snackbar');\n\nvar _mountComponent = require('../../../../../documents/misago/frontend/src/utils/mount-component');\n\nvar _mountComponent2 = _interopRequireDefault(_mountComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  (0, _mountComponent2.default)((0, _reactRedux.connect)(_snackbar.select)(_snackbar.Snackbar), 'snackbar-mount');\n}\n\n_index2.default.addInitializer({\n  name: 'component:snackbar',\n  initializer: initializer,\n  after: 'snackbar'\n});\n\n},{\"../../../../../documents/misago/frontend/src/components/snackbar\":75,\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/utils/mount-component\":105,\"react-redux\":\"react-redux\"}],20:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _snackbar = require('../../../../../documents/misago/frontend/src/reducers/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _store = require('../../../../../documents/misago/frontend/src/services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _store2.default.addReducer('snackbar', _snackbar2.default, _snackbar.initialState);\n}\n\n_index2.default.addInitializer({\n  name: 'reducer:snackbar',\n  initializer: initializer,\n  before: 'store'\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/reducers/snackbar\":87,\"../../../../../documents/misago/frontend/src/services/store\":100}],21:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _snackbar = require('../../../../../documents/misago/frontend/src/services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _store = require('../../../../../documents/misago/frontend/src/services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _snackbar2.default.init(_store2.default);\n}\n\n_index2.default.addInitializer({\n  name: 'snackbar',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/services/snackbar\":99,\"../../../../../documents/misago/frontend/src/services/store\":100}],22:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _store = require('../../../../../documents/misago/frontend/src/services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _store2.default.init();\n}\n\n_index2.default.addInitializer({\n  name: 'store',\n  initializer: initializer,\n  before: '_end'\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/services/store\":100}],23:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _tick = require('../../../../../documents/misago/frontend/src/reducers/tick');\n\nvar _tick2 = _interopRequireDefault(_tick);\n\nvar _store = require('../../../../../documents/misago/frontend/src/services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _store2.default.addReducer('tick', _tick2.default, _tick.initialState);\n}\n\n_index2.default.addInitializer({\n  name: 'reducer:tick',\n  initializer: initializer,\n  before: 'store'\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/reducers/tick\":88,\"../../../../../documents/misago/frontend/src/services/store\":100}],24:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _tick = require('../../../../../documents/misago/frontend/src/reducers/tick');\n\nvar _store = require('../../../../../documents/misago/frontend/src/services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar TICK_PERIOD = 50 * 1000; //do the tick every 50s\n\nfunction initializer() {\n  window.setInterval(function () {\n    _store2.default.dispatch((0, _tick.doTick)());\n  }, TICK_PERIOD);\n}\n\n_index2.default.addInitializer({\n  name: 'tick-start',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/reducers/tick\":88,\"../../../../../documents/misago/frontend/src/services/store\":100}],25:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _reactRedux = require('react-redux');\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _root = require('../../../../../documents/misago/frontend/src/components/user-menu/root');\n\nvar _mountComponent = require('../../../../../documents/misago/frontend/src/utils/mount-component');\n\nvar _mountComponent2 = _interopRequireDefault(_mountComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  (0, _mountComponent2.default)((0, _reactRedux.connect)(_root.select)(_root.UserMenu), 'user-menu-mount');\n  (0, _mountComponent2.default)((0, _reactRedux.connect)(_root.select)(_root.CompactUserMenu), 'user-menu-compact-mount');\n}\n\n_index2.default.addInitializer({\n  name: 'component:user-menu',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../documents/misago/frontend/src/components/user-menu/root\":77,\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/utils/mount-component\":105,\"react-redux\":\"react-redux\"}],26:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _usernameHistory = require('../../../../../documents/misago/frontend/src/reducers/username-history');\n\nvar _usernameHistory2 = _interopRequireDefault(_usernameHistory);\n\nvar _store = require('../../../../../documents/misago/frontend/src/services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _store2.default.addReducer('username-history', _usernameHistory2.default, []);\n}\n\n_index2.default.addInitializer({\n  name: 'reducer:username-history',\n  initializer: initializer,\n  before: 'store'\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/reducers/username-history\":89,\"../../../../../documents/misago/frontend/src/services/store\":100}],27:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _root = require('../../../../../documents/misago/frontend/src/components/users/root');\n\nvar _root2 = _interopRequireDefault(_root);\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _store = require('../../../../../documents/misago/frontend/src/services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nvar _routedComponent = require('../../../../../documents/misago/frontend/src/utils/routed-component');\n\nvar _routedComponent2 = _interopRequireDefault(_routedComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer(context) {\n  if (context.has('USERS_LISTS')) {\n    (0, _routedComponent2.default)({\n      root: _index2.default.get('USERS_LIST_URL'),\n      component: _root2.default,\n      paths: (0, _root.paths)(_store2.default)\n    });\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'component:users',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../documents/misago/frontend/src/components/users/root\":83,\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/services/store\":100,\"../../../../../documents/misago/frontend/src/utils/routed-component\":108}],28:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _users = require('../../../../../documents/misago/frontend/src/reducers/users');\n\nvar _users2 = _interopRequireDefault(_users);\n\nvar _store = require('../../../../../documents/misago/frontend/src/services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _store2.default.addReducer('users', _users2.default, []);\n}\n\n_index2.default.addInitializer({\n  name: 'reducer:users',\n  initializer: initializer,\n  before: 'store'\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/reducers/users\":90,\"../../../../../documents/misago/frontend/src/services/store\":100}],29:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _include = require('../../../../../documents/misago/frontend/src/services/include');\n\nvar _include2 = _interopRequireDefault(_include);\n\nvar _zxcvbn = require('../../../../../documents/misago/frontend/src/services/zxcvbn');\n\nvar _zxcvbn2 = _interopRequireDefault(_zxcvbn);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _zxcvbn2.default.init(_include2.default);\n}\n\n_index2.default.addInitializer({\n  name: 'zxcvbn',\n  initializer: initializer\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":85,\"../../../../../documents/misago/frontend/src/services/include\":94,\"../../../../../documents/misago/frontend/src/services/zxcvbn\":101}],30:[function(require,module,exports){\nvar pSlice = Array.prototype.slice;\nvar objectKeys = require('./lib/keys.js');\nvar isArguments = require('./lib/is_arguments.js');\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n  if (!opts) opts = {};\n  // 7.1. All identical values are equivalent, as determined by ===.\n  if (actual === expected) {\n    return true;\n\n  } else if (actual instanceof Date && expected instanceof Date) {\n    return actual.getTime() === expected.getTime();\n\n  // 7.3. Other pairs that do not both pass typeof value == 'object',\n  // equivalence is determined by ==.\n  } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n    return opts.strict ? actual === expected : actual == expected;\n\n  // 7.4. For all other Object pairs, including Array objects, equivalence is\n  // determined by having the same number of owned properties (as verified\n  // with Object.prototype.hasOwnProperty.call), the same set of keys\n  // (although not necessarily the same order), equivalent values for every\n  // corresponding key, and an identical 'prototype' property. Note: this\n  // accounts for both named and indexed properties on Arrays.\n  } else {\n    return objEquiv(actual, expected, opts);\n  }\n}\n\nfunction isUndefinedOrNull(value) {\n  return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n  if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n  if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n    return false;\n  }\n  if (x.length > 0 && typeof x[0] !== 'number') return false;\n  return true;\n}\n\nfunction objEquiv(a, b, opts) {\n  var i, key;\n  if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n    return false;\n  // an identical 'prototype' property.\n  if (a.prototype !== b.prototype) return false;\n  //~~~I've managed to break Object.keys through screwy arguments passing.\n  //   Converting to array solves the problem.\n  if (isArguments(a)) {\n    if (!isArguments(b)) {\n      return false;\n    }\n    a = pSlice.call(a);\n    b = pSlice.call(b);\n    return deepEqual(a, b, opts);\n  }\n  if (isBuffer(a)) {\n    if (!isBuffer(b)) {\n      return false;\n    }\n    if (a.length !== b.length) return false;\n    for (i = 0; i < a.length; i++) {\n      if (a[i] !== b[i]) return false;\n    }\n    return true;\n  }\n  try {\n    var ka = objectKeys(a),\n        kb = objectKeys(b);\n  } catch (e) {//happens when one is a string literal and the other isn't\n    return false;\n  }\n  // having the same number of owned properties (keys incorporates\n  // hasOwnProperty)\n  if (ka.length != kb.length)\n    return false;\n  //the same set of keys (although not necessarily the same order),\n  ka.sort();\n  kb.sort();\n  //~~~cheap key test\n  for (i = ka.length - 1; i >= 0; i--) {\n    if (ka[i] != kb[i])\n      return false;\n  }\n  //equivalent values for every corresponding key, and\n  //~~~possibly expensive deep test\n  for (i = ka.length - 1; i >= 0; i--) {\n    key = ka[i];\n    if (!deepEqual(a[key], b[key], opts)) return false;\n  }\n  return typeof a === typeof b;\n}\n\n},{\"./lib/is_arguments.js\":31,\"./lib/keys.js\":32}],31:[function(require,module,exports){\nvar supportsArgumentsClass = (function(){\n  return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n  return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n  return object &&\n    typeof object == 'object' &&\n    typeof object.length == 'number' &&\n    Object.prototype.hasOwnProperty.call(object, 'callee') &&\n    !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n    false;\n};\n\n},{}],32:[function(require,module,exports){\nexports = module.exports = typeof Object.keys === 'function'\n  ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n  var keys = [];\n  for (var key in obj) keys.push(key);\n  return keys;\n}\n\n},{}],33:[function(require,module,exports){\n/**\n * Indicates that navigation was caused by a call to history.push.\n */\n'use strict';\n\nexports.__esModule = true;\nvar PUSH = 'PUSH';\n\nexports.PUSH = PUSH;\n/**\n * Indicates that navigation was caused by a call to history.replace.\n */\nvar REPLACE = 'REPLACE';\n\nexports.REPLACE = REPLACE;\n/**\n * Indicates that navigation was caused by some other action such\n * as using a browser's back/forward buttons and/or manually manipulating\n * the URL in a browser's location bar. This is the default.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate\n * for more information.\n */\nvar POP = 'POP';\n\nexports.POP = POP;\nexports['default'] = {\n  PUSH: PUSH,\n  REPLACE: REPLACE,\n  POP: POP\n};\n},{}],34:[function(require,module,exports){\n\"use strict\";\n\nexports.__esModule = true;\nexports.loopAsync = loopAsync;\n\nfunction loopAsync(turns, work, callback) {\n  var currentTurn = 0;\n  var isDone = false;\n\n  function done() {\n    isDone = true;\n    callback.apply(this, arguments);\n  }\n\n  function next() {\n    if (isDone) return;\n\n    if (currentTurn < turns) {\n      work.call(this, currentTurn++, next, done);\n    } else {\n      done.apply(this, arguments);\n    }\n  }\n\n  next();\n}\n},{}],35:[function(require,module,exports){\n(function (process){\n/*eslint-disable no-empty */\n'use strict';\n\nexports.__esModule = true;\nexports.saveState = saveState;\nexports.readState = readState;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar KeyPrefix = '@@History/';\nvar QuotaExceededError = 'QuotaExceededError';\nvar SecurityError = 'SecurityError';\n\nfunction createKey(key) {\n  return KeyPrefix + key;\n}\n\nfunction saveState(key, state) {\n  try {\n    window.sessionStorage.setItem(createKey(key), JSON.stringify(state));\n  } catch (error) {\n    if (error.name === SecurityError) {\n      // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n      // attempt to access window.sessionStorage.\n      process.env.NODE_ENV !== 'production' ? _warning2['default'](false, '[history] Unable to save state; sessionStorage is not available due to security settings') : undefined;\n\n      return;\n    }\n\n    if (error.name === QuotaExceededError && window.sessionStorage.length === 0) {\n      // Safari \"private mode\" throws QuotaExceededError.\n      process.env.NODE_ENV !== 'production' ? _warning2['default'](false, '[history] Unable to save state; sessionStorage is not available in Safari private mode') : undefined;\n\n      return;\n    }\n\n    throw error;\n  }\n}\n\nfunction readState(key) {\n  var json = undefined;\n  try {\n    json = window.sessionStorage.getItem(createKey(key));\n  } catch (error) {\n    if (error.name === SecurityError) {\n      // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n      // attempt to access window.sessionStorage.\n      process.env.NODE_ENV !== 'production' ? _warning2['default'](false, '[history] Unable to read state; sessionStorage is not available due to security settings') : undefined;\n\n      return null;\n    }\n  }\n\n  if (json) {\n    try {\n      return JSON.parse(json);\n    } catch (error) {\n      // Ignore invalid JSON.\n    }\n  }\n\n  return null;\n}\n}).call(this,require('_process'))\n},{\"_process\":1,\"warning\":47}],36:[function(require,module,exports){\n'use strict';\n\nexports.__esModule = true;\nexports.addEventListener = addEventListener;\nexports.removeEventListener = removeEventListener;\nexports.getHashPath = getHashPath;\nexports.replaceHashPath = replaceHashPath;\nexports.getWindowPath = getWindowPath;\nexports.go = go;\nexports.getUserConfirmation = getUserConfirmation;\nexports.supportsHistory = supportsHistory;\nexports.supportsGoWithoutReloadUsingHash = supportsGoWithoutReloadUsingHash;\n\nfunction addEventListener(node, event, listener) {\n  if (node.addEventListener) {\n    node.addEventListener(event, listener, false);\n  } else {\n    node.attachEvent('on' + event, listener);\n  }\n}\n\nfunction removeEventListener(node, event, listener) {\n  if (node.removeEventListener) {\n    node.removeEventListener(event, listener, false);\n  } else {\n    node.detachEvent('on' + event, listener);\n  }\n}\n\nfunction getHashPath() {\n  // We can't use window.location.hash here because it's not\n  // consistent across browsers - Firefox will pre-decode it!\n  return window.location.href.split('#')[1] || '';\n}\n\nfunction replaceHashPath(path) {\n  window.location.replace(window.location.pathname + window.location.search + '#' + path);\n}\n\nfunction getWindowPath() {\n  return window.location.pathname + window.location.search + window.location.hash;\n}\n\nfunction go(n) {\n  if (n) window.history.go(n);\n}\n\nfunction getUserConfirmation(message, callback) {\n  callback(window.confirm(message));\n}\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/rackt/react-router/issues/586\n */\n\nfunction supportsHistory() {\n  var ua = navigator.userAgent;\n  if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) {\n    return false;\n  }\n  // FIXME: Work around our browser history not working correctly on Chrome\n  // iOS: https://github.com/rackt/react-router/issues/2565\n  if (ua.indexOf('CriOS') !== -1) {\n    return false;\n  }\n  return window.history && 'pushState' in window.history;\n}\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n  var ua = navigator.userAgent;\n  return ua.indexOf('Firefox') === -1;\n}\n},{}],37:[function(require,module,exports){\n'use strict';\n\nexports.__esModule = true;\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nexports.canUseDOM = canUseDOM;\n},{}],38:[function(require,module,exports){\n(function (process){\n'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _Actions = require('./Actions');\n\nvar _ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar _DOMUtils = require('./DOMUtils');\n\nvar _DOMStateStorage = require('./DOMStateStorage');\n\nvar _createDOMHistory = require('./createDOMHistory');\n\nvar _createDOMHistory2 = _interopRequireDefault(_createDOMHistory);\n\nvar _parsePath = require('./parsePath');\n\nvar _parsePath2 = _interopRequireDefault(_parsePath);\n\n/**\n * Creates and returns a history object that uses HTML5's history API\n * (pushState, replaceState, and the popstate event) to manage history.\n * This is the recommended method of managing history in browsers because\n * it provides the cleanest URLs.\n *\n * Note: In browsers that do not support the HTML5 history API full\n * page reloads will be used to preserve URLs.\n */\nfunction createBrowserHistory() {\n  var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n  !_ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, 'Browser history needs a DOM') : _invariant2['default'](false) : undefined;\n\n  var forceRefresh = options.forceRefresh;\n\n  var isSupported = _DOMUtils.supportsHistory();\n  var useRefresh = !isSupported || forceRefresh;\n\n  function getCurrentLocation(historyState) {\n    historyState = historyState || window.history.state || {};\n\n    var path = _DOMUtils.getWindowPath();\n    var _historyState = historyState;\n    var key = _historyState.key;\n\n    var state = undefined;\n    if (key) {\n      state = _DOMStateStorage.readState(key);\n    } else {\n      state = null;\n      key = history.createKey();\n\n      if (isSupported) window.history.replaceState(_extends({}, historyState, { key: key }), null, path);\n    }\n\n    var location = _parsePath2['default'](path);\n\n    return history.createLocation(_extends({}, location, { state: state }), undefined, key);\n  }\n\n  function startPopStateListener(_ref) {\n    var transitionTo = _ref.transitionTo;\n\n    function popStateListener(event) {\n      if (event.state === undefined) return; // Ignore extraneous popstate events in WebKit.\n\n      transitionTo(getCurrentLocation(event.state));\n    }\n\n    _DOMUtils.addEventListener(window, 'popstate', popStateListener);\n\n    return function () {\n      _DOMUtils.removeEventListener(window, 'popstate', popStateListener);\n    };\n  }\n\n  function finishTransition(location) {\n    var basename = location.basename;\n    var pathname = location.pathname;\n    var search = location.search;\n    var hash = location.hash;\n    var state = location.state;\n    var action = location.action;\n    var key = location.key;\n\n    if (action === _Actions.POP) return; // Nothing to do.\n\n    _DOMStateStorage.saveState(key, state);\n\n    var path = (basename || '') + pathname + search + hash;\n    var historyState = {\n      key: key\n    };\n\n    if (action === _Actions.PUSH) {\n      if (useRefresh) {\n        window.location.href = path;\n        return false; // Prevent location update.\n      } else {\n          window.history.pushState(historyState, null, path);\n        }\n    } else {\n      // REPLACE\n      if (useRefresh) {\n        window.location.replace(path);\n        return false; // Prevent location update.\n      } else {\n          window.history.replaceState(historyState, null, path);\n        }\n    }\n  }\n\n  var history = _createDOMHistory2['default'](_extends({}, options, {\n    getCurrentLocation: getCurrentLocation,\n    finishTransition: finishTransition,\n    saveState: _DOMStateStorage.saveState\n  }));\n\n  var listenerCount = 0,\n      stopPopStateListener = undefined;\n\n  function listenBefore(listener) {\n    if (++listenerCount === 1) stopPopStateListener = startPopStateListener(history);\n\n    var unlisten = history.listenBefore(listener);\n\n    return function () {\n      unlisten();\n\n      if (--listenerCount === 0) stopPopStateListener();\n    };\n  }\n\n  function listen(listener) {\n    if (++listenerCount === 1) stopPopStateListener = startPopStateListener(history);\n\n    var unlisten = history.listen(listener);\n\n    return function () {\n      unlisten();\n\n      if (--listenerCount === 0) stopPopStateListener();\n    };\n  }\n\n  // deprecated\n  function registerTransitionHook(hook) {\n    if (++listenerCount === 1) stopPopStateListener = startPopStateListener(history);\n\n    history.registerTransitionHook(hook);\n  }\n\n  // deprecated\n  function unregisterTransitionHook(hook) {\n    history.unregisterTransitionHook(hook);\n\n    if (--listenerCount === 0) stopPopStateListener();\n  }\n\n  return _extends({}, history, {\n    listenBefore: listenBefore,\n    listen: listen,\n    registerTransitionHook: registerTransitionHook,\n    unregisterTransitionHook: unregisterTransitionHook\n  });\n}\n\nexports['default'] = createBrowserHistory;\nmodule.exports = exports['default'];\n}).call(this,require('_process'))\n},{\"./Actions\":33,\"./DOMStateStorage\":35,\"./DOMUtils\":36,\"./ExecutionEnvironment\":37,\"./createDOMHistory\":39,\"./parsePath\":44,\"_process\":1,\"invariant\":46}],39:[function(require,module,exports){\n(function (process){\n'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar _DOMUtils = require('./DOMUtils');\n\nvar _createHistory = require('./createHistory');\n\nvar _createHistory2 = _interopRequireDefault(_createHistory);\n\nfunction createDOMHistory(options) {\n  var history = _createHistory2['default'](_extends({\n    getUserConfirmation: _DOMUtils.getUserConfirmation\n  }, options, {\n    go: _DOMUtils.go\n  }));\n\n  function listen(listener) {\n    !_ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, 'DOM history needs a DOM') : _invariant2['default'](false) : undefined;\n\n    return history.listen(listener);\n  }\n\n  return _extends({}, history, {\n    listen: listen\n  });\n}\n\nexports['default'] = createDOMHistory;\nmodule.exports = exports['default'];\n}).call(this,require('_process'))\n},{\"./DOMUtils\":36,\"./ExecutionEnvironment\":37,\"./createHistory\":40,\"_process\":1,\"invariant\":46}],40:[function(require,module,exports){\n//import warning from 'warning'\n'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _deepEqual = require('deep-equal');\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _AsyncUtils = require('./AsyncUtils');\n\nvar _Actions = require('./Actions');\n\nvar _createLocation2 = require('./createLocation');\n\nvar _createLocation3 = _interopRequireDefault(_createLocation2);\n\nvar _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _parsePath = require('./parsePath');\n\nvar _parsePath2 = _interopRequireDefault(_parsePath);\n\nvar _deprecate = require('./deprecate');\n\nvar _deprecate2 = _interopRequireDefault(_deprecate);\n\nfunction createRandomKey(length) {\n  return Math.random().toString(36).substr(2, length);\n}\n\nfunction locationsAreEqual(a, b) {\n  return a.pathname === b.pathname && a.search === b.search &&\n  //a.action === b.action && // Different action !== location change.\n  a.key === b.key && _deepEqual2['default'](a.state, b.state);\n}\n\nvar DefaultKeyLength = 6;\n\nfunction createHistory() {\n  var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n  var getCurrentLocation = options.getCurrentLocation;\n  var finishTransition = options.finishTransition;\n  var saveState = options.saveState;\n  var go = options.go;\n  var keyLength = options.keyLength;\n  var getUserConfirmation = options.getUserConfirmation;\n\n  if (typeof keyLength !== 'number') keyLength = DefaultKeyLength;\n\n  var transitionHooks = [];\n\n  function listenBefore(hook) {\n    transitionHooks.push(hook);\n\n    return function () {\n      transitionHooks = transitionHooks.filter(function (item) {\n        return item !== hook;\n      });\n    };\n  }\n\n  var allKeys = [];\n  var changeListeners = [];\n  var location = undefined;\n\n  function getCurrent() {\n    if (pendingLocation && pendingLocation.action === _Actions.POP) {\n      return allKeys.indexOf(pendingLocation.key);\n    } else if (location) {\n      return allKeys.indexOf(location.key);\n    } else {\n      return -1;\n    }\n  }\n\n  function updateLocation(newLocation) {\n    var current = getCurrent();\n\n    location = newLocation;\n\n    if (location.action === _Actions.PUSH) {\n      allKeys = [].concat(allKeys.slice(0, current + 1), [location.key]);\n    } else if (location.action === _Actions.REPLACE) {\n      allKeys[current] = location.key;\n    }\n\n    changeListeners.forEach(function (listener) {\n      listener(location);\n    });\n  }\n\n  function listen(listener) {\n    changeListeners.push(listener);\n\n    if (location) {\n      listener(location);\n    } else {\n      var _location = getCurrentLocation();\n      allKeys = [_location.key];\n      updateLocation(_location);\n    }\n\n    return function () {\n      changeListeners = changeListeners.filter(function (item) {\n        return item !== listener;\n      });\n    };\n  }\n\n  function confirmTransitionTo(location, callback) {\n    _AsyncUtils.loopAsync(transitionHooks.length, function (index, next, done) {\n      _runTransitionHook2['default'](transitionHooks[index], location, function (result) {\n        if (result != null) {\n          done(result);\n        } else {\n          next();\n        }\n      });\n    }, function (message) {\n      if (getUserConfirmation && typeof message === 'string') {\n        getUserConfirmation(message, function (ok) {\n          callback(ok !== false);\n        });\n      } else {\n        callback(message !== false);\n      }\n    });\n  }\n\n  var pendingLocation = undefined;\n\n  function transitionTo(nextLocation) {\n    if (location && locationsAreEqual(location, nextLocation)) return; // Nothing to do.\n\n    pendingLocation = nextLocation;\n\n    confirmTransitionTo(nextLocation, function (ok) {\n      if (pendingLocation !== nextLocation) return; // Transition was interrupted.\n\n      if (ok) {\n        // treat PUSH to current path like REPLACE to be consistent with browsers\n        if (nextLocation.action === _Actions.PUSH) {\n          var prevPath = createPath(location);\n          var nextPath = createPath(nextLocation);\n\n          if (nextPath === prevPath) nextLocation.action = _Actions.REPLACE;\n        }\n\n        if (finishTransition(nextLocation) !== false) updateLocation(nextLocation);\n      } else if (location && nextLocation.action === _Actions.POP) {\n        var prevIndex = allKeys.indexOf(location.key);\n        var nextIndex = allKeys.indexOf(nextLocation.key);\n\n        if (prevIndex !== -1 && nextIndex !== -1) go(prevIndex - nextIndex); // Restore the URL.\n      }\n    });\n  }\n\n  function push(location) {\n    transitionTo(createLocation(location, _Actions.PUSH, createKey()));\n  }\n\n  function replace(location) {\n    transitionTo(createLocation(location, _Actions.REPLACE, createKey()));\n  }\n\n  function goBack() {\n    go(-1);\n  }\n\n  function goForward() {\n    go(1);\n  }\n\n  function createKey() {\n    return createRandomKey(keyLength);\n  }\n\n  function createPath(location) {\n    if (location == null || typeof location === 'string') return location;\n\n    var pathname = location.pathname;\n    var search = location.search;\n    var hash = location.hash;\n\n    var result = pathname;\n\n    if (search) result += search;\n\n    if (hash) result += hash;\n\n    return result;\n  }\n\n  function createHref(location) {\n    return createPath(location);\n  }\n\n  function createLocation(location, action) {\n    var key = arguments.length <= 2 || arguments[2] === undefined ? createKey() : arguments[2];\n\n    if (typeof action === 'object') {\n      //warning(\n      //  false,\n      //  'The state (2nd) argument to history.createLocation is deprecated; use a ' +\n      //  'location descriptor instead'\n      //)\n\n      if (typeof location === 'string') location = _parsePath2['default'](location);\n\n      location = _extends({}, location, { state: action });\n\n      action = key;\n      key = arguments[3] || createKey();\n    }\n\n    return _createLocation3['default'](location, action, key);\n  }\n\n  // deprecated\n  function setState(state) {\n    if (location) {\n      updateLocationState(location, state);\n      updateLocation(location);\n    } else {\n      updateLocationState(getCurrentLocation(), state);\n    }\n  }\n\n  function updateLocationState(location, state) {\n    location.state = _extends({}, location.state, state);\n    saveState(location.key, location.state);\n  }\n\n  // deprecated\n  function registerTransitionHook(hook) {\n    if (transitionHooks.indexOf(hook) === -1) transitionHooks.push(hook);\n  }\n\n  // deprecated\n  function unregisterTransitionHook(hook) {\n    transitionHooks = transitionHooks.filter(function (item) {\n      return item !== hook;\n    });\n  }\n\n  // deprecated\n  function pushState(state, path) {\n    if (typeof path === 'string') path = _parsePath2['default'](path);\n\n    push(_extends({ state: state }, path));\n  }\n\n  // deprecated\n  function replaceState(state, path) {\n    if (typeof path === 'string') path = _parsePath2['default'](path);\n\n    replace(_extends({ state: state }, path));\n  }\n\n  return {\n    listenBefore: listenBefore,\n    listen: listen,\n    transitionTo: transitionTo,\n    push: push,\n    replace: replace,\n    go: go,\n    goBack: goBack,\n    goForward: goForward,\n    createKey: createKey,\n    createPath: createPath,\n    createHref: createHref,\n    createLocation: createLocation,\n\n    setState: _deprecate2['default'](setState, 'setState is deprecated; use location.key to save state instead'),\n    registerTransitionHook: _deprecate2['default'](registerTransitionHook, 'registerTransitionHook is deprecated; use listenBefore instead'),\n    unregisterTransitionHook: _deprecate2['default'](unregisterTransitionHook, 'unregisterTransitionHook is deprecated; use the callback returned from listenBefore instead'),\n    pushState: _deprecate2['default'](pushState, 'pushState is deprecated; use push instead'),\n    replaceState: _deprecate2['default'](replaceState, 'replaceState is deprecated; use replace instead')\n  };\n}\n\nexports['default'] = createHistory;\nmodule.exports = exports['default'];\n},{\"./Actions\":33,\"./AsyncUtils\":34,\"./createLocation\":41,\"./deprecate\":42,\"./parsePath\":44,\"./runTransitionHook\":45,\"deep-equal\":30}],41:[function(require,module,exports){\n//import warning from 'warning'\n'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _Actions = require('./Actions');\n\nvar _parsePath = require('./parsePath');\n\nvar _parsePath2 = _interopRequireDefault(_parsePath);\n\nfunction createLocation() {\n  var location = arguments.length <= 0 || arguments[0] === undefined ? '/' : arguments[0];\n  var action = arguments.length <= 1 || arguments[1] === undefined ? _Actions.POP : arguments[1];\n  var key = arguments.length <= 2 || arguments[2] === undefined ? null : arguments[2];\n\n  var _fourthArg = arguments.length <= 3 || arguments[3] === undefined ? null : arguments[3];\n\n  if (typeof location === 'string') location = _parsePath2['default'](location);\n\n  if (typeof action === 'object') {\n    //warning(\n    //  false,\n    //  'The state (2nd) argument to createLocation is deprecated; use a ' +\n    //  'location descriptor instead'\n    //)\n\n    location = _extends({}, location, { state: action });\n\n    action = key || _Actions.POP;\n    key = _fourthArg;\n  }\n\n  var pathname = location.pathname || '/';\n  var search = location.search || '';\n  var hash = location.hash || '';\n  var state = location.state || null;\n\n  return {\n    pathname: pathname,\n    search: search,\n    hash: hash,\n    state: state,\n    action: action,\n    key: key\n  };\n}\n\nexports['default'] = createLocation;\nmodule.exports = exports['default'];\n},{\"./Actions\":33,\"./parsePath\":44}],42:[function(require,module,exports){\n//import warning from 'warning'\n\n\"use strict\";\n\nexports.__esModule = true;\nfunction deprecate(fn) {\n  return fn;\n  //return function () {\n  //  warning(false, '[history] ' + message)\n  //  return fn.apply(this, arguments)\n  //}\n}\n\nexports[\"default\"] = deprecate;\nmodule.exports = exports[\"default\"];\n},{}],43:[function(require,module,exports){\n\"use strict\";\n\nexports.__esModule = true;\nfunction extractPath(string) {\n  var match = string.match(/^https?:\\/\\/[^\\/]*/);\n\n  if (match == null) return string;\n\n  return string.substring(match[0].length);\n}\n\nexports[\"default\"] = extractPath;\nmodule.exports = exports[\"default\"];\n},{}],44:[function(require,module,exports){\n(function (process){\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _extractPath = require('./extractPath');\n\nvar _extractPath2 = _interopRequireDefault(_extractPath);\n\nfunction parsePath(path) {\n  var pathname = _extractPath2['default'](path);\n  var search = '';\n  var hash = '';\n\n  process.env.NODE_ENV !== 'production' ? _warning2['default'](path === pathname, 'A path must be pathname + search + hash only, not a fully qualified URL like \"%s\"', path) : undefined;\n\n  var hashIndex = pathname.indexOf('#');\n  if (hashIndex !== -1) {\n    hash = pathname.substring(hashIndex);\n    pathname = pathname.substring(0, hashIndex);\n  }\n\n  var searchIndex = pathname.indexOf('?');\n  if (searchIndex !== -1) {\n    search = pathname.substring(searchIndex);\n    pathname = pathname.substring(0, searchIndex);\n  }\n\n  if (pathname === '') pathname = '/';\n\n  return {\n    pathname: pathname,\n    search: search,\n    hash: hash\n  };\n}\n\nexports['default'] = parsePath;\nmodule.exports = exports['default'];\n}).call(this,require('_process'))\n},{\"./extractPath\":43,\"_process\":1,\"warning\":47}],45:[function(require,module,exports){\n(function (process){\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction runTransitionHook(hook, location, callback) {\n  var result = hook(location, callback);\n\n  if (hook.length < 2) {\n    // Assume the hook runs synchronously and automatically\n    // call the callback with the return value.\n    callback(result);\n  } else {\n    process.env.NODE_ENV !== 'production' ? _warning2['default'](result === undefined, 'You should not \"return\" in a transition hook with a callback argument; call the callback instead') : undefined;\n  }\n}\n\nexports['default'] = runTransitionHook;\nmodule.exports = exports['default'];\n}).call(this,require('_process'))\n},{\"_process\":1,\"warning\":47}],46:[function(require,module,exports){\n/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n  if (\"production\" !== 'production') {\n    if (format === undefined) {\n      throw new Error('invariant requires an error message argument');\n    }\n  }\n\n  if (!condition) {\n    var error;\n    if (format === undefined) {\n      error = new Error(\n        'Minified exception occurred; use the non-minified dev environment ' +\n        'for the full error message and additional helpful warnings.'\n      );\n    } else {\n      var args = [a, b, c, d, e, f];\n      var argIndex = 0;\n      error = new Error(\n        format.replace(/%s/g, function() { return args[argIndex++]; })\n      );\n      error.name = 'Invariant Violation';\n    }\n\n    error.framesToPop = 1; // we don't care about invariant's own frame\n    throw error;\n  }\n};\n\nmodule.exports = invariant;\n\n},{}],47:[function(require,module,exports){\n/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = function() {};\n\nif (\"production\" !== 'production') {\n  warning = function(condition, format, args) {\n    var len = arguments.length;\n    args = new Array(len > 2 ? len - 2 : 0);\n    for (var key = 2; key < len; key++) {\n      args[key - 2] = arguments[key];\n    }\n    if (format === undefined) {\n      throw new Error(\n        '`warning(condition, format, ...args)` requires a warning ' +\n        'message argument'\n      );\n    }\n\n    if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n      throw new Error(\n        'The warning format should be able to uniquely identify this ' +\n        'warning. Please, use a more descriptive format than: ' + format\n      );\n    }\n\n    if (!condition) {\n      var argIndex = 0;\n      var message = 'Warning: ' +\n        format.replace(/%s/g, function() {\n          return args[argIndex++];\n        });\n      if (typeof console !== 'undefined') {\n        console.error(message);\n      }\n      try {\n        // This error was thrown as a convenience so that you can use this stack\n        // to find the callsite that caused this warning to fire.\n        throw new Error(message);\n      } catch(x) {}\n    }\n  };\n}\n\nmodule.exports = warning;\n\n},{}],48:[function(require,module,exports){\n\"use strict\";\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.select = select;\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    _classCallCheck(this, _class);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments));\n  }\n\n  _createClass(_class, [{\n    key: \"refresh\",\n    value: function refresh() {\n      window.location.reload();\n    }\n  }, {\n    key: \"getMessage\",\n    value: function getMessage() {\n      if (this.props.signedIn) {\n        return interpolate(gettext(\"You have signed in as %(username)s. Please refresh the page before continuing.\"), { username: this.props.signedIn.username }, true);\n      } else if (this.props.signedOut) {\n        return interpolate(gettext(\"%(username)s, you have been signed out. Please refresh the page before continuing.\"), { username: this.props.user.username }, true);\n      }\n    }\n  }, {\n    key: \"getClassName\",\n    value: function getClassName() {\n      if (this.props.signedIn || this.props.signedOut) {\n        return \"auth-message show\";\n      } else {\n        return \"auth-message\";\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        \"div\",\n        { className: this.getClassName() },\n        _react2.default.createElement(\n          \"div\",\n          { className: \"container\" },\n          _react2.default.createElement(\n            \"p\",\n            { className: \"lead\" },\n            this.getMessage()\n          ),\n          _react2.default.createElement(\n            \"p\",\n            null,\n            _react2.default.createElement(\n              \"button\",\n              { type: \"button\", className: \"btn btn-default\",\n                onClick: this.refresh },\n              gettext(\"Reload page\")\n            ),\n            \" \",\n            _react2.default.createElement(\n              \"span\",\n              { className: \"hidden-xs hidden-sm text-muted\" },\n              gettext(\"or press F5 key.\")\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\nfunction select(state) {\n  return {\n    user: state.auth.user,\n    signedIn: state.auth.signedIn,\n    signedOut: state.auth.signedOut\n  };\n}\n\n},{\"react\":\"react\"}],49:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar BASE_URL = $('base').attr('href') + 'user-avatar/';\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    _classCallCheck(this, _class);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments));\n  }\n\n  _createClass(_class, [{\n    key: 'getSrc',\n    value: function getSrc() {\n      var size = this.props.size || 100; // jshint ignore:line\n      var url = BASE_URL;\n\n      if (this.props.user && this.props.user.id) {\n        // just avatar hash, size and user id\n        url += this.props.user.avatar_hash + '/' + size + '/' + this.props.user.id + '.png';\n      } else {\n        // just append avatar size to file to produce no-avatar placeholder\n        url += size + '.png';\n      }\n\n      return url;\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement('img', { src: this.getSrc(),\n        className: this.props.className || 'user-avatar',\n        title: gettext(\"User avatar\") });\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"react\":\"react\"}],50:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    _classCallCheck(this, _class);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments));\n  }\n\n  _createClass(_class, [{\n    key: 'getReasonMessage',\n    value: function getReasonMessage() {\n      /* jshint ignore:start */\n      if (this.props.message.html) {\n        return _react2.default.createElement('div', { className: 'lead',\n          dangerouslySetInnerHTML: { __html: this.props.message.html } });\n      } else {\n        return _react2.default.createElement(\n          'p',\n          { className: 'lead' },\n          this.props.message.plain\n        );\n      }\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'getExpirationMessage',\n    value: function getExpirationMessage() {\n      if (this.props.expires) {\n        if (this.props.expires.isAfter((0, _moment2.default)())) {\n          return interpolate(gettext(\"This ban expires %(expires_on)s.\"), { 'expires_on': this.props.expires.fromNow() }, true);\n        } else {\n          return gettext(\"This ban has expired.\");\n        }\n      } else {\n        return gettext(\"This ban is permanent.\");\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'page page-error page-error-banned' },\n        _react2.default.createElement(\n          'div',\n          { className: 'container' },\n          _react2.default.createElement(\n            'div',\n            { className: 'message-panel' },\n            _react2.default.createElement(\n              'div',\n              { className: 'message-icon' },\n              _react2.default.createElement(\n                'span',\n                { className: 'material-icon' },\n                'highlight_off'\n              )\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'message-body' },\n              this.getReasonMessage(),\n              _react2.default.createElement(\n                'p',\n                { className: 'message-footnote' },\n                this.getExpirationMessage()\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"moment\":\"moment\",\"react\":\"react\"}],51:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _loader = require('./loader');\n\nvar _loader2 = _interopRequireDefault(_loader);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// jshint ignore:line\n\nvar Button = function (_React$Component) {\n  _inherits(Button, _React$Component);\n\n  function Button() {\n    _classCallCheck(this, Button);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(Button).apply(this, arguments));\n  }\n\n  _createClass(Button, [{\n    key: 'render',\n    value: function render() {\n      var className = 'btn ' + this.props.className;\n      var disabled = this.props.disabled;\n\n      if (this.props.loading) {\n        className += ' btn-loading';\n        disabled = true;\n      }\n\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'button',\n        { type: this.props.onClick ? 'button' : 'submit',\n          className: className,\n          disabled: disabled,\n          onClick: this.props.onClick },\n        this.props.children,\n        this.props.loading ? _react2.default.createElement(_loader2.default, null) : null\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return Button;\n}(_react2.default.Component);\n\nexports.default = Button;\n\nButton.defaultProps = {\n  className: \"btn-default\",\n\n  type: \"submit\",\n\n  loading: false,\n  disabled: false,\n\n  onClick: null\n};\n\n},{\"./loader\":60,\"react\":\"react\"}],52:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _avatar = require('../avatar');\n\nvar _avatar2 = _interopRequireDefault(_avatar);\n\nvar _button = require('../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _ajax = require('../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _snackbar = require('../../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\n// jshint ignore:line\n\nvar BASE_URL = $('base').attr('href') + 'user-avatar';\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.cropAvatar = function () {\n      if (_this.state.isLoading) {\n        return false;\n      }\n\n      _this.setState({\n        'isLoading': true\n      });\n\n      var avatarType = _this.props.upload ? 'crop_tmp' : 'crop_org';\n      var cropit = $('.crop-form');\n\n      _ajax2.default.post(_this.props.user.api_url.avatar, {\n        'avatar': avatarType,\n        'crop': {\n          'offset': cropit.cropit('offset'),\n          'zoom': cropit.cropit('zoom')\n        }\n      }).then(function (data) {\n        _this.props.onComplete(data.avatar_hash, data.options);\n        _snackbar2.default.success(data.detail);\n      }, function (rejection) {\n        if (rejection.status === 400) {\n          _snackbar2.default.error(rejection.detail);\n          _this.setState({\n            'isLoading': false\n          });\n        } else {\n          _this.props.showError(rejection);\n        }\n      });\n    };\n\n    _this.state = {\n      'isLoading': false\n    };\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'getAvatarSize',\n    value: function getAvatarSize() {\n      if (this.props.upload) {\n        return this.props.options.crop_tmp.size;\n      } else {\n        return this.props.options.crop_org.size;\n      }\n    }\n  }, {\n    key: 'getAvatarSecret',\n    value: function getAvatarSecret() {\n      if (this.props.upload) {\n        return this.props.options.crop_tmp.secret;\n      } else {\n        return this.props.options.crop_org.secret;\n      }\n    }\n  }, {\n    key: 'getAvatarHash',\n    value: function getAvatarHash() {\n      return this.props.upload || this.props.user.avatar_hash;\n    }\n  }, {\n    key: 'getImagePath',\n    value: function getImagePath() {\n      return [BASE_URL, this.getAvatarSecret() + ':' + this.getAvatarHash(), this.props.user.id + '.png'].join('/');\n    }\n  }, {\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      var _this2 = this;\n\n      var cropit = $('.crop-form');\n      cropit.width(this.getAvatarSize());\n\n      cropit.cropit({\n        'width': this.getAvatarSize(),\n        'height': this.getAvatarSize(),\n        'imageState': {\n          'src': this.getImagePath()\n        },\n        onImageLoaded: function onImageLoaded() {\n          if (_this2.props.upload) {\n            // center uploaded image\n            var zoomLevel = cropit.cropit('zoom');\n            var imageSize = cropit.cropit('imageSize');\n\n            // is it wider than taller?\n            if (imageSize.width > imageSize.height) {\n              var displayedWidth = imageSize.width * zoomLevel;\n              var offsetX = (displayedWidth - _this2.getAvatarSize()) / -2;\n\n              cropit.cropit('offset', {\n                'x': offsetX,\n                'y': 0\n              });\n            } else if (imageSize.width < imageSize.height) {\n              var displayedHeight = imageSize.height * zoomLevel;\n              var offsetY = (displayedHeight - _this2.getAvatarSize()) / -2;\n\n              cropit.cropit('offset', {\n                'x': 0,\n                'y': offsetY\n              });\n            }\n          } else {\n            // use preserved crop\n            var crop = _this2.props.options.crop_org.crop;\n            if (crop) {\n              cropit.cropit('zoom', crop.zoom);\n              cropit.cropit('offset', {\n                'x': crop.x,\n                'y': crop.y\n              });\n            }\n          }\n        }\n      });\n    }\n  }, {\n    key: 'componentWillUnmount',\n    value: function componentWillUnmount() {\n      $('.crop-form').cropit('disable');\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'render',\n\n    /* jshint ignore:end */\n\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        null,\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-body modal-avatar-crop' },\n          _react2.default.createElement(\n            'div',\n            { className: 'crop-form' },\n            _react2.default.createElement('div', { className: 'cropit-image-preview' }),\n            _react2.default.createElement('input', { type: 'range', className: 'cropit-image-zoom-input' })\n          )\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-footer' },\n          _react2.default.createElement(\n            'div',\n            { className: 'col-md-6 col-md-offset-3' },\n            _react2.default.createElement(\n              _button2.default,\n              { onClick: this.cropAvatar,\n                loading: this.state.isLoading,\n                className: 'btn-primary btn-block' },\n              this.props.upload ? gettext(\"Set avatar\") : gettext(\"Crop image\")\n            ),\n            _react2.default.createElement(\n              _button2.default,\n              { onClick: this.props.showIndex,\n                disabled: this.state.isLoading,\n                className: 'btn-default btn-block' },\n              gettext(\"Cancel\")\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../services/ajax\":91,\"../../services/snackbar\":99,\"../avatar\":49,\"../button\":51,\"react\":\"react\"}],53:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Gallery = exports.GalleryItem = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _button = require('../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _ajax = require('../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _snackbar = require('../../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _batch = require('../../utils/batch');\n\nvar _batch2 = _interopRequireDefault(_batch);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\n// jshint ignore:line\n\nvar GalleryItem = exports.GalleryItem = function (_React$Component) {\n  _inherits(GalleryItem, _React$Component);\n\n  function GalleryItem() {\n    var _Object$getPrototypeO;\n\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, GalleryItem);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_Object$getPrototypeO = Object.getPrototypeOf(GalleryItem)).call.apply(_Object$getPrototypeO, [this].concat(args))), _this), _this.select = function () {\n      _this.props.select(_this.props.image);\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n  /* jshint ignore:start */\n\n  _createClass(GalleryItem, [{\n    key: 'getClassName',\n\n    /* jshint ignore:end */\n\n    value: function getClassName() {\n      if (this.props.selection === this.props.image) {\n        if (this.props.disabled) {\n          return 'btn btn-avatar btn-disabled avatar-selected';\n        } else {\n          return 'btn btn-avatar avatar-selected';\n        }\n      } else if (this.props.disabled) {\n        return 'btn btn-avatar btn-disabled';\n      } else {\n        return 'btn btn-avatar';\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'button',\n        { type: 'button',\n          className: this.getClassName(),\n          disabled: this.props.disabled,\n          onClick: this.select },\n        _react2.default.createElement('img', { src: _index2.default.get('MEDIA_URL') + this.props.image })\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return GalleryItem;\n}(_react2.default.Component);\n\nvar Gallery = exports.Gallery = function (_React$Component2) {\n  _inherits(Gallery, _React$Component2);\n\n  function Gallery() {\n    _classCallCheck(this, Gallery);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(Gallery).apply(this, arguments));\n  }\n\n  _createClass(Gallery, [{\n    key: 'render',\n    value: function render() {\n      var _this3 = this;\n\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'avatars-gallery' },\n        _react2.default.createElement(\n          'h3',\n          null,\n          this.props.name\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'avatars-gallery-images' },\n          (0, _batch2.default)(this.props.images, 4, null).map(function (row, i) {\n            return _react2.default.createElement(\n              'div',\n              { className: 'row', key: i },\n              row.map(function (item, i) {\n                return _react2.default.createElement(\n                  'div',\n                  { className: 'col-xs-3', key: i },\n                  item ? _react2.default.createElement(GalleryItem, { image: item,\n                    disabled: _this3.props.disabled,\n                    select: _this3.props.select,\n                    selection: _this3.props.selection }) : _react2.default.createElement('div', { className: 'blank-avatar' })\n                );\n              })\n            );\n          })\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return Gallery;\n}(_react2.default.Component);\n\nvar _class = function (_React$Component3) {\n  _inherits(_class, _React$Component3);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this4 = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this4.select = function (image) {\n      _this4.setState({\n        selection: image\n      });\n    };\n\n    _this4.save = function () {\n      if (_this4.state.isLoading) {\n        return false;\n      }\n\n      _this4.setState({\n        'isLoading': true\n      });\n\n      _ajax2.default.post(_this4.props.user.api_url.avatar, {\n        avatar: 'galleries',\n        image: _this4.state.selection\n      }).then(function (response) {\n        _this4.setState({\n          'isLoading': false\n        });\n\n        _snackbar2.default.success(response.detail);\n        _this4.props.onComplete(response.avatar_hash, response.options);\n      }, function (rejection) {\n        if (rejection.status === 400) {\n          _snackbar2.default.error(rejection.detail);\n          _this4.setState({\n            'isLoading': false\n          });\n        } else {\n          _this4.props.showError(rejection);\n        }\n      });\n    };\n\n    _this4.state = {\n      'selection': null,\n      'isLoading': false\n    };\n    return _this4;\n  }\n\n  /* jshint ignore:start */\n\n  _createClass(_class, [{\n    key: 'render',\n\n    /* jshint ignore:end */\n\n    value: function render() {\n      var _this5 = this;\n\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        null,\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-body modal-avatar-gallery' },\n          this.props.options.galleries.map(function (item, i) {\n            return _react2.default.createElement(Gallery, { name: item.name,\n              images: item.images,\n              selection: _this5.state.selection,\n              disabled: _this5.state.isLoading,\n              select: _this5.select,\n              key: i });\n          })\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-footer' },\n          _react2.default.createElement(\n            'div',\n            { className: 'row' },\n            _react2.default.createElement(\n              'div',\n              { className: 'col-md-6 col-md-offset-3' },\n              _react2.default.createElement(\n                _button2.default,\n                { onClick: this.save,\n                  loading: this.state.isLoading,\n                  disabled: !this.state.selection,\n                  className: 'btn-primary btn-block' },\n                this.state.selection ? gettext(\"Save choice\") : gettext(\"Select avatar\")\n              ),\n              _react2.default.createElement(\n                _button2.default,\n                { onClick: this.props.showIndex,\n                  disabled: this.state.isLoading,\n                  className: 'btn-default btn-block' },\n                gettext(\"Cancel\")\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../index\":85,\"../../services/ajax\":91,\"../../services/snackbar\":99,\"../../utils/batch\":103,\"../button\":51,\"react\":\"react\"}],54:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _avatar = require('../avatar');\n\nvar _avatar2 = _interopRequireDefault(_avatar);\n\nvar _button = require('../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _loader = require('../loader');\n\nvar _loader2 = _interopRequireDefault(_loader);\n\nvar _ajax = require('../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _snackbar = require('../../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.setGravatar = function () {\n      _this.callApi('gravatar');\n    };\n\n    _this.setGenerated = function () {\n      _this.callApi('generated');\n    };\n\n    _this.state = {\n      'isLoading': false\n    };\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'callApi',\n    value: function callApi(avatarType) {\n      var _this2 = this;\n\n      if (this.state.isLoading) {\n        return false;\n      }\n\n      this.setState({\n        'isLoading': true\n      });\n\n      _ajax2.default.post(this.props.user.api_url.avatar, {\n        avatar: avatarType\n      }).then(function (response) {\n        _this2.setState({\n          'isLoading': false\n        });\n\n        _snackbar2.default.success(response.detail);\n        _this2.props.onComplete(response.avatar_hash, response.options);\n      }, function (rejection) {\n        if (rejection.status === 400) {\n          _snackbar2.default.error(rejection.detail);\n          _this2.setState({\n            'isLoading': false\n          });\n        } else {\n          _this2.props.showError(rejection);\n        }\n      });\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'getGravatarButton',\n\n    /* jshint ignore:end */\n\n    value: function getGravatarButton() {\n      if (this.props.options.gravatar) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          _button2.default,\n          { onClick: this.setGravatar,\n            disabled: this.state.isLoading,\n            className: 'btn-default btn-block btn-avatar-gravatar' },\n          gettext(\"Download my Gravatar\")\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getCropButton',\n    value: function getCropButton() {\n      if (this.props.options.crop_org) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          _button2.default,\n          { onClick: this.props.showCrop,\n            disabled: this.state.isLoading,\n            className: 'btn-default btn-block btn-avatar-crop' },\n          gettext(\"Re-crop uploaded image\")\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getUploadButton',\n    value: function getUploadButton() {\n      if (this.props.options.upload) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          _button2.default,\n          { onClick: this.props.showUpload,\n            disabled: this.state.isLoading,\n            className: 'btn-default btn-block btn-avatar-upload' },\n          gettext(\"Upload new image\")\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getGalleryButton',\n    value: function getGalleryButton() {\n      if (this.props.options.galleries) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          _button2.default,\n          { onClick: this.props.showGallery,\n            disabled: this.state.isLoading,\n            className: 'btn-default btn-block btn-avatar-gallery' },\n          gettext(\"Pick avatar from gallery\")\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getAvatarPreview',\n    value: function getAvatarPreview() {\n      if (this.state.isLoading) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'div',\n          { className: 'avatar-preview preview-loading' },\n          _react2.default.createElement(_avatar2.default, { user: this.props.user, size: '200' }),\n          _react2.default.createElement(_loader2.default, null)\n        );\n        /* jshint ignore:end */\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(\n            'div',\n            { className: 'avatar-preview' },\n            _react2.default.createElement(_avatar2.default, { user: this.props.user, size: '200' })\n          );\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'modal-body modal-avatar-index' },\n        _react2.default.createElement(\n          'div',\n          { className: 'row' },\n          _react2.default.createElement(\n            'div',\n            { className: 'col-md-5' },\n            this.getAvatarPreview()\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'col-md-7' },\n            this.getGravatarButton(),\n            _react2.default.createElement(\n              _button2.default,\n              { onClick: this.setGenerated,\n                disabled: this.state.isLoading,\n                className: 'btn-default btn-block btn-avatar-generate' },\n              gettext(\"Generate my individual avatar\")\n            ),\n            this.getCropButton(),\n            this.getUploadButton(),\n            this.getGalleryButton()\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../services/ajax\":91,\"../../services/snackbar\":99,\"../avatar\":49,\"../button\":51,\"../loader\":60,\"react\":\"react\"}],55:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.ChangeAvatarError = undefined;\nexports.select = select;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _index = require('./index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _crop = require('./crop');\n\nvar _crop2 = _interopRequireDefault(_crop);\n\nvar _upload = require('./upload');\n\nvar _upload2 = _interopRequireDefault(_upload);\n\nvar _gallery = require('./gallery');\n\nvar _gallery2 = _interopRequireDefault(_gallery);\n\nvar _modalLoader = require('../modal-loader');\n\nvar _modalLoader2 = _interopRequireDefault(_modalLoader);\n\nvar _users = require('../../reducers/users');\n\nvar _ajax = require('../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _store = require('../../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\n// jshint ignore:line\n\nvar ChangeAvatarError = exports.ChangeAvatarError = function (_React$Component) {\n  _inherits(ChangeAvatarError, _React$Component);\n\n  function ChangeAvatarError() {\n    _classCallCheck(this, ChangeAvatarError);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(ChangeAvatarError).apply(this, arguments));\n  }\n\n  _createClass(ChangeAvatarError, [{\n    key: 'getErrorReason',\n    value: function getErrorReason() {\n      if (this.props.reason) {\n        /* jshint ignore:start */\n        return _react2.default.createElement('p', { dangerouslySetInnerHTML: { __html: this.props.reason } });\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'modal-body' },\n        _react2.default.createElement(\n          'div',\n          { className: 'message-icon' },\n          _react2.default.createElement(\n            'span',\n            { className: 'material-icon' },\n            'remove_circle_outline'\n          )\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'message-body' },\n          _react2.default.createElement(\n            'p',\n            { className: 'lead' },\n            this.props.message\n          ),\n          this.getErrorReason()\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return ChangeAvatarError;\n}(_react2.default.Component);\n\nvar _class = function (_React$Component2) {\n  _inherits(_class, _React$Component2);\n\n  function _class() {\n    var _Object$getPrototypeO;\n\n    var _temp, _this2, _ret;\n\n    _classCallCheck(this, _class);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this2 = _possibleConstructorReturn(this, (_Object$getPrototypeO = Object.getPrototypeOf(_class)).call.apply(_Object$getPrototypeO, [this].concat(args))), _this2), _this2.showError = function (error) {\n      _this2.setState({\n        error: error\n      });\n    }, _this2.showIndex = function () {\n      _this2.setState({\n        'component': _index2.default\n      });\n    }, _this2.showUpload = function () {\n      _this2.setState({\n        'component': _upload2.default\n      });\n    }, _this2.showCrop = function () {\n      _this2.setState({\n        'component': _crop2.default\n      });\n    }, _this2.showGallery = function () {\n      _this2.setState({\n        'component': _gallery2.default\n      });\n    }, _this2.completeFlow = function (avatarHash, options) {\n      _store2.default.dispatch((0, _users.updateAvatar)(_this2.props.user, avatarHash));\n\n      _this2.setState({\n        'component': _index2.default,\n        options: options\n      });\n    }, _temp), _possibleConstructorReturn(_this2, _ret);\n  }\n\n  _createClass(_class, [{\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      var _this3 = this;\n\n      _ajax2.default.get(this.props.user.api_url.avatar).then(function (options) {\n        _this3.setState({\n          'component': _index2.default,\n          'options': options,\n          'error': null\n        });\n      }, function (rejection) {\n        _this3.showError(rejection);\n      });\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'getBody',\n\n    /* jshint ignore:end */\n\n    value: function getBody() {\n      if (this.state) {\n        if (this.state.error) {\n          /* jshint ignore:start */\n          return _react2.default.createElement(ChangeAvatarError, { message: this.state.error.detail,\n            reason: this.state.error.reason });\n          /* jshint ignore:end */\n        } else {\n            /* jshint ignore:start */\n            return _react2.default.createElement(this.state.component, { options: this.state.options,\n              user: this.props.user,\n              onComplete: this.completeFlow,\n              showError: this.showError,\n              showIndex: this.showIndex,\n              showCrop: this.showCrop,\n              showUpload: this.showUpload,\n              showGallery: this.showGallery });\n            /* jshint ignore:end */\n          }\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(_modalLoader2.default, null);\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'getClassName',\n    value: function getClassName() {\n      if (this.state && this.state.error) {\n        return \"modal-dialog modal-message modal-change-avatar\";\n      } else {\n        return \"modal-dialog modal-change-avatar\";\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: this.getClassName(),\n          role: 'document' },\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-content' },\n          _react2.default.createElement(\n            'div',\n            { className: 'modal-header' },\n            _react2.default.createElement(\n              'button',\n              { type: 'button', className: 'close', 'data-dismiss': 'modal',\n                'aria-label': gettext(\"Close\") },\n              _react2.default.createElement(\n                'span',\n                { 'aria-hidden': 'true' },\n                '×'\n              )\n            ),\n            _react2.default.createElement(\n              'h4',\n              { className: 'modal-title' },\n              gettext(\"Change your avatar\")\n            )\n          ),\n          this.getBody()\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\nfunction select(state) {\n  return {\n    'user': state.auth.user\n  };\n}\n\n},{\"../../reducers/users\":90,\"../../services/ajax\":91,\"../../services/store\":100,\"../modal-loader\":61,\"./crop\":52,\"./gallery\":53,\"./index\":54,\"./upload\":56,\"react\":\"react\"}],56:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _crop = require('./crop');\n\nvar _crop2 = _interopRequireDefault(_crop);\n\nvar _button = require('../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _ajax = require('../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _snackbar = require('../../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _fileSize = require('../../utils/file-size');\n\nvar _fileSize2 = _interopRequireDefault(_fileSize);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.pickFile = function () {\n      document.getElementById('avatar-hidden-upload').click();\n    };\n\n    _this.uploadFile = function () {\n      var image = document.getElementById('avatar-hidden-upload').files[0];\n\n      var validationError = _this.validateFile(image);\n      if (validationError) {\n        _snackbar2.default.error(validationError);\n        return;\n      }\n\n      _this.setState({\n        image: image,\n        'preview': URL.createObjectURL(image),\n        'progress': 0\n      });\n\n      var data = new FormData();\n      data.append('avatar', 'upload');\n      data.append('image', image);\n\n      _ajax2.default.upload(_this.props.user.api_url.avatar, data, function (progress) {\n        _this.setState({\n          progress: progress\n        });\n      }).then(function (data) {\n        _this.setState({\n          'options': data.options,\n          'uploaded': data.detail\n        });\n        _snackbar2.default.info(gettext(\"Your image has been uploaded and you may now crop it.\"));\n      }, function (rejection) {\n        if (rejection.status === 400) {\n          _snackbar2.default.error(rejection.detail);\n          _this.setState({\n            'isLoading': false,\n            'image': null,\n            'progress': 0\n          });\n        } else {\n          _this.props.showError(rejection);\n        }\n      });\n    };\n\n    _this.state = {\n      'image': null,\n      'preview': null,\n      'progress': 0,\n      'uploaded': null\n    };\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'validateFile',\n    value: function validateFile(image) {\n      if (image.size > this.props.options.upload.limit) {\n        return interpolate(gettext(\"Selected file is too big. (%(filesize)s)\"), {\n          'filesize': (0, _fileSize2.default)(image.size)\n        }, true);\n      }\n\n      var invalidTypeMsg = gettext(\"Selected file type is not supported.\");\n      if (this.props.options.upload.allowed_mime_types.indexOf(image.type) === -1) {\n        return invalidTypeMsg;\n      }\n\n      var extensionFound = false;\n      var loweredFilename = image.name.toLowerCase();\n      this.props.options.upload.allowed_extensions.map(function (extension) {\n        if (loweredFilename.substr(extension.length * -1) === extension) {\n          extensionFound = true;\n        }\n      });\n\n      if (!extensionFound) {\n        return invalidTypeMsg;\n      }\n\n      return false;\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'getUploadRequirements',\n\n    /* jshint ignore:end */\n\n    value: function getUploadRequirements(options) {\n      var extensions = options.allowed_extensions.map(function (extension) {\n        return extension.substr(1);\n      });\n\n      return interpolate(gettext(\"%(files)s files smaller than %(limit)s\"), {\n        'files': extensions.join(', '),\n        'limit': (0, _fileSize2.default)(options.limit)\n      }, true);\n    }\n  }, {\n    key: 'getUploadButton',\n    value: function getUploadButton() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'modal-body modal-avatar-upload' },\n        _react2.default.createElement(\n          _button2.default,\n          { className: 'btn-pick-file',\n            onClick: this.pickFile },\n          _react2.default.createElement(\n            'div',\n            { className: 'material-icon' },\n            'input'\n          ),\n          gettext(\"Select file\")\n        ),\n        _react2.default.createElement(\n          'p',\n          { className: 'text-muted' },\n          this.getUploadRequirements(this.props.options.upload)\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'getUploadProgressLabel',\n    value: function getUploadProgressLabel() {\n      return interpolate(gettext(\"%(progress)s % complete\"), {\n        'progress': this.state.progress\n      }, true);\n    }\n  }, {\n    key: 'getUploadProgress',\n    value: function getUploadProgress() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'modal-body modal-avatar-upload' },\n        _react2.default.createElement(\n          'div',\n          { className: 'upload-progress' },\n          _react2.default.createElement('img', { src: this.state.preview }),\n          _react2.default.createElement(\n            'div',\n            { className: 'progress' },\n            _react2.default.createElement(\n              'div',\n              { className: 'progress-bar', role: 'progressbar',\n                'aria-valuenow': '{this.state.progress}',\n                'aria-valuemin': '0', 'aria-valuemax': '100',\n                style: { width: this.state.progress + '%' } },\n              _react2.default.createElement(\n                'span',\n                { className: 'sr-only' },\n                this.getUploadProgressLabel()\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'renderUpload',\n    value: function renderUpload() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        null,\n        _react2.default.createElement('input', { type: 'file',\n          id: 'avatar-hidden-upload',\n          className: 'hidden-file-upload',\n          onChange: this.uploadFile }),\n        this.state.image ? this.getUploadProgress() : this.getUploadButton(),\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-footer' },\n          _react2.default.createElement(\n            'div',\n            { className: 'col-md-6 col-md-offset-3' },\n            _react2.default.createElement(\n              _button2.default,\n              { onClick: this.props.showIndex,\n                disabled: !!this.state.image,\n                className: 'btn-default btn-block' },\n              gettext(\"Cancel\")\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'renderCrop',\n    value: function renderCrop() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(_crop2.default, { options: this.state.options,\n        user: this.props.user,\n        upload: this.state.uploaded,\n        onComplete: this.props.onComplete,\n        showError: this.props.showError,\n        showIndex: this.props.showIndex });\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return this.state.uploaded ? this.renderCrop() : this.renderUpload();\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../services/ajax\":91,\"../../services/snackbar\":99,\"../../utils/file-size\":104,\"../button\":51,\"./crop\":52,\"react\":\"react\"}],57:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    _classCallCheck(this, _class);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments));\n  }\n\n  _createClass(_class, [{\n    key: 'isValidated',\n    value: function isValidated() {\n      return typeof this.props.validation !== \"undefined\";\n    }\n  }, {\n    key: 'getClassName',\n    value: function getClassName() {\n      var className = 'form-group';\n      if (this.isValidated()) {\n        className += ' has-feedback';\n        if (this.props.validation === null) {\n          className += ' has-success';\n        } else {\n          className += ' has-error';\n        }\n      }\n      return className;\n    }\n  }, {\n    key: 'getFeedback',\n    value: function getFeedback() {\n      var _this2 = this;\n\n      if (this.props.validation) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'div',\n          { className: 'help-block errors' },\n          this.props.validation.map(function (error, i) {\n            return _react2.default.createElement(\n              'p',\n              { key: _this2.props.for + 'FeedbackItem' + i },\n              error\n            );\n          })\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getFeedbackIcon',\n    value: function getFeedbackIcon() {\n      if (this.isValidated()) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'span',\n          { className: 'material-icon form-control-feedback',\n            'aria-hidden': 'true', key: this.props.for + 'FeedbackIcon' },\n          this.props.validation ? 'clear' : 'check'\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getFeedbackDescription',\n    value: function getFeedbackDescription() {\n      if (this.isValidated()) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'span',\n          { id: this.props.for + '_status', className: 'sr-only' },\n          this.props.validation ? gettext('(error)') : gettext('(success)')\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getHelpText',\n    value: function getHelpText() {\n      if (this.props.helpText) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'p',\n          { className: 'help-block' },\n          this.props.helpText\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: this.getClassName() },\n        _react2.default.createElement(\n          'label',\n          { className: 'control-label ' + (this.props.labelClass || ''),\n            htmlFor: this.props.for || '' },\n          this.props.label + ':'\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: this.props.controlClass || '' },\n          this.props.children,\n          this.getFeedbackIcon(),\n          this.getFeedbackDescription(),\n          this.getFeedback(),\n          this.getHelpText(),\n          this.props.extra || null\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"react\":\"react\"}],58:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _validators = require('../utils/validators');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar validateRequired = (0, _validators.required)();\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    var _Object$getPrototypeO;\n\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, _class);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_Object$getPrototypeO = Object.getPrototypeOf(_class)).call.apply(_Object$getPrototypeO, [this].concat(args))), _this), _this.bindInput = function (name) {\n      return function (event) {\n        var newState = _defineProperty({}, name, event.target.value);\n\n        var formErrors = _this.state.errors || {};\n        formErrors[name] = _this.validateField(name, newState[name]);\n        newState.errors = formErrors;\n\n        _this.setState(newState);\n      };\n    }, _this.handleSubmit = function (event) {\n      // we don't reload page on submissions\n      event.preventDefault();\n      if (_this.state.isLoading) {\n        return;\n      }\n\n      if (_this.clean()) {\n        _this.setState({ isLoading: true });\n        var promise = _this.send();\n\n        if (promise) {\n          promise.then(function (success) {\n            _this.setState({ isLoading: false });\n            _this.handleSuccess(success);\n          }, function (rejection) {\n            _this.setState({ isLoading: false });\n            _this.handleError(rejection);\n          });\n        } else {\n          _this.setState({ isLoading: false });\n        }\n      }\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  _createClass(_class, [{\n    key: 'validate',\n    value: function validate() {\n      var errors = {};\n      if (!this.state.validators) {\n        return errors;\n      }\n\n      var validators = {\n        required: this.state.validators.required || this.state.validators,\n        optional: this.state.validators.optional || {}\n      };\n\n      var validatedFields = [];\n\n      // add required fields to validation\n      for (var name in validators.required) {\n        if (validators.required.hasOwnProperty(name) && validators.required[name]) {\n          validatedFields.push(name);\n        }\n      }\n\n      // add optional fields to validation\n      for (var name in validators.optional) {\n        if (validators.optional.hasOwnProperty(name) && validators.optional[name]) {\n          validatedFields.push(name);\n        }\n      }\n\n      // validate fields values\n      for (var i in validatedFields) {\n        var name = validatedFields[i];\n        var fieldErrors = this.validateField(name, this.state[name]);\n\n        if (fieldErrors === null) {\n          errors[name] = null;\n        } else if (fieldErrors) {\n          errors[name] = fieldErrors;\n        }\n      }\n\n      return errors;\n    }\n  }, {\n    key: 'isValid',\n    value: function isValid() {\n      var errors = this.validate();\n      for (var field in errors) {\n        if (errors.hasOwnProperty(field)) {\n          if (errors[field] !== null) {\n            return false;\n          }\n        }\n      }\n\n      return true;\n    }\n  }, {\n    key: 'validateField',\n    value: function validateField(name, value) {\n      var errors = [];\n      if (!this.state.validators) {\n        return errors;\n      }\n\n      var validators = {\n        required: (this.state.validators.required || this.state.validators)[name],\n        optional: (this.state.validators.optional || {})[name]\n      };\n\n      var requiredError = validateRequired(value) || false;\n\n      if (validators.required) {\n        if (requiredError) {\n          errors = [requiredError];\n        } else {\n          for (var i in validators.required) {\n            var validationError = validators.required[i](value);\n            if (validationError) {\n              errors.push(validationError);\n            }\n          }\n        }\n\n        return errors.length ? errors : null;\n      } else if (requiredError === false && validators.optional) {\n        for (var i in validators.optional) {\n          var validationError = validators.optional[i](value);\n          if (validationError) {\n            errors.push(validationError);\n          }\n        }\n\n        return errors.length ? errors : null;\n      }\n\n      return false; // false === field wasn't validated\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'clean',\n    value: function clean() {\n      return true;\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return null;\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess(success) {\n      return;\n    }\n  }, {\n    key: 'handleError',\n\n    /* jshint ignore:end */\n    value: function handleError(rejection) {\n      return;\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../utils/validators\":109,\"react\":\"react\"}],59:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    _classCallCheck(this, _class);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments));\n  }\n\n  _createClass(_class, [{\n    key: 'isActive',\n    value: function isActive() {\n      if (this.props.path) {\n        return document.location.pathname.indexOf(this.props.path) === 0;\n      } else {\n        return false;\n      }\n    }\n  }, {\n    key: 'getClassName',\n    value: function getClassName() {\n      if (this.isActive()) {\n        return (this.props.className || '') + ' ' + (this.props.activeClassName || 'active');\n      } else {\n        return this.props.className || '';\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      // jshint ignore:start\n      return _react2.default.createElement(\n        'li',\n        { className: this.getClassName() },\n        this.props.children\n      );\n      // jshint ignore:end\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"react\":\"react\"}],60:[function(require,module,exports){\n\"use strict\";\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    _classCallCheck(this, _class);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments));\n  }\n\n  _createClass(_class, [{\n    key: \"render\",\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        \"div\",\n        { className: this.props.className || \"loader\" },\n        _react2.default.createElement(\"div\", { className: \"loader-spinning-wheel\" })\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"react\":\"react\"}],61:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _loader = require('./loader');\n\nvar _loader2 = _interopRequireDefault(_loader);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// jshint ignore:line\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    _classCallCheck(this, _class);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments));\n  }\n\n  _createClass(_class, [{\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'modal-body modal-loader' },\n        _react2.default.createElement(_loader2.default, null)\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"./loader\":60,\"react\":\"react\"}],62:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.UsernameHistory = exports.ChangeUsernameLoading = exports.NoChangesLeft = exports.ChangeUsername = undefined;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _avatar = require('../avatar');\n\nvar _avatar2 = _interopRequireDefault(_avatar);\n\nvar _button = require('../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('../form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _formGroup = require('../form-group');\n\nvar _formGroup2 = _interopRequireDefault(_formGroup);\n\nvar _loader = require('../loader');\n\nvar _loader2 = _interopRequireDefault(_loader);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _usernameHistory = require('../../reducers/username-history');\n\nvar _users = require('../../reducers/users');\n\nvar _ajax = require('../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _pageTitle = require('../../services/page-title');\n\nvar _pageTitle2 = _interopRequireDefault(_pageTitle);\n\nvar _snackbar = require('../../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _store = require('../../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nvar _random = require('../../utils/random');\n\nvar random = _interopRequireWildcard(_random);\n\nvar _validators = require('../../utils/validators');\n\nvar validators = _interopRequireWildcard(_validators);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar ChangeUsername = exports.ChangeUsername = function (_Form) {\n  _inherits(ChangeUsername, _Form);\n\n  function ChangeUsername(props) {\n    _classCallCheck(this, ChangeUsername);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(ChangeUsername).call(this, props));\n\n    _this.state = {\n      username: '',\n\n      validators: {\n        username: [validators.usernameContent(), validators.usernameMinLength({\n          username_length_min: props.options.length_min\n        }), validators.usernameMaxLength({\n          username_length_max: props.options.length_max\n        })]\n      },\n\n      isLoading: false\n    };\n    return _this;\n  }\n\n  _createClass(ChangeUsername, [{\n    key: 'getHelpText',\n    value: function getHelpText() {\n      var phrases = [];\n\n      if (this.props.options.changes_left > 0) {\n        var message = ngettext(\"You can change your username %(changes_left)s more time.\", \"You can change your username %(changes_left)s more times.\", this.props.options.changes_left);\n\n        phrases.push(interpolate(message, {\n          'changes_left': this.props.options.changes_left\n        }, true));\n      }\n\n      if (this.props.user.acl.name_changes_expire > 0) {\n        var message = ngettext(\"Used changes redeem after %(name_changes_expire)s day.\", \"Used changes redeem after %(name_changes_expire)s days.\", this.props.user.acl.name_changes_expire);\n\n        phrases.push(interpolate(message, {\n          'name_changes_expire': this.props.user.acl.name_changes_expire\n        }, true));\n      }\n\n      return phrases.length ? phrases.join(' ') : null;\n    }\n  }, {\n    key: 'clean',\n    value: function clean() {\n      var errors = this.validate();\n      if (errors.username) {\n        _snackbar2.default.error(errors.username[0]);\n        return false;\n      }if (this.state.username.trim() === this.props.user.username) {\n        _snackbar2.default.info(gettext(\"Your new username is same as current one.\"));\n        return false;\n      } else {\n        return true;\n      }\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(this.props.user.api_url.username, {\n        'username': this.state.username\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess(success) {\n      this.setState({\n        'username': ''\n      });\n\n      this.props.complete(success.username, success.slug, success.options);\n    }\n  }, {\n    key: 'handleError',\n    value: function handleError(rejection) {\n      _snackbar2.default.apiError(rejection);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'form',\n        { onSubmit: this.handleSubmit, className: 'form-horizontal' },\n        _react2.default.createElement(\n          'div',\n          { className: 'panel panel-default panel-form' },\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-heading' },\n            _react2.default.createElement(\n              'h3',\n              { className: 'panel-title' },\n              gettext(\"Change username\")\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-body' },\n            _react2.default.createElement(\n              _formGroup2.default,\n              { label: gettext(\"New username\"), 'for': 'id_username',\n                labelClass: 'col-sm-4', controlClass: 'col-sm-8',\n                helpText: this.getHelpText() },\n              _react2.default.createElement('input', { type: 'text', id: 'id_username', className: 'form-control',\n                disabled: this.state.isLoading,\n                onChange: this.bindInput('username'),\n                value: this.state.username })\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-footer' },\n            _react2.default.createElement(\n              'div',\n              { className: 'row' },\n              _react2.default.createElement(\n                'div',\n                { className: 'col-sm-8 col-sm-offset-4' },\n                _react2.default.createElement(\n                  _button2.default,\n                  { className: 'btn-primary', loading: this.state.isLoading },\n                  gettext(\"Change username\")\n                )\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return ChangeUsername;\n}(_form2.default);\n\nvar NoChangesLeft = exports.NoChangesLeft = function (_React$Component) {\n  _inherits(NoChangesLeft, _React$Component);\n\n  function NoChangesLeft() {\n    _classCallCheck(this, NoChangesLeft);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(NoChangesLeft).apply(this, arguments));\n  }\n\n  _createClass(NoChangesLeft, [{\n    key: 'getHelpText',\n    value: function getHelpText() {\n      if (this.props.options.next_on) {\n        return interpolate(gettext(\"You will be able to change your username %(next_change)s.\"), { 'next_change': this.props.options.next_on.fromNow() }, true);\n      } else {\n        return gettext(\"You have used up available name changes.\");\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'panel panel-default panel-form' },\n        _react2.default.createElement(\n          'div',\n          { className: 'panel-heading' },\n          _react2.default.createElement(\n            'h3',\n            { className: 'panel-title' },\n            gettext(\"Change username\")\n          )\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'panel-body panel-message-body' },\n          _react2.default.createElement(\n            'div',\n            { className: 'message-icon' },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              'info_outline'\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'message-body' },\n            _react2.default.createElement(\n              'p',\n              { className: 'lead' },\n              gettext(\"You can't change your username at the moment.\")\n            ),\n            _react2.default.createElement(\n              'p',\n              { className: 'help-block' },\n              this.getHelpText()\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return NoChangesLeft;\n}(_react2.default.Component);\n\nvar ChangeUsernameLoading = exports.ChangeUsernameLoading = function (_React$Component2) {\n  _inherits(ChangeUsernameLoading, _React$Component2);\n\n  function ChangeUsernameLoading() {\n    _classCallCheck(this, ChangeUsernameLoading);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(ChangeUsernameLoading).apply(this, arguments));\n  }\n\n  _createClass(ChangeUsernameLoading, [{\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'panel panel-default panel-form' },\n        _react2.default.createElement(\n          'div',\n          { className: 'panel-heading' },\n          _react2.default.createElement(\n            'h3',\n            { className: 'panel-title' },\n            gettext(\"Change username\")\n          )\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'panel-body panel-body-loading' },\n          _react2.default.createElement(_loader2.default, { className: 'loader loader-spaced' })\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return ChangeUsernameLoading;\n}(_react2.default.Component);\n\nvar UsernameHistory = exports.UsernameHistory = function (_React$Component3) {\n  _inherits(UsernameHistory, _React$Component3);\n\n  function UsernameHistory() {\n    _classCallCheck(this, UsernameHistory);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(UsernameHistory).apply(this, arguments));\n  }\n\n  _createClass(UsernameHistory, [{\n    key: 'renderUserAvatar',\n    value: function renderUserAvatar(item) {\n      if (item.changed_by) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'a',\n          { href: item.changed_by.absolute_url, className: 'user-avatar' },\n          _react2.default.createElement(_avatar2.default, { user: item.changed_by, size: '100' })\n        );\n        /* jshint ignore:end */\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(\n            'span',\n            { className: 'user-avatar' },\n            _react2.default.createElement(_avatar2.default, { size: '100' })\n          );\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'renderUsername',\n    value: function renderUsername(item) {\n      if (item.changed_by) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'a',\n          { href: item.changed_by.absolute_url, className: 'item-title' },\n          item.changed_by.username\n        );\n        /* jshint ignore:end */\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(\n            'span',\n            { className: 'item-title' },\n            item.changed_by_username\n          );\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'renderHistory',\n    value: function renderHistory() {\n      var _this5 = this;\n\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'username-history ui-ready' },\n        _react2.default.createElement(\n          'ul',\n          { className: 'list-group' },\n          this.props.changes.map(function (item) {\n            return _react2.default.createElement(\n              'li',\n              { className: 'list-group-item', key: item.id },\n              _react2.default.createElement(\n                'div',\n                { className: 'username-change-avatar' },\n                _this5.renderUserAvatar(item)\n              ),\n              _react2.default.createElement(\n                'div',\n                { className: 'username-change-author' },\n                _this5.renderUsername(item)\n              ),\n              _react2.default.createElement(\n                'div',\n                { className: 'username-change' },\n                item.old_username,\n                _react2.default.createElement(\n                  'span',\n                  { className: 'material-icon' },\n                  'arrow_forward'\n                ),\n                item.new_username\n              ),\n              _react2.default.createElement(\n                'div',\n                { className: 'username-change-date' },\n                _react2.default.createElement(\n                  'abbr',\n                  { title: item.changed_on.format('LLL') },\n                  item.changed_on.fromNow()\n                )\n              )\n            );\n          })\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'renderEmptyHistory',\n    value: function renderEmptyHistory() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'username-history ui-ready' },\n        _react2.default.createElement(\n          'ul',\n          { className: 'list-group' },\n          _react2.default.createElement(\n            'li',\n            { className: 'list-group-item empty-message' },\n            gettext(\"No name changes have been recorded for your account.\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'renderHistoryPreview',\n    value: function renderHistoryPreview() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'username-history ui-preview' },\n        _react2.default.createElement(\n          'ul',\n          { className: 'list-group' },\n          random.range(3, 5).map(function (i) {\n            return _react2.default.createElement(\n              'li',\n              { className: 'list-group-item', key: i },\n              _react2.default.createElement(\n                'div',\n                { className: 'username-change-avatar' },\n                _react2.default.createElement(\n                  'span',\n                  { className: 'user-avatar' },\n                  _react2.default.createElement(_avatar2.default, { size: '100' })\n                )\n              ),\n              _react2.default.createElement(\n                'div',\n                { className: 'username-change-author' },\n                _react2.default.createElement(\n                  'span',\n                  { className: 'ui-preview-text', style: { width: random.int(30, 100) + \"px\" } },\n                  ' '\n                )\n              ),\n              _react2.default.createElement(\n                'div',\n                { className: 'username-change' },\n                _react2.default.createElement(\n                  'span',\n                  { className: 'ui-preview-text', style: { width: random.int(30, 50) + \"px\" } },\n                  ' '\n                ),\n                _react2.default.createElement(\n                  'span',\n                  { className: 'material-icon' },\n                  'arrow_forward'\n                ),\n                _react2.default.createElement(\n                  'span',\n                  { className: 'ui-preview-text', style: { width: random.int(30, 50) + \"px\" } },\n                  ' '\n                )\n              ),\n              _react2.default.createElement(\n                'div',\n                { className: 'username-change-date' },\n                _react2.default.createElement(\n                  'span',\n                  { className: 'ui-preview-text', style: { width: random.int(50, 100) + \"px\" } },\n                  ' '\n                )\n              )\n            );\n          })\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      if (this.props.isLoaded) {\n        if (this.props.changes.length) {\n          return this.renderHistory();\n        } else {\n          return this.renderEmptyHistory();\n        }\n      } else {\n        return this.renderHistoryPreview();\n      }\n    }\n  }]);\n\n  return UsernameHistory;\n}(_react2.default.Component);\n\nvar _class = function (_React$Component4) {\n  _inherits(_class, _React$Component4);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this6 = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this6.onComplete = function (username, slug, options) {\n      _this6.setState({\n        options: options\n      });\n\n      _store2.default.dispatch((0, _usernameHistory.addNameChange)({ username: username, slug: slug }, _this6.props.user, _this6.props.user));\n      _store2.default.dispatch((0, _users.updateUsername)(_this6.props.user, username, slug));\n\n      _snackbar2.default.success(gettext(\"Your username has been changed successfully.\"));\n    };\n\n    _this6.state = {\n      isLoaded: false,\n      options: null\n    };\n    return _this6;\n  }\n\n  _createClass(_class, [{\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      var _this7 = this;\n\n      _pageTitle2.default.set({\n        title: gettext(\"Change username\"),\n        parent: gettext(\"Change your options\")\n      });\n\n      Promise.all([_ajax2.default.get(this.props.user.api_url.username), _ajax2.default.get(_index2.default.get('USERNAME_CHANGES_API'), { user: this.props.user.id })]).then(function (data) {\n        _this7.setState({\n          isLoaded: true,\n          options: {\n            changes_left: data[0].changes_left,\n            length_min: data[0].length_min,\n            length_max: data[0].length_max,\n            next_on: data[0].next_on ? (0, _moment2.default)(data[0].next_on) : null\n          }\n        });\n\n        _store2.default.dispatch((0, _usernameHistory.dehydrate)(data[1].results));\n      });\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'getChangeForm',\n\n    /* jshint ignore:end */\n\n    value: function getChangeForm() {\n      if (this.state.isLoaded) {\n        if (this.state.options.changes_left > 0) {\n          /* jshint ignore:start */\n          return _react2.default.createElement(ChangeUsername, { user: this.props.user,\n            options: this.state.options,\n            complete: this.onComplete });\n          /* jshint ignore:end */\n        } else {\n            /* jshint ignore:start */\n            return _react2.default.createElement(NoChangesLeft, { options: this.state.options });\n            /* jshint ignore:end */\n          }\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(ChangeUsernameLoading, null);\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        null,\n        this.getChangeForm(),\n        _react2.default.createElement(UsernameHistory, { isLoaded: this.state.isLoaded,\n          changes: this.props['username-history'] })\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../index\":85,\"../../reducers/username-history\":89,\"../../reducers/users\":90,\"../../services/ajax\":91,\"../../services/page-title\":98,\"../../services/snackbar\":99,\"../../services/store\":100,\"../../utils/random\":107,\"../../utils/validators\":109,\"../avatar\":49,\"../button\":51,\"../form\":58,\"../form-group\":57,\"../loader\":60,\"moment\":\"moment\",\"react\":\"react\"}],63:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _button = require('../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('../form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _formGroup = require('../form-group');\n\nvar _formGroup2 = _interopRequireDefault(_formGroup);\n\nvar _select = require('../select');\n\nvar _select2 = _interopRequireDefault(_select);\n\nvar _yesNoSwitch = require('../yes-no-switch');\n\nvar _yesNoSwitch2 = _interopRequireDefault(_yesNoSwitch);\n\nvar _auth = require('../../reducers/auth');\n\nvar _ajax = require('../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _pageTitle = require('../../services/page-title');\n\nvar _pageTitle2 = _interopRequireDefault(_pageTitle);\n\nvar _snackbar = require('../../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _store = require('../../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar _class = function (_Form) {\n  _inherits(_class, _Form);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.state = {\n      'isLoading': false,\n\n      'is_hiding_presence': props.user.is_hiding_presence,\n      'limits_private_thread_invites_to': props.user.limits_private_thread_invites_to,\n      'subscribe_to_started_threads': props.user.subscribe_to_started_threads,\n      'subscribe_to_replied_threads': props.user.subscribe_to_replied_threads,\n\n      'errors': {}\n    };\n\n    _this.privateThreadInvitesChoices = [{\n      'value': 0,\n      'icon': 'help_outline',\n      'label': gettext('Everybody')\n    }, {\n      'value': 1,\n      'icon': 'done_all',\n      'label': gettext('Users I follow')\n    }, {\n      'value': 2,\n      'icon': 'highlight_off',\n      'label': gettext('Nobody')\n    }];\n\n    _this.subscribeToChoices = [{\n      'value': 0,\n      'icon': 'bookmark_border',\n      'label': gettext('No')\n    }, {\n      'value': 1,\n      'icon': 'bookmark',\n      'label': gettext('Bookmark')\n    }, {\n      'value': 2,\n      'icon': 'mail',\n      'label': gettext('Bookmark with e-mail notification')\n    }];\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(this.props.user.api_url.options, {\n        'is_hiding_presence': this.state.is_hiding_presence,\n        'limits_private_thread_invites_to': this.state.limits_private_thread_invites_to,\n        'subscribe_to_started_threads': this.state.subscribe_to_started_threads,\n        'subscribe_to_replied_threads': this.state.subscribe_to_replied_threads\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess() {\n      _store2.default.dispatch((0, _auth.patchUser)({\n        'is_hiding_presence': this.state.is_hiding_presence,\n        'limits_private_thread_invites_to': this.state.limits_private_thread_invites_to,\n        'subscribe_to_started_threads': this.state.subscribe_to_started_threads,\n        'subscribe_to_replied_threads': this.state.subscribe_to_replied_threads\n      }));\n      _snackbar2.default.success(gettext(\"Your forum options have been changed.\"));\n    }\n  }, {\n    key: 'handleError',\n    value: function handleError(rejection) {\n      if (rejection.status === 400) {\n        _snackbar2.default.error(gettext(\"Please reload page and try again.\"));\n      } else {\n        _snackbar2.default.apiError(rejection);\n      }\n    }\n  }, {\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      _pageTitle2.default.set({\n        title: gettext(\"Forum options\"),\n        parent: gettext(\"Change your options\")\n      });\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'form',\n        { onSubmit: this.handleSubmit, className: 'form-horizontal' },\n        _react2.default.createElement(\n          'div',\n          { className: 'panel panel-default panel-form' },\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-heading' },\n            _react2.default.createElement(\n              'h3',\n              { className: 'panel-title' },\n              gettext(\"Change forum options\")\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-body' },\n            _react2.default.createElement(\n              'fieldset',\n              null,\n              _react2.default.createElement(\n                'legend',\n                null,\n                gettext(\"Privacy settings\")\n              ),\n              _react2.default.createElement(\n                _formGroup2.default,\n                { label: gettext(\"Hide my presence\"),\n                  helpText: gettext(\"If you hide your presence, only members with permission to see hidden users will see when you are online.\"),\n                  'for': 'id_is_hiding_presence',\n                  labelClass: 'col-sm-4', controlClass: 'col-sm-8' },\n                _react2.default.createElement(_yesNoSwitch2.default, { id: 'id_is_hiding_presence',\n                  disabled: this.state.isLoading,\n                  iconOn: 'visibility',\n                  iconOff: 'visibility_off',\n                  labelOn: gettext(\"Show my presence to other users\"),\n                  labelOff: gettext(\"Hide my presence from other users\"),\n                  onChange: this.bindInput('is_hiding_presence'),\n                  value: this.state.is_hiding_presence })\n              ),\n              _react2.default.createElement(\n                _formGroup2.default,\n                { label: gettext(\"Private thread invitations\"),\n                  'for': 'id_limits_private_thread_invites_to',\n                  labelClass: 'col-sm-4', controlClass: 'col-sm-8' },\n                _react2.default.createElement(_select2.default, { id: 'id_limits_private_thread_invites_to',\n                  disabled: this.state.isLoading,\n                  onChange: this.bindInput('limits_private_thread_invites_to'),\n                  value: this.state.limits_private_thread_invites_to,\n                  choices: this.privateThreadInvitesChoices })\n              )\n            ),\n            _react2.default.createElement(\n              'fieldset',\n              null,\n              _react2.default.createElement(\n                'legend',\n                null,\n                gettext(\"Automatic subscriptions\")\n              ),\n              _react2.default.createElement(\n                _formGroup2.default,\n                { label: gettext(\"Threads I start\"),\n                  'for': 'id_subscribe_to_started_threads',\n                  labelClass: 'col-sm-4', controlClass: 'col-sm-8' },\n                _react2.default.createElement(_select2.default, { id: 'id_subscribe_to_started_threads',\n                  disabled: this.state.isLoading,\n                  onChange: this.bindInput('subscribe_to_started_threads'),\n                  value: this.state.subscribe_to_started_threads,\n                  choices: this.subscribeToChoices })\n              ),\n              _react2.default.createElement(\n                _formGroup2.default,\n                { label: gettext(\"Threads I reply to\"),\n                  'for': 'id_subscribe_to_replied_threads',\n                  labelClass: 'col-sm-4', controlClass: 'col-sm-8' },\n                _react2.default.createElement(_select2.default, { id: 'id_subscribe_to_replied_threads',\n                  disabled: this.state.isLoading,\n                  onChange: this.bindInput('subscribe_to_replied_threads'),\n                  value: this.state.subscribe_to_replied_threads,\n                  choices: this.subscribeToChoices })\n              )\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-footer' },\n            _react2.default.createElement(\n              'div',\n              { className: 'row' },\n              _react2.default.createElement(\n                'div',\n                { className: 'col-sm-8 col-sm-offset-4' },\n                _react2.default.createElement(\n                  _button2.default,\n                  { className: 'btn-primary', loading: this.state.isLoading },\n                  gettext(\"Save changes\")\n                )\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_form2.default);\n\nexports.default = _class;\n\n},{\"../../reducers/auth\":86,\"../../services/ajax\":91,\"../../services/page-title\":98,\"../../services/snackbar\":99,\"../../services/store\":100,\"../button\":51,\"../form\":58,\"../form-group\":57,\"../select\":73,\"../yes-no-switch\":84,\"react\":\"react\"}],64:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.CompactNav = exports.SideNav = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRouter = require('react-router');\n\nvar _li = require('../li');\n\nvar _li2 = _interopRequireDefault(_li);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n//jshint ignore:line\n\n//jshint ignore:line\n\nvar SideNav = exports.SideNav = function (_React$Component) {\n  _inherits(SideNav, _React$Component);\n\n  function SideNav() {\n    _classCallCheck(this, SideNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(SideNav).apply(this, arguments));\n  }\n\n  _createClass(SideNav, [{\n    key: 'render',\n    value: function render() {\n      var _this2 = this;\n\n      // jshint ignore:start\n      return _react2.default.createElement(\n        'div',\n        { className: 'list-group nav-side' },\n        this.props.options.map(function (option) {\n          return _react2.default.createElement(\n            _reactRouter.Link,\n            { to: _this2.props.baseUrl + option.component + '/',\n              className: 'list-group-item',\n              activeClassName: 'active',\n              key: option.component },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              option.icon\n            ),\n            option.name\n          );\n        })\n      );\n      // jshint ignore:end\n    }\n  }]);\n\n  return SideNav;\n}(_react2.default.Component);\n\nvar CompactNav = exports.CompactNav = function (_React$Component2) {\n  _inherits(CompactNav, _React$Component2);\n\n  function CompactNav() {\n    _classCallCheck(this, CompactNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(CompactNav).apply(this, arguments));\n  }\n\n  _createClass(CompactNav, [{\n    key: 'render',\n    value: function render() {\n      var _this4 = this;\n\n      // jshint ignore:start\n      return _react2.default.createElement(\n        'ul',\n        { className: 'dropdown-menu', role: 'menu' },\n        this.props.options.map(function (option) {\n          return _react2.default.createElement(\n            _li2.default,\n            { path: _this4.props.baseUrl + option.component + '/',\n              key: option.component },\n            _react2.default.createElement(\n              _reactRouter.Link,\n              { to: _this4.props.baseUrl + option.component + '/' },\n              _react2.default.createElement(\n                'span',\n                { className: 'material-icon' },\n                option.icon\n              ),\n              option.name\n            )\n          );\n        })\n      );\n      // jshint ignore:end\n    }\n  }]);\n\n  return CompactNav;\n}(_react2.default.Component);\n\n},{\"../../index\":85,\"../li\":59,\"react\":\"react\",\"react-router\":\"react-router\"}],65:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.select = select;\nexports.paths = paths;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = require('react-redux');\n\nvar _navs = require('./navs');\n\nvar _forumOptions = require('./forum-options');\n\nvar _forumOptions2 = _interopRequireDefault(_forumOptions);\n\nvar _changeUsername = require('./change-username');\n\nvar _changeUsername2 = _interopRequireDefault(_changeUsername);\n\nvar _signInCredentials = require('./sign-in-credentials');\n\nvar _signInCredentials2 = _interopRequireDefault(_signInCredentials);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.toggleNav = function () {\n      if (_this.state.dropdown) {\n        _this.setState({\n          dropdown: false\n        });\n      } else {\n        _this.setState({\n          dropdown: true\n        });\n      }\n    };\n\n    _this.state = {\n      dropdown: false\n    };\n    return _this;\n  }\n\n  /* jshint ignore:start */\n\n  _createClass(_class, [{\n    key: 'getToggleNavClassName',\n\n    /* jshint ignore:end */\n\n    value: function getToggleNavClassName() {\n      if (this.state.dropdown) {\n        return 'btn btn-default btn-icon open';\n      } else {\n        return 'btn btn-default btn-icon';\n      }\n    }\n  }, {\n    key: 'getCompactNavClassName',\n    value: function getCompactNavClassName() {\n      if (this.state.dropdown) {\n        return 'compact-nav open';\n      } else {\n        return 'compact-nav';\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'page page-options' },\n        _react2.default.createElement(\n          'div',\n          { className: 'page-header' },\n          _react2.default.createElement(\n            'div',\n            { className: 'container' },\n            _react2.default.createElement(\n              'h1',\n              { className: 'pull-left' },\n              gettext(\"Change your options\")\n            ),\n            _react2.default.createElement(\n              'button',\n              { className: 'btn btn-default btn-icon btn-dropdown-toggle hidden-md hidden-lg',\n                type: 'button',\n                onClick: this.toggleNav,\n                'aria-haspopup': 'true',\n                'aria-expanded': this.state.dropdown ? 'true' : 'false' },\n              _react2.default.createElement(\n                'i',\n                { className: 'material-icon' },\n                'menu'\n              )\n            )\n          )\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: this.getCompactNavClassName() },\n          _react2.default.createElement(_navs.CompactNav, { options: _index2.default.get('USER_OPTIONS'),\n            baseUrl: _index2.default.get('USERCP_URL') })\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'container' },\n          _react2.default.createElement(\n            'div',\n            { className: 'row' },\n            _react2.default.createElement(\n              'div',\n              { className: 'col-md-3 hidden-xs hidden-sm' },\n              _react2.default.createElement(_navs.SideNav, { options: _index2.default.get('USER_OPTIONS'),\n                baseUrl: _index2.default.get('USERCP_URL') })\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'col-md-9' },\n              this.props.children\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\nfunction select(store) {\n  return {\n    'tick': store.tick.tick,\n    'user': store.auth.user,\n    'username-history': store['username-history']\n  };\n}\n\nfunction paths() {\n  return [{\n    path: _index2.default.get('USERCP_URL') + 'forum-options/',\n    component: (0, _reactRedux.connect)(select)(_forumOptions2.default)\n  }, {\n    path: _index2.default.get('USERCP_URL') + 'change-username/',\n    component: (0, _reactRedux.connect)(select)(_changeUsername2.default)\n  }, {\n    path: _index2.default.get('USERCP_URL') + 'sign-in-credentials/',\n    component: (0, _reactRedux.connect)(select)(_signInCredentials2.default)\n  }];\n}\n\n},{\"../../index\":85,\"./change-username\":62,\"./forum-options\":63,\"./navs\":64,\"./sign-in-credentials\":66,\"react\":\"react\",\"react-redux\":\"react-redux\"}],66:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.ChangePassword = exports.ChangeEmail = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _button = require('../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('../form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _formGroup = require('../form-group');\n\nvar _formGroup2 = _interopRequireDefault(_formGroup);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _ajax = require('../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _pageTitle = require('../../services/page-title');\n\nvar _pageTitle2 = _interopRequireDefault(_pageTitle);\n\nvar _snackbar = require('../../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _validators = require('../../utils/validators');\n\nvar validators = _interopRequireWildcard(_validators);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n\nvar ChangeEmail = exports.ChangeEmail = function (_Form) {\n  _inherits(ChangeEmail, _Form);\n\n  function ChangeEmail(props) {\n    _classCallCheck(this, ChangeEmail);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(ChangeEmail).call(this, props));\n\n    _this.state = {\n      new_email: '',\n      password: '',\n\n      validators: {\n        new_email: [validators.email()],\n        password: []\n      },\n\n      isLoading: false\n    };\n    return _this;\n  }\n\n  _createClass(ChangeEmail, [{\n    key: 'clean',\n    value: function clean() {\n      var errors = this.validate();\n      var lengths = [this.state.new_email.trim().length, this.state.password.trim().length];\n\n      if (lengths.indexOf(0) !== -1) {\n        _snackbar2.default.error(gettext(\"Fill out all fields.\"));\n        return false;\n      }\n\n      if (errors.new_email) {\n        _snackbar2.default.error(errors.new_email[0]);\n        return false;\n      }\n\n      return true;\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(this.props.user.api_url.change_email, {\n        new_email: this.state.new_email,\n        password: this.state.password\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess(response) {\n      this.setState({\n        new_email: '',\n        password: ''\n      });\n\n      _snackbar2.default.success(response.detail);\n    }\n  }, {\n    key: 'handleError',\n    value: function handleError(rejection) {\n      if (rejection.status === 400) {\n        if (rejection.new_email) {\n          _snackbar2.default.error(rejection.new_email);\n        } else {\n          _snackbar2.default.error(rejection.password);\n        }\n      } else {\n        _snackbar2.default.apiError(rejection);\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'form',\n        { onSubmit: this.handleSubmit, className: 'form-horizontal' },\n        _react2.default.createElement('input', { type: 'type', style: { display: 'none' } }),\n        _react2.default.createElement('input', { type: 'password', style: { display: 'none' } }),\n        _react2.default.createElement(\n          'div',\n          { className: 'panel panel-default panel-form' },\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-heading' },\n            _react2.default.createElement(\n              'h3',\n              { className: 'panel-title' },\n              gettext(\"Change e-mail address\")\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-body' },\n            _react2.default.createElement(\n              _formGroup2.default,\n              { label: gettext(\"New e-mail\"), 'for': 'id_new_email',\n                labelClass: 'col-sm-4', controlClass: 'col-sm-8' },\n              _react2.default.createElement('input', { type: 'text', id: 'id_new_email', className: 'form-control',\n                disabled: this.state.isLoading,\n                onChange: this.bindInput('new_email'),\n                value: this.state.new_email })\n            ),\n            _react2.default.createElement('hr', null),\n            _react2.default.createElement(\n              _formGroup2.default,\n              { label: gettext(\"Your current password\"), 'for': 'id_password',\n                labelClass: 'col-sm-4', controlClass: 'col-sm-8' },\n              _react2.default.createElement('input', { type: 'password', id: 'id_password', className: 'form-control',\n                disabled: this.state.isLoading,\n                onChange: this.bindInput('password'),\n                value: this.state.password })\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-footer' },\n            _react2.default.createElement(\n              'div',\n              { className: 'row' },\n              _react2.default.createElement(\n                'div',\n                { className: 'col-sm-8 col-sm-offset-4' },\n                _react2.default.createElement(\n                  _button2.default,\n                  { className: 'btn-primary', loading: this.state.isLoading },\n                  gettext(\"Change e-mail\")\n                )\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return ChangeEmail;\n}(_form2.default);\n\nvar ChangePassword = exports.ChangePassword = function (_Form2) {\n  _inherits(ChangePassword, _Form2);\n\n  function ChangePassword(props) {\n    _classCallCheck(this, ChangePassword);\n\n    var _this2 = _possibleConstructorReturn(this, Object.getPrototypeOf(ChangePassword).call(this, props));\n\n    _this2.state = {\n      new_password: '',\n      repeat_password: '',\n      password: '',\n\n      validators: {\n        new_password: [validators.passwordMinLength(_index2.default.get('SETTINGS'))],\n        repeat_password: [],\n        password: []\n      },\n\n      isLoading: false\n    };\n    return _this2;\n  }\n\n  _createClass(ChangePassword, [{\n    key: 'clean',\n    value: function clean() {\n      var errors = this.validate();\n      var lengths = [this.state.new_password.trim().length, this.state.repeat_password.trim().length, this.state.password.trim().length];\n\n      if (lengths.indexOf(0) !== -1) {\n        _snackbar2.default.error(gettext(\"Fill out all fields.\"));\n        return false;\n      }\n\n      if (errors.new_password) {\n        _snackbar2.default.error(errors.new_password[0]);\n        return false;\n      }\n\n      if (this.state.new_password.trim() !== this.state.repeat_password.trim()) {\n        _snackbar2.default.error(gettext(\"New passwords are different.\"));\n        return false;\n      }\n\n      return true;\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(this.props.user.api_url.change_password, {\n        new_password: this.state.new_password,\n        password: this.state.password\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess(response) {\n      this.setState({\n        new_password: '',\n        repeat_password: '',\n        password: ''\n      });\n\n      _snackbar2.default.success(response.detail);\n    }\n  }, {\n    key: 'handleError',\n    value: function handleError(rejection) {\n      if (rejection.status === 400) {\n        if (rejection.new_password) {\n          _snackbar2.default.error(rejection.new_password);\n        } else {\n          _snackbar2.default.error(rejection.password);\n        }\n      } else {\n        _snackbar2.default.apiError(rejection);\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'form',\n        { onSubmit: this.handleSubmit, className: 'form-horizontal' },\n        _react2.default.createElement('input', { type: 'type', style: { display: 'none' } }),\n        _react2.default.createElement('input', { type: 'password', style: { display: 'none' } }),\n        _react2.default.createElement(\n          'div',\n          { className: 'panel panel-default panel-form' },\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-heading' },\n            _react2.default.createElement(\n              'h3',\n              { className: 'panel-title' },\n              gettext(\"Change password\")\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-body' },\n            _react2.default.createElement(\n              _formGroup2.default,\n              { label: gettext(\"New password\"), 'for': 'id_new_password',\n                labelClass: 'col-sm-4', controlClass: 'col-sm-8' },\n              _react2.default.createElement('input', { type: 'password', id: 'id_new_password', className: 'form-control',\n                disabled: this.state.isLoading,\n                onChange: this.bindInput('new_password'),\n                value: this.state.new_password })\n            ),\n            _react2.default.createElement(\n              _formGroup2.default,\n              { label: gettext(\"Repeat password\"), 'for': 'id_repeat_password',\n                labelClass: 'col-sm-4', controlClass: 'col-sm-8' },\n              _react2.default.createElement('input', { type: 'password', id: 'id_repeat_password', className: 'form-control',\n                disabled: this.state.isLoading,\n                onChange: this.bindInput('repeat_password'),\n                value: this.state.repeat_password })\n            ),\n            _react2.default.createElement('hr', null),\n            _react2.default.createElement(\n              _formGroup2.default,\n              { label: gettext(\"Your current password\"), 'for': 'id_password',\n                labelClass: 'col-sm-4', controlClass: 'col-sm-8' },\n              _react2.default.createElement('input', { type: 'password', id: 'id_password', className: 'form-control',\n                disabled: this.state.isLoading,\n                onChange: this.bindInput('password'),\n                value: this.state.password })\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-footer' },\n            _react2.default.createElement(\n              'div',\n              { className: 'row' },\n              _react2.default.createElement(\n                'div',\n                { className: 'col-sm-8 col-sm-offset-4' },\n                _react2.default.createElement(\n                  _button2.default,\n                  { className: 'btn-primary', loading: this.state.isLoading },\n                  gettext(\"Change password\")\n                )\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return ChangePassword;\n}(_form2.default);\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    _classCallCheck(this, _class);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments));\n  }\n\n  _createClass(_class, [{\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      _pageTitle2.default.set({\n        title: gettext(\"Change email or password\"),\n        parent: gettext(\"Change your options\")\n      });\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        null,\n        _react2.default.createElement(ChangeEmail, { user: this.props.user }),\n        _react2.default.createElement(ChangePassword, { user: this.props.user }),\n        _react2.default.createElement(\n          'p',\n          { className: 'message-line' },\n          _react2.default.createElement(\n            'span',\n            { className: 'material-icon' },\n            'warning'\n          ),\n          _react2.default.createElement(\n            'a',\n            { href: _index2.default.get('FORGOTTEN_PASSWORD_URL') },\n            gettext(\"Change forgotten password\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../index\":85,\"../../services/ajax\":91,\"../../services/page-title\":98,\"../../services/snackbar\":99,\"../../utils/validators\":109,\"../button\":51,\"../form\":58,\"../form-group\":57,\"react\":\"react\"}],67:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.LABELS = exports.STYLES = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _zxcvbn = require('../services/zxcvbn');\n\nvar _zxcvbn2 = _interopRequireDefault(_zxcvbn);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar STYLES = exports.STYLES = ['progress-bar-danger', 'progress-bar-warning', 'progress-bar-warning', 'progress-bar-primary', 'progress-bar-success'];\n\nvar LABELS = exports.LABELS = [gettext(\"Entered password is very weak.\"), gettext(\"Entered password is weak.\"), gettext(\"Entered password is average.\"), gettext(\"Entered password is strong.\"), gettext(\"Entered password is very strong.\")];\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this._score = 0;\n    _this._password = null;\n    _this._inputs = [];\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'getScore',\n    value: function getScore(password, inputs) {\n      var _this2 = this;\n\n      var cacheStale = false;\n\n      if (password.trim() !== this._password) {\n        cacheStale = true;\n      }\n\n      if (inputs.length !== this._inputs.length) {\n        cacheStale = true;\n      } else {\n        inputs.map(function (value, i) {\n          if (value.trim() !== _this2._inputs[i]) {\n            cacheStale = true;\n          }\n        });\n      }\n\n      if (cacheStale) {\n        this._score = _zxcvbn2.default.scorePassword(password, inputs);\n        this._password = password.trim();\n        this._inputs = inputs.map(function (value) {\n          return value.trim();\n        });\n      }\n\n      return this._score;\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      var score = this.getScore(this.props.password, this.props.inputs);\n\n      return _react2.default.createElement(\n        'div',\n        { className: 'help-block password-strength' },\n        _react2.default.createElement(\n          'div',\n          { className: 'progress' },\n          _react2.default.createElement(\n            'div',\n            { className: \"progress-bar \" + STYLES[score],\n              style: { width: 20 + 20 * score + '%' },\n              role: 'progress-bar',\n              'aria-valuenow': score,\n              'aria-valuemin': '0',\n              'aria-valuemax': '4' },\n            _react2.default.createElement(\n              'span',\n              { className: 'sr-only' },\n              LABELS[score]\n            )\n          )\n        ),\n        _react2.default.createElement(\n          'p',\n          { className: 'text-small' },\n          LABELS[score]\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../services/zxcvbn\":101,\"react\":\"react\"}],68:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _loader = require('./loader');\n\nvar _loader2 = _interopRequireDefault(_loader);\n\nvar _register = require('./register.js');\n\nvar _register2 = _interopRequireDefault(_register);\n\nvar _captcha = require('../services/captcha');\n\nvar _captcha2 = _interopRequireDefault(_captcha);\n\nvar _modal = require('../services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nvar _snackbar = require('../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _zxcvbn = require('../services/zxcvbn');\n\nvar _zxcvbn2 = _interopRequireDefault(_zxcvbn);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\n// jshint ignore:line\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.showRegisterModal = function () {\n      if (misago.get('SETTINGS').account_activation === 'closed') {\n        _snackbar2.default.info(gettext(\"New registrations are currently disabled.\"));\n      } else if (_this.state.isLoaded) {\n        _modal2.default.show(_register2.default);\n      } else {\n        _this.setState({\n          'isLoading': true\n        });\n\n        Promise.all([_captcha2.default.load(), _zxcvbn2.default.load()]).then(function () {\n          if (!_this.state.isLoaded) {\n            _this.setState({\n              'isLoading': false,\n              'isLoaded': false\n            });\n          }\n\n          _modal2.default.show(_register2.default);\n        });\n      }\n    };\n\n    _this.state = {\n      'isLoading': false,\n      'isLoaded': false\n    };\n    return _this;\n  }\n\n  /* jshint ignore:start */\n\n  _createClass(_class, [{\n    key: 'getClassName',\n\n    /* jshint ignore:end */\n\n    value: function getClassName() {\n      return this.props.className + (this.state.isLoading ? ' btn-loading' : '');\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'button',\n        { type: 'button', onClick: this.showRegisterModal,\n          className: 'btn ' + this.getClassName(),\n          disabled: this.state.isLoaded },\n        gettext(\"Register\"),\n        this.state.isLoading ? _react2.default.createElement(_loader2.default, null) : null\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../services/captcha\":93,\"../services/modal\":97,\"../services/snackbar\":99,\"../services/zxcvbn\":101,\"./loader\":60,\"./register.js\":69,\"react\":\"react\"}],69:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.RegisterComplete = exports.RegisterForm = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _button = require('./button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('./form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _formGroup = require('./form-group');\n\nvar _formGroup2 = _interopRequireDefault(_formGroup);\n\nvar _passwordStrength = require('./password-strength');\n\nvar _passwordStrength2 = _interopRequireDefault(_passwordStrength);\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _ajax = require('../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _auth = require('../services/auth');\n\nvar _auth2 = _interopRequireDefault(_auth);\n\nvar _captcha = require('../services/captcha');\n\nvar _captcha2 = _interopRequireDefault(_captcha);\n\nvar _modal = require('../services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nvar _snackbar = require('../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _bannedPage = require('../utils/banned-page');\n\nvar _bannedPage2 = _interopRequireDefault(_bannedPage);\n\nvar _validators = require('../utils/validators');\n\nvar validators = _interopRequireWildcard(_validators);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar RegisterForm = exports.RegisterForm = function (_Form) {\n  _inherits(RegisterForm, _Form);\n\n  function RegisterForm(props) {\n    _classCallCheck(this, RegisterForm);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(RegisterForm).call(this, props));\n\n    _this.state = {\n      'isLoading': false,\n\n      'username': '',\n      'email': '',\n      'password': '',\n      'captcha': '',\n\n      'validators': {\n        'username': [validators.usernameContent(), validators.usernameMinLength(_index2.default.get('SETTINGS')), validators.usernameMaxLength(_index2.default.get('SETTINGS'))],\n        'email': [validators.email()],\n        'password': [validators.passwordMinLength(_index2.default.get('SETTINGS'))],\n        'captcha': _captcha2.default.validator()\n      },\n\n      'errors': {}\n    };\n    return _this;\n  }\n\n  _createClass(RegisterForm, [{\n    key: 'clean',\n    value: function clean() {\n      if (this.isValid()) {\n        return true;\n      } else {\n        _snackbar2.default.error(gettext(\"Form contains errors.\"));\n        this.setState({\n          'errors': this.validate()\n        });\n        return false;\n      }\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(_index2.default.get('USERS_API'), {\n        'username': this.state.username,\n        'email': this.state.email,\n        'password': this.state.password,\n        'captcha': this.state.captcha\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess(apiResponse) {\n      this.props.callback(apiResponse);\n    }\n  }, {\n    key: 'handleError',\n    value: function handleError(rejection) {\n      if (rejection.status === 400) {\n        this.setState({\n          'errors': Object.assign({}, this.state.errors, rejection)\n        });\n        _snackbar2.default.error(gettext(\"Form contains errors.\"));\n      } else if (rejection.status === 403 && rejection.ban) {\n        (0, _bannedPage2.default)(rejection.ban);\n        _modal2.default.hide();\n      } else {\n        _snackbar2.default.apiError(rejection);\n      }\n    }\n  }, {\n    key: 'getLegalFootNote',\n    value: function getLegalFootNote() {\n      if (_index2.default.get('TERMS_OF_SERVICE_URL')) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'a',\n          { href: _index2.default.get('TERMS_OF_SERVICE_URL'),\n            target: '_blank' },\n          gettext(\"By registering you agree to site's terms and conditions.\")\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'modal-dialog modal-register', role: 'document' },\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-content' },\n          _react2.default.createElement(\n            'div',\n            { className: 'modal-header' },\n            _react2.default.createElement(\n              'button',\n              { type: 'button', className: 'close', 'data-dismiss': 'modal',\n                'aria-label': gettext(\"Close\") },\n              _react2.default.createElement(\n                'span',\n                { 'aria-hidden': 'true' },\n                '×'\n              )\n            ),\n            _react2.default.createElement(\n              'h4',\n              { className: 'modal-title' },\n              gettext(\"Register\")\n            )\n          ),\n          _react2.default.createElement(\n            'form',\n            { onSubmit: this.handleSubmit, className: 'form-horizontal' },\n            _react2.default.createElement('input', { type: 'type', style: { display: 'none' } }),\n            _react2.default.createElement('input', { type: 'password', style: { display: 'none' } }),\n            _react2.default.createElement(\n              'div',\n              { className: 'modal-body' },\n              _react2.default.createElement(\n                _formGroup2.default,\n                { label: gettext(\"Username\"), 'for': 'id_username',\n                  labelClass: 'col-sm-4', controlClass: 'col-sm-8',\n                  validation: this.state.errors.username },\n                _react2.default.createElement('input', { type: 'text', id: 'id_username', className: 'form-control',\n                  'aria-describedby': 'id_username_status',\n                  disabled: this.state.isLoading,\n                  onChange: this.bindInput('username'),\n                  value: this.state.username })\n              ),\n              _react2.default.createElement(\n                _formGroup2.default,\n                { label: gettext(\"E-mail\"), 'for': 'id_email',\n                  labelClass: 'col-sm-4', controlClass: 'col-sm-8',\n                  validation: this.state.errors.email },\n                _react2.default.createElement('input', { type: 'text', id: 'id_email', className: 'form-control',\n                  'aria-describedby': 'id_email_status',\n                  disabled: this.state.isLoading,\n                  onChange: this.bindInput('email'),\n                  value: this.state.email })\n              ),\n              _react2.default.createElement(\n                _formGroup2.default,\n                { label: gettext(\"Password\"), 'for': 'id_password',\n                  labelClass: 'col-sm-4', controlClass: 'col-sm-8',\n                  validation: this.state.errors.password,\n                  extra: _react2.default.createElement(_passwordStrength2.default, { password: this.state.password,\n                    inputs: [this.state.username, this.state.email] }) },\n                _react2.default.createElement('input', { type: 'password', id: 'id_password', className: 'form-control',\n                  'aria-describedby': 'id_password_status',\n                  disabled: this.state.isLoading,\n                  onChange: this.bindInput('password'),\n                  value: this.state.password })\n              ),\n              _captcha2.default.component({\n                form: this,\n                labelClass: \"col-sm-4\",\n                controlClass: \"col-sm-8\"\n              })\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'modal-footer' },\n              this.getLegalFootNote(),\n              _react2.default.createElement(\n                _button2.default,\n                { className: 'btn-primary', loading: this.state.isLoading },\n                gettext(\"Register account\")\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return RegisterForm;\n}(_form2.default);\n\nvar RegisterComplete = exports.RegisterComplete = function (_React$Component) {\n  _inherits(RegisterComplete, _React$Component);\n\n  function RegisterComplete() {\n    _classCallCheck(this, RegisterComplete);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(RegisterComplete).apply(this, arguments));\n  }\n\n  _createClass(RegisterComplete, [{\n    key: 'getLead',\n    value: function getLead() {\n      if (this.props.activation === 'user') {\n        return gettext(\"%(username)s, your account has been created but you need to activate it before you will be able to sign in.\");\n      } else if (this.props.activation === 'admin') {\n        return gettext(\"%(username)s, your account has been created but board administrator will have to activate it before you will be able to sign in.\");\n      }\n    }\n  }, {\n    key: 'getSubscript',\n    value: function getSubscript() {\n      if (this.props.activation === 'user') {\n        return gettext(\"We have sent an e-mail to %(email)s with link that you have to click to activate your account.\");\n      } else if (this.props.activation === 'admin') {\n        return gettext(\"We will send an e-mail to %(email)s when this takes place.\");\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'modal-dialog modal-message modal-register',\n          role: 'document' },\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-content' },\n          _react2.default.createElement(\n            'div',\n            { className: 'modal-header' },\n            _react2.default.createElement(\n              'button',\n              { type: 'button', className: 'close', 'data-dismiss': 'modal',\n                'aria-label': gettext(\"Close\") },\n              _react2.default.createElement(\n                'span',\n                { 'aria-hidden': 'true' },\n                '×'\n              )\n            ),\n            _react2.default.createElement(\n              'h4',\n              { className: 'modal-title' },\n              gettext(\"Registration complete\")\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'modal-body' },\n            _react2.default.createElement(\n              'div',\n              { className: 'message-icon' },\n              _react2.default.createElement(\n                'span',\n                { className: 'material-icon' },\n                'info_outline'\n              )\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'message-body' },\n              _react2.default.createElement(\n                'p',\n                { className: 'lead' },\n                interpolate(this.getLead(), { 'username': this.props.username }, true)\n              ),\n              _react2.default.createElement(\n                'p',\n                null,\n                interpolate(this.getSubscript(), { 'email': this.props.email }, true)\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return RegisterComplete;\n}(_react2.default.Component);\n\nvar _class = function (_React$Component2) {\n  _inherits(_class, _React$Component2);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this3 = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this3.completeRegistration = function (apiResponse) {\n      if (apiResponse.activation === 'active') {\n        _modal2.default.hide();\n        _auth2.default.signIn(apiResponse);\n      } else {\n        _this3.setState({\n          'complete': apiResponse\n        });\n      }\n    };\n\n    _this3.state = {\n      'complete': false\n    };\n    return _this3;\n  }\n\n  /* jshint ignore:start */\n\n  _createClass(_class, [{\n    key: 'render',\n\n    /* jshint ignore:end */\n\n    value: function render() {\n      /* jshint ignore:start */\n      if (this.state.complete) {\n        return _react2.default.createElement(RegisterComplete, { activation: this.state.complete.activation,\n          username: this.state.complete.username,\n          email: this.state.complete.email });\n      } else {\n        return _react2.default.createElement(RegisterForm, { callback: this.completeRegistration });\n      }\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../index\":85,\"../services/ajax\":91,\"../services/auth\":92,\"../services/captcha\":93,\"../services/modal\":97,\"../services/snackbar\":99,\"../utils/banned-page\":102,\"../utils/validators\":109,\"./button\":51,\"./form\":58,\"./form-group\":57,\"./password-strength\":67,\"react\":\"react\"}],70:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.LinkSent = exports.RequestLinkForm = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _button = require('./button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('./form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _ajax = require('../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _snackbar = require('../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _validators = require('../utils/validators');\n\nvar validators = _interopRequireWildcard(_validators);\n\nvar _bannedPage = require('../utils/banned-page');\n\nvar _bannedPage2 = _interopRequireDefault(_bannedPage);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n\nvar RequestLinkForm = exports.RequestLinkForm = function (_Form) {\n  _inherits(RequestLinkForm, _Form);\n\n  function RequestLinkForm(props) {\n    _classCallCheck(this, RequestLinkForm);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(RequestLinkForm).call(this, props));\n\n    _this.state = {\n      'isLoading': false,\n\n      'email': '',\n\n      'validators': {\n        'email': [validators.email()]\n      }\n    };\n    return _this;\n  }\n\n  _createClass(RequestLinkForm, [{\n    key: 'clean',\n    value: function clean() {\n      if (this.isValid()) {\n        return true;\n      } else {\n        _snackbar2.default.error(gettext(\"Enter a valid email address.\"));\n        return false;\n      }\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(_index2.default.get('SEND_ACTIVATION_API'), {\n        'email': this.state.email\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess(apiResponse) {\n      this.props.callback(apiResponse);\n    }\n  }, {\n    key: 'handleError',\n    value: function handleError(rejection) {\n      if (['already_active', 'inactive_admin'].indexOf(rejection.code) > -1) {\n        _snackbar2.default.info(rejection.detail);\n      } else if (rejection.status === 403 && rejection.ban) {\n        (0, _bannedPage2.default)(rejection.ban);\n      } else {\n        _snackbar2.default.apiError(rejection);\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'well well-form well-form-request-activation-link' },\n        _react2.default.createElement(\n          'form',\n          { onSubmit: this.handleSubmit },\n          _react2.default.createElement(\n            'div',\n            { className: 'form-group' },\n            _react2.default.createElement(\n              'div',\n              { className: 'control-input' },\n              _react2.default.createElement('input', { type: 'text', className: 'form-control',\n                placeholder: gettext(\"Your e-mail address\"),\n                disabled: this.state.isLoading,\n                onChange: this.bindInput('email'),\n                value: this.state.email })\n            )\n          ),\n          _react2.default.createElement(\n            _button2.default,\n            { className: 'btn-primary btn-block',\n              loading: this.state.isLoading },\n            gettext(\"Send link\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return RequestLinkForm;\n}(_form2.default);\n\nvar LinkSent = exports.LinkSent = function (_React$Component) {\n  _inherits(LinkSent, _React$Component);\n\n  function LinkSent() {\n    _classCallCheck(this, LinkSent);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(LinkSent).apply(this, arguments));\n  }\n\n  _createClass(LinkSent, [{\n    key: 'getMessage',\n    value: function getMessage() {\n      return interpolate(gettext(\"Activation link was sent to %(email)s\"), {\n        email: this.props.user.email\n      }, true);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'well well-form well-form-request-activation-link well-done' },\n        _react2.default.createElement(\n          'div',\n          { className: 'done-message' },\n          _react2.default.createElement(\n            'div',\n            { className: 'message-icon' },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              'check'\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'message-body' },\n            _react2.default.createElement(\n              'p',\n              null,\n              this.getMessage()\n            )\n          ),\n          _react2.default.createElement(\n            'button',\n            { type: 'button', className: 'btn btn-primary btn-block',\n              onClick: this.props.callback },\n            gettext(\"Request another link\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return LinkSent;\n}(_react2.default.Component);\n\nvar _class = function (_React$Component2) {\n  _inherits(_class, _React$Component2);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this3 = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this3.complete = function (apiResponse) {\n      _this3.setState({\n        complete: apiResponse\n      });\n    };\n\n    _this3.reset = function () {\n      _this3.setState({\n        complete: false\n      });\n    };\n\n    _this3.state = {\n      complete: false\n    };\n    return _this3;\n  }\n\n  /* jshint ignore:start */\n\n  _createClass(_class, [{\n    key: 'render',\n\n    /* jshint ignore:end */\n\n    value: function render() {\n      /* jshint ignore:start */\n      if (this.state.complete) {\n        return _react2.default.createElement(LinkSent, { user: this.state.complete, callback: this.reset });\n      } else {\n        return _react2.default.createElement(RequestLinkForm, { callback: this.complete });\n      };\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../index\":85,\"../services/ajax\":91,\"../services/snackbar\":99,\"../utils/banned-page\":102,\"../utils/validators\":109,\"./button\":51,\"./form\":58,\"react\":\"react\"}],71:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.AccountInactivePage = exports.LinkSent = exports.RequestResetForm = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _button = require('./button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('./form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _ajax = require('../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _snackbar = require('../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _validators = require('../utils/validators');\n\nvar validators = _interopRequireWildcard(_validators);\n\nvar _bannedPage = require('../utils/banned-page');\n\nvar _bannedPage2 = _interopRequireDefault(_bannedPage);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar RequestResetForm = exports.RequestResetForm = function (_Form) {\n  _inherits(RequestResetForm, _Form);\n\n  function RequestResetForm(props) {\n    _classCallCheck(this, RequestResetForm);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(RequestResetForm).call(this, props));\n\n    _this.state = {\n      'isLoading': false,\n\n      'email': '',\n\n      'validators': {\n        'email': [validators.email()]\n      }\n    };\n    return _this;\n  }\n\n  _createClass(RequestResetForm, [{\n    key: 'clean',\n    value: function clean() {\n      if (this.isValid()) {\n        return true;\n      } else {\n        _snackbar2.default.error(gettext(\"Enter a valid email address.\"));\n        return false;\n      }\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(_index2.default.get('SEND_PASSWORD_RESET_API'), {\n        'email': this.state.email\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess(apiResponse) {\n      this.props.callback(apiResponse);\n    }\n  }, {\n    key: 'handleError',\n    value: function handleError(rejection) {\n      if (['inactive_user', 'inactive_admin'].indexOf(rejection.code) > -1) {\n        this.props.showInactivePage(rejection);\n      } else if (rejection.status === 403 && rejection.ban) {\n        (0, _bannedPage2.default)(rejection.ban);\n      } else {\n        _snackbar2.default.apiError(rejection);\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'well well-form well-form-request-password-reset' },\n        _react2.default.createElement(\n          'form',\n          { onSubmit: this.handleSubmit },\n          _react2.default.createElement(\n            'div',\n            { className: 'form-group' },\n            _react2.default.createElement(\n              'div',\n              { className: 'control-input' },\n              _react2.default.createElement('input', { type: 'text', className: 'form-control',\n                placeholder: gettext(\"Your e-mail address\"),\n                disabled: this.state.isLoading,\n                onChange: this.bindInput('email'),\n                value: this.state.email })\n            )\n          ),\n          _react2.default.createElement(\n            _button2.default,\n            { className: 'btn-primary btn-block',\n              loading: this.state.isLoading },\n            gettext(\"Send link\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return RequestResetForm;\n}(_form2.default);\n\nvar LinkSent = exports.LinkSent = function (_React$Component) {\n  _inherits(LinkSent, _React$Component);\n\n  function LinkSent() {\n    _classCallCheck(this, LinkSent);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(LinkSent).apply(this, arguments));\n  }\n\n  _createClass(LinkSent, [{\n    key: 'getMessage',\n    value: function getMessage() {\n      return interpolate(gettext(\"Reset password link was sent to %(email)s\"), {\n        email: this.props.user.email\n      }, true);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'well well-form well-form-request-password-reset well-done' },\n        _react2.default.createElement(\n          'div',\n          { className: 'done-message' },\n          _react2.default.createElement(\n            'div',\n            { className: 'message-icon' },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              'check'\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'message-body' },\n            _react2.default.createElement(\n              'p',\n              null,\n              this.getMessage()\n            )\n          ),\n          _react2.default.createElement(\n            'button',\n            { type: 'button', className: 'btn btn-primary btn-block',\n              onClick: this.props.callback },\n            gettext(\"Request another link\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return LinkSent;\n}(_react2.default.Component);\n\nvar AccountInactivePage = exports.AccountInactivePage = function (_React$Component2) {\n  _inherits(AccountInactivePage, _React$Component2);\n\n  function AccountInactivePage() {\n    _classCallCheck(this, AccountInactivePage);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(AccountInactivePage).apply(this, arguments));\n  }\n\n  _createClass(AccountInactivePage, [{\n    key: 'getActivateButton',\n    value: function getActivateButton() {\n      if (this.props.activation === 'inactive_user') {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'p',\n          null,\n          _react2.default.createElement(\n            'a',\n            { href: _index2.default.get('REQUEST_ACTIVATION_URL') },\n            gettext(\"Activate your account.\")\n          )\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'page page-message page-message-info page-forgotten-password-inactive' },\n        _react2.default.createElement(\n          'div',\n          { className: 'container' },\n          _react2.default.createElement(\n            'div',\n            { className: 'message-panel' },\n            _react2.default.createElement(\n              'div',\n              { className: 'message-icon' },\n              _react2.default.createElement(\n                'span',\n                { className: 'material-icon' },\n                'info_outline'\n              )\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'message-body' },\n              _react2.default.createElement(\n                'p',\n                { className: 'lead' },\n                gettext(\"Your account is inactive.\")\n              ),\n              _react2.default.createElement(\n                'p',\n                null,\n                this.props.message\n              ),\n              this.getActivateButton()\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return AccountInactivePage;\n}(_react2.default.Component);\n\nvar _class = function (_React$Component3) {\n  _inherits(_class, _React$Component3);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this4 = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this4.complete = function (apiResponse) {\n      _this4.setState({\n        complete: apiResponse\n      });\n    };\n\n    _this4.reset = function () {\n      _this4.setState({\n        complete: false\n      });\n    };\n\n    _this4.state = {\n      complete: false\n    };\n    return _this4;\n  }\n\n  /* jshint ignore:start */\n\n  _createClass(_class, [{\n    key: 'showInactivePage',\n    value: function showInactivePage(apiResponse) {\n      _reactDom2.default.render(_react2.default.createElement(AccountInactivePage, { activation: apiResponse.code,\n        message: apiResponse.detail }), document.getElementById('page-mount'));\n    }\n    /* jshint ignore:end */\n\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      if (this.state.complete) {\n        return _react2.default.createElement(LinkSent, { user: this.state.complete, callback: this.reset });\n      } else {\n        return _react2.default.createElement(RequestResetForm, { callback: this.complete,\n          showInactivePage: this.showInactivePage });\n      };\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../index\":85,\"../services/ajax\":91,\"../services/snackbar\":99,\"../utils/banned-page\":102,\"../utils/validators\":109,\"./button\":51,\"./form\":58,\"react\":\"react\",\"react-dom\":\"react-dom\"}],72:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.PasswordChangedPage = exports.ResetPasswordForm = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _button = require('./button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('./form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _signIn = require('./sign-in.js');\n\nvar _signIn2 = _interopRequireDefault(_signIn);\n\nvar _ajax = require('../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _auth = require('../services/auth');\n\nvar _auth2 = _interopRequireDefault(_auth);\n\nvar _modal = require('../services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nvar _snackbar = require('../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _validators = require('../utils/validators');\n\nvar validators = _interopRequireWildcard(_validators);\n\nvar _bannedPage = require('../utils/banned-page');\n\nvar _bannedPage2 = _interopRequireDefault(_bannedPage);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar ResetPasswordForm = exports.ResetPasswordForm = function (_Form) {\n  _inherits(ResetPasswordForm, _Form);\n\n  function ResetPasswordForm(props) {\n    _classCallCheck(this, ResetPasswordForm);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(ResetPasswordForm).call(this, props));\n\n    _this.state = {\n      'isLoading': false,\n\n      'password': '',\n\n      'validators': {\n        'password': [validators.passwordMinLength(_index2.default.get('SETTINGS'))]\n      }\n    };\n    return _this;\n  }\n\n  _createClass(ResetPasswordForm, [{\n    key: 'clean',\n    value: function clean() {\n      if (this.isValid()) {\n        return true;\n      } else {\n        if (this.state.password.trim().length) {\n          _snackbar2.default.error(this.state.errors.password[0]);\n        } else {\n          _snackbar2.default.error(gettext(\"Enter new password.\"));\n        }\n        return false;\n      }\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(_index2.default.get('CHANGE_PASSWORD_API'), {\n        'password': this.state.password\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess(apiResponse) {\n      this.props.callback(apiResponse);\n    }\n  }, {\n    key: 'handleError',\n    value: function handleError(rejection) {\n      if (rejection.status === 403 && rejection.ban) {\n        (0, _bannedPage2.default)(rejection.ban);\n      } else {\n        _snackbar2.default.apiError(rejection);\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'well well-form well-form-reset-password' },\n        _react2.default.createElement(\n          'form',\n          { onSubmit: this.handleSubmit },\n          _react2.default.createElement(\n            'div',\n            { className: 'form-group' },\n            _react2.default.createElement(\n              'div',\n              { className: 'control-input' },\n              _react2.default.createElement('input', { type: 'password', className: 'form-control',\n                placeholder: gettext(\"Enter new password\"),\n                disabled: this.state.isLoading,\n                onChange: this.bindInput('password'),\n                value: this.state.password })\n            )\n          ),\n          _react2.default.createElement(\n            _button2.default,\n            { className: 'btn-primary btn-block',\n              loading: this.state.isLoading },\n            gettext(\"Change password\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return ResetPasswordForm;\n}(_form2.default);\n\nvar PasswordChangedPage = exports.PasswordChangedPage = function (_React$Component) {\n  _inherits(PasswordChangedPage, _React$Component);\n\n  function PasswordChangedPage() {\n    _classCallCheck(this, PasswordChangedPage);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(PasswordChangedPage).apply(this, arguments));\n  }\n\n  _createClass(PasswordChangedPage, [{\n    key: 'getMessage',\n    value: function getMessage() {\n      return interpolate(gettext(\"%(username)s, your password has been changed successfully.\"), {\n        username: this.props.user.username\n      }, true);\n    }\n  }, {\n    key: 'showSignIn',\n    value: function showSignIn() {\n      _modal2.default.show(_signIn2.default);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'page page-message page-message-success page-forgotten-password-changed' },\n        _react2.default.createElement(\n          'div',\n          { className: 'container' },\n          _react2.default.createElement(\n            'div',\n            { className: 'message-panel' },\n            _react2.default.createElement(\n              'div',\n              { className: 'message-icon' },\n              _react2.default.createElement(\n                'span',\n                { className: 'material-icon' },\n                'check'\n              )\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'message-body' },\n              _react2.default.createElement(\n                'p',\n                { className: 'lead' },\n                this.getMessage()\n              ),\n              _react2.default.createElement(\n                'p',\n                null,\n                gettext(\"You will have to sign in using new password before continuing.\")\n              ),\n              _react2.default.createElement(\n                'p',\n                null,\n                _react2.default.createElement(\n                  'button',\n                  { type: 'button', className: 'btn btn-primary', onClick: this.showSignIn },\n                  gettext(\"Sign in\")\n                )\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return PasswordChangedPage;\n}(_react2.default.Component);\n\nvar _class = function (_React$Component2) {\n  _inherits(_class, _React$Component2);\n\n  function _class() {\n    var _Object$getPrototypeO;\n\n    var _temp, _this3, _ret;\n\n    _classCallCheck(this, _class);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this3 = _possibleConstructorReturn(this, (_Object$getPrototypeO = Object.getPrototypeOf(_class)).call.apply(_Object$getPrototypeO, [this].concat(args))), _this3), _this3.complete = function (apiResponse) {\n      _auth2.default.softSignOut();\n\n      // nuke \"redirect_to\" field so we don't end\n      // coming back to error page after sign in\n      $('#hidden-login-form input[name=\"redirect_to\"]').remove();\n\n      _reactDom2.default.render(_react2.default.createElement(PasswordChangedPage, { user: apiResponse }), document.getElementById('page-mount'));\n    }, _temp), _possibleConstructorReturn(_this3, _ret);\n  }\n  /* jshint ignore:start */\n\n  _createClass(_class, [{\n    key: 'render',\n\n    /* jshint ignore:end */\n\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(ResetPasswordForm, { callback: this.complete });\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../index\":85,\"../services/ajax\":91,\"../services/auth\":92,\"../services/modal\":97,\"../services/snackbar\":99,\"../utils/banned-page\":102,\"../utils/validators\":109,\"./button\":51,\"./form\":58,\"./sign-in.js\":74,\"react\":\"react\",\"react-dom\":\"react-dom\"}],73:[function(require,module,exports){\n\"use strict\";\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    var _Object$getPrototypeO;\n\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, _class);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_Object$getPrototypeO = Object.getPrototypeOf(_class)).call.apply(_Object$getPrototypeO, [this].concat(args))), _this), _this.change = function (value) {\n      return function () {\n        _this.props.onChange({\n          target: {\n            value: value\n          }\n        });\n      };\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  _createClass(_class, [{\n    key: \"getChoice\",\n    value: function getChoice() {\n      var _this2 = this;\n\n      var choice = null;\n      this.props.choices.map(function (item) {\n        if (item.value === _this2.props.value) {\n          choice = item;\n        }\n      });\n      return choice;\n    }\n  }, {\n    key: \"getIcon\",\n    value: function getIcon() {\n      return this.getChoice().icon;\n    }\n  }, {\n    key: \"getLabel\",\n    value: function getLabel() {\n      return this.getChoice().label;\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: \"render\",\n\n    /* jshint ignore:end */\n\n    value: function render() {\n      var _this3 = this;\n\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        \"div\",\n        { className: \"btn-group btn-select-group\" },\n        _react2.default.createElement(\n          \"button\",\n          { type: \"button\",\n            className: \"btn btn-select dropdown-toggle\",\n            id: this.props.id || null,\n            \"data-toggle\": \"dropdown\",\n            \"aria-haspopup\": \"true\",\n            \"aria-expanded\": \"false\",\n            \"aria-describedby\": this.props['aria-describedby'] || null,\n            disabled: this.props.disabled || false },\n          _react2.default.createElement(\n            \"span\",\n            { className: \"material-icon\" },\n            this.getIcon()\n          ),\n          this.getLabel()\n        ),\n        _react2.default.createElement(\n          \"ul\",\n          { className: \"dropdown-menu\" },\n          this.props.choices.map(function (item, i) {\n            return _react2.default.createElement(\n              \"li\",\n              { key: i },\n              _react2.default.createElement(\n                \"button\",\n                { type: \"button\", className: \"btn-link\",\n                  onClick: _this3.change(item.value) },\n                _react2.default.createElement(\n                  \"span\",\n                  { className: \"material-icon\" },\n                  item.icon\n                ),\n                item.label\n              )\n            );\n          })\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"react\":\"react\"}],74:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _button = require('./button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('./form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _ajax = require('../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _modal = require('../services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nvar _snackbar = require('../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _bannedPage = require('../utils/banned-page');\n\nvar _bannedPage2 = _interopRequireDefault(_bannedPage);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n\nvar _class = function (_Form) {\n  _inherits(_class, _Form);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.state = {\n      'isLoading': false,\n      'showActivation': false,\n\n      'username': '',\n      'password': '',\n\n      'validators': {\n        'username': [],\n        'password': []\n      }\n    };\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'clean',\n    value: function clean() {\n      if (!this.isValid()) {\n        _snackbar2.default.error(gettext(\"Fill out both fields.\"));\n        return false;\n      } else {\n        return true;\n      }\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(_index2.default.get('AUTH_API'), {\n        'username': this.state.username,\n        'password': this.state.password\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess() {\n      var form = $('#hidden-login-form');\n\n      form.append('<input type=\"text\" name=\"username\" />');\n      form.append('<input type=\"password\" name=\"password\" />');\n\n      // fill out form with user credentials and submit it, this will tell\n      // Misago to redirect user back to right page, and will trigger browser's\n      // key ring feature\n      form.find('input[type=\"hidden\"]').val(_ajax2.default.getCsrfToken());\n      form.find('input[name=\"redirect_to\"]').val(window.location.pathname);\n      form.find('input[name=\"username\"]').val(this.state.username);\n      form.find('input[name=\"password\"]').val(this.state.password);\n      form.submit();\n\n      // keep form loading\n      this.setState({\n        'isLoading': true\n      });\n    }\n  }, {\n    key: 'handleError',\n    value: function handleError(rejection) {\n      if (rejection.status === 400) {\n        if (rejection.code === 'inactive_admin') {\n          _snackbar2.default.info(rejection.detail);\n        } else if (rejection.code === 'inactive_user') {\n          _snackbar2.default.info(rejection.detail);\n          this.setState({\n            'showActivation': true\n          });\n        } else if (rejection.code === 'banned') {\n          (0, _bannedPage2.default)(rejection.detail);\n          _modal2.default.hide();\n        } else {\n          _snackbar2.default.error(rejection.detail);\n        }\n      } else if (rejection.status === 403 && rejection.ban) {\n        (0, _bannedPage2.default)(rejection.ban);\n        _modal2.default.hide();\n      } else {\n        _snackbar2.default.apiError(rejection);\n      }\n    }\n  }, {\n    key: 'getActivationButton',\n    value: function getActivationButton() {\n      if (this.state.showActivation) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'a',\n          { href: _index2.default.get('REQUEST_ACTIVATION_URL'),\n            className: 'btn btn-success btn-block' },\n          gettext(\"Activate account\")\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'modal-dialog modal-sm modal-sign-in',\n          role: 'document' },\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-content' },\n          _react2.default.createElement(\n            'div',\n            { className: 'modal-header' },\n            _react2.default.createElement(\n              'button',\n              { type: 'button', className: 'close', 'data-dismiss': 'modal',\n                'aria-label': gettext(\"Close\") },\n              _react2.default.createElement(\n                'span',\n                { 'aria-hidden': 'true' },\n                '×'\n              )\n            ),\n            _react2.default.createElement(\n              'h4',\n              { className: 'modal-title' },\n              gettext(\"Sign in\")\n            )\n          ),\n          _react2.default.createElement(\n            'form',\n            { onSubmit: this.handleSubmit },\n            _react2.default.createElement(\n              'div',\n              { className: 'modal-body' },\n              _react2.default.createElement(\n                'div',\n                { className: 'form-group' },\n                _react2.default.createElement(\n                  'div',\n                  { className: 'control-input' },\n                  _react2.default.createElement('input', { id: 'id_username', className: 'form-control', type: 'text',\n                    disabled: this.state.isLoading,\n                    placeholder: gettext(\"Username or e-mail\"),\n                    onChange: this.bindInput('username'),\n                    value: this.state.username })\n                )\n              ),\n              _react2.default.createElement(\n                'div',\n                { className: 'form-group' },\n                _react2.default.createElement(\n                  'div',\n                  { className: 'control-input' },\n                  _react2.default.createElement('input', { id: 'id_password', className: 'form-control', type: 'password',\n                    disabled: this.state.isLoading,\n                    placeholder: gettext(\"Password\"),\n                    onChange: this.bindInput('password'),\n                    value: this.state.password })\n                )\n              )\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'modal-footer' },\n              this.getActivationButton(),\n              _react2.default.createElement(\n                _button2.default,\n                { className: 'btn-primary btn-block',\n                  loading: this.state.isLoading },\n                gettext(\"Sign in\")\n              ),\n              _react2.default.createElement(\n                'a',\n                { href: _index2.default.get('FORGOTTEN_PASSWORD_URL'),\n                  className: 'btn btn-default btn-block' },\n                gettext(\"Forgot password?\")\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_form2.default);\n\nexports.default = _class;\n\n},{\"../index\":85,\"../services/ajax\":91,\"../services/modal\":97,\"../services/snackbar\":99,\"../utils/banned-page\":102,\"./button\":51,\"./form\":58,\"react\":\"react\"}],75:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Snackbar = undefined;\nexports.select = select;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/* jshint ignore:start */\nvar TYPES_CLASSES = {\n  'info': 'alert-info',\n  'success': 'alert-success',\n  'warning': 'alert-warning',\n  'error': 'alert-danger'\n};\n/* jshint ignore:end */\n\nvar Snackbar = exports.Snackbar = function (_React$Component) {\n  _inherits(Snackbar, _React$Component);\n\n  function Snackbar() {\n    _classCallCheck(this, Snackbar);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(Snackbar).apply(this, arguments));\n  }\n\n  _createClass(Snackbar, [{\n    key: 'getSnackbarClass',\n    value: function getSnackbarClass() {\n      var snackbarClass = 'alerts-snackbar';\n      if (this.props.isVisible) {\n        snackbarClass += ' in';\n      } else {\n        snackbarClass += ' out';\n      }\n      return snackbarClass;\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: this.getSnackbarClass() },\n        _react2.default.createElement(\n          'p',\n          { className: 'alert ' + TYPES_CLASSES[this.props.type] },\n          this.props.message\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return Snackbar;\n}(_react2.default.Component);\n\nfunction select(state) {\n  return state.snackbar;\n}\n\n},{\"react\":\"react\"}],76:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.CompactGuestNav = exports.GuestNav = exports.GuestMenu = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _avatar = require('../avatar');\n\nvar _avatar2 = _interopRequireDefault(_avatar);\n\nvar _registerButton = require('../register-button');\n\nvar _registerButton2 = _interopRequireDefault(_registerButton);\n\nvar _signIn = require('../sign-in.js');\n\nvar _signIn2 = _interopRequireDefault(_signIn);\n\nvar _mobileNavbarDropdown = require('../../services/mobile-navbar-dropdown');\n\nvar _mobileNavbarDropdown2 = _interopRequireDefault(_mobileNavbarDropdown);\n\nvar _modal = require('../../services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n\nvar GuestMenu = exports.GuestMenu = function (_React$Component) {\n  _inherits(GuestMenu, _React$Component);\n\n  function GuestMenu() {\n    _classCallCheck(this, GuestMenu);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(GuestMenu).apply(this, arguments));\n  }\n\n  _createClass(GuestMenu, [{\n    key: 'showSignInModal',\n    value: function showSignInModal() {\n      _modal2.default.show(_signIn2.default);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'ul',\n        { className: 'dropdown-menu user-dropdown dropdown-menu-right',\n          role: 'menu' },\n        _react2.default.createElement(\n          'li',\n          { className: 'guest-preview' },\n          _react2.default.createElement(\n            'h4',\n            null,\n            gettext(\"You are browsing as guest.\")\n          ),\n          _react2.default.createElement(\n            'p',\n            null,\n            gettext('Sign in or register to start and participate in discussions.')\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'row' },\n            _react2.default.createElement(\n              'div',\n              { className: 'col-xs-6' },\n              _react2.default.createElement(\n                'button',\n                { type: 'button', className: 'btn btn-default btn-block',\n                  onClick: this.showSignInModal },\n                gettext(\"Sign in\")\n              )\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'col-xs-6' },\n              _react2.default.createElement(\n                _registerButton2.default,\n                { className: 'btn-primary btn-block' },\n                gettext(\"Register\")\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return GuestMenu;\n}(_react2.default.Component);\n\nvar GuestNav = exports.GuestNav = function (_GuestMenu) {\n  _inherits(GuestNav, _GuestMenu);\n\n  function GuestNav() {\n    _classCallCheck(this, GuestNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(GuestNav).apply(this, arguments));\n  }\n\n  _createClass(GuestNav, [{\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'nav nav-guest' },\n        _react2.default.createElement(\n          'button',\n          { type: 'button', className: 'btn navbar-btn btn-default',\n            onClick: this.showSignInModal },\n          gettext(\"Sign in\")\n        ),\n        _react2.default.createElement(\n          _registerButton2.default,\n          { className: 'navbar-btn btn-primary' },\n          gettext(\"Register\")\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return GuestNav;\n}(GuestMenu);\n\nvar CompactGuestNav = exports.CompactGuestNav = function (_React$Component2) {\n  _inherits(CompactGuestNav, _React$Component2);\n\n  function CompactGuestNav() {\n    _classCallCheck(this, CompactGuestNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(CompactGuestNav).apply(this, arguments));\n  }\n\n  _createClass(CompactGuestNav, [{\n    key: 'showGuestMenu',\n    value: function showGuestMenu() {\n      _mobileNavbarDropdown2.default.show(GuestMenu);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'button',\n        { type: 'button', onClick: this.showGuestMenu },\n        _react2.default.createElement(_avatar2.default, { size: '64' })\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return CompactGuestNav;\n}(_react2.default.Component);\n\n},{\"../../services/mobile-navbar-dropdown\":96,\"../../services/modal\":97,\"../avatar\":49,\"../register-button\":68,\"../sign-in.js\":74,\"react\":\"react\"}],77:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.CompactUserMenu = exports.UserMenu = undefined;\nexports.select = select;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _guestNav = require('./guest-nav');\n\nvar _userNav = require('./user-nav');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n\n// jshint ignore:line\n\nvar UserMenu = exports.UserMenu = function (_React$Component) {\n  _inherits(UserMenu, _React$Component);\n\n  function UserMenu() {\n    _classCallCheck(this, UserMenu);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(UserMenu).apply(this, arguments));\n  }\n\n  _createClass(UserMenu, [{\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      if (this.props.isAuthenticated) {\n        return _react2.default.createElement(_userNav.UserNav, { user: this.props.user });\n      } else {\n        return _react2.default.createElement(_guestNav.GuestNav, null);\n      }\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return UserMenu;\n}(_react2.default.Component);\n\nvar CompactUserMenu = exports.CompactUserMenu = function (_React$Component2) {\n  _inherits(CompactUserMenu, _React$Component2);\n\n  function CompactUserMenu() {\n    _classCallCheck(this, CompactUserMenu);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(CompactUserMenu).apply(this, arguments));\n  }\n\n  _createClass(CompactUserMenu, [{\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      if (this.props.isAuthenticated) {\n        return _react2.default.createElement(_userNav.CompactUserNav, { user: this.props.user });\n      } else {\n        return _react2.default.createElement(_guestNav.CompactGuestNav, null);\n      }\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return CompactUserMenu;\n}(_react2.default.Component);\n\nfunction select(state) {\n  return state.auth;\n}\n\n},{\"./guest-nav\":76,\"./user-nav\":78,\"react\":\"react\"}],78:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.CompactUserNav = exports.UserNav = exports.UserMenu = undefined;\nexports.selectUserMenu = selectUserMenu;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = require('react-redux');\n\nvar _avatar = require('../avatar');\n\nvar _avatar2 = _interopRequireDefault(_avatar);\n\nvar _root = require('../change-avatar/root');\n\nvar _root2 = _interopRequireDefault(_root);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _mobileNavbarDropdown = require('../../services/mobile-navbar-dropdown');\n\nvar _mobileNavbarDropdown2 = _interopRequireDefault(_mobileNavbarDropdown);\n\nvar _modal = require('../../services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar UserMenu = exports.UserMenu = function (_React$Component) {\n  _inherits(UserMenu, _React$Component);\n\n  function UserMenu() {\n    _classCallCheck(this, UserMenu);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(UserMenu).apply(this, arguments));\n  }\n\n  _createClass(UserMenu, [{\n    key: 'logout',\n    value: function logout() {\n      var decision = confirm(gettext(\"Are you sure you want to sign out?\"));\n      if (decision) {\n        $('#hidden-logout-form').submit();\n      }\n    }\n  }, {\n    key: 'changeAvatar',\n    value: function changeAvatar() {\n      _modal2.default.show((0, _reactRedux.connect)(_root.select)(_root2.default));\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'ul',\n        { className: 'dropdown-menu user-dropdown dropdown-menu-right',\n          role: 'menu' },\n        _react2.default.createElement(\n          'li',\n          { className: 'dropdown-header' },\n          _react2.default.createElement(\n            'strong',\n            null,\n            this.props.user.username\n          )\n        ),\n        _react2.default.createElement('li', { className: 'divider' }),\n        _react2.default.createElement(\n          'li',\n          null,\n          _react2.default.createElement(\n            'a',\n            { href: this.props.user.absolute_url },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              'account_circle'\n            ),\n            gettext(\"See your profile\")\n          )\n        ),\n        _react2.default.createElement(\n          'li',\n          null,\n          _react2.default.createElement(\n            'a',\n            { href: _index2.default.get('USERCP_URL') },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              'done_all'\n            ),\n            gettext(\"Change options\")\n          )\n        ),\n        _react2.default.createElement(\n          'li',\n          null,\n          _react2.default.createElement(\n            'button',\n            { type: 'button', className: 'btn-link', onClick: this.changeAvatar },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              'portrait'\n            ),\n            gettext(\"Change avatar\")\n          )\n        ),\n        _react2.default.createElement('li', { className: 'divider' }),\n        _react2.default.createElement(\n          'li',\n          { className: 'dropdown-footer' },\n          _react2.default.createElement(\n            'button',\n            { type: 'button', className: 'btn btn-default btn-block',\n              onClick: this.logout },\n            gettext(\"Log out\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return UserMenu;\n}(_react2.default.Component);\n\nvar UserNav = exports.UserNav = function (_React$Component2) {\n  _inherits(UserNav, _React$Component2);\n\n  function UserNav() {\n    _classCallCheck(this, UserNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(UserNav).apply(this, arguments));\n  }\n\n  _createClass(UserNav, [{\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'ul',\n        { className: 'ul nav navbar-nav nav-user' },\n        _react2.default.createElement(\n          'li',\n          { className: 'dropdown' },\n          _react2.default.createElement(\n            'a',\n            { href: this.props.user.absolute_url, className: 'dropdown-toggle',\n              'data-toggle': 'dropdown', 'aria-haspopup': 'true', 'aria-expanded': 'false',\n              role: 'button' },\n            _react2.default.createElement(_avatar2.default, { user: this.props.user, size: '64' })\n          ),\n          _react2.default.createElement(UserMenu, { user: this.props.user })\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return UserNav;\n}(_react2.default.Component);\n\nfunction selectUserMenu(state) {\n  return { user: state.auth.user };\n}\n\nvar CompactUserNav = exports.CompactUserNav = function (_React$Component3) {\n  _inherits(CompactUserNav, _React$Component3);\n\n  function CompactUserNav() {\n    _classCallCheck(this, CompactUserNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(CompactUserNav).apply(this, arguments));\n  }\n\n  _createClass(CompactUserNav, [{\n    key: 'showUserMenu',\n    value: function showUserMenu() {\n      _mobileNavbarDropdown2.default.showConnected('user-menu', (0, _reactRedux.connect)(selectUserMenu)(UserMenu));\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'button',\n        { type: 'button', onClick: this.showUserMenu },\n        _react2.default.createElement(_avatar2.default, { user: this.props.user, size: '64' })\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return CompactUserNav;\n}(_react2.default.Component);\n\n},{\"../../index\":85,\"../../services/mobile-navbar-dropdown\":96,\"../../services/modal\":97,\"../avatar\":49,\"../change-avatar/root\":55,\"react\":\"react\",\"react-redux\":\"react-redux\"}],79:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.StatusLabel = exports.StatusIcon = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    _classCallCheck(this, _class);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments));\n  }\n\n  _createClass(_class, [{\n    key: 'getClass',\n    value: function getClass() {\n      var status = '';\n      if (this.props.status.is_banned) {\n        status = 'banned';\n      } else if (this.props.status.is_hidden) {\n        status = 'offline';\n      } else if (this.props.status.is_online_hidden) {\n        status = 'online';\n      } else if (this.props.status.is_offline_hidden) {\n        status = 'offline';\n      } else if (this.props.status.is_online) {\n        status = 'online';\n      } else if (this.props.status.is_offline) {\n        status = 'offline';\n      }\n\n      return 'user-status user-' + status;\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'span',\n        { className: this.getClass() },\n        this.props.children\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\nvar StatusIcon = exports.StatusIcon = function (_React$Component2) {\n  _inherits(StatusIcon, _React$Component2);\n\n  function StatusIcon() {\n    _classCallCheck(this, StatusIcon);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(StatusIcon).apply(this, arguments));\n  }\n\n  _createClass(StatusIcon, [{\n    key: 'getIcon',\n    value: function getIcon() {\n      if (this.props.status.is_banned) {\n        return 'remove_circle_outline';\n      } else if (this.props.status.is_hidden) {\n        return 'help_outline';\n      } else if (this.props.status.is_online_hidden) {\n        return 'label';\n      } else if (this.props.status.is_offline_hidden) {\n        return 'label_outline';\n      } else if (this.props.status.is_online) {\n        return 'lens';\n      } else if (this.props.status.is_offline) {\n        return 'panorama_fish_eye';\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'span',\n        { className: 'material-icon status-icon' },\n        this.getIcon()\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return StatusIcon;\n}(_react2.default.Component);\n\nvar StatusLabel = exports.StatusLabel = function (_React$Component3) {\n  _inherits(StatusLabel, _React$Component3);\n\n  function StatusLabel() {\n    _classCallCheck(this, StatusLabel);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(StatusLabel).apply(this, arguments));\n  }\n\n  _createClass(StatusLabel, [{\n    key: 'getHelp',\n    value: function getHelp() {\n      if (this.props.status.is_banned) {\n        if (this.props.status.banned_until) {\n          return interpolate(gettext(\"%(username)s is banned until %(ban_expires)s\"), {\n            username: this.props.user.username,\n            ban_expires: this.props.status.banned_until.format('LL, LT')\n          }, true);\n        } else {\n          return interpolate(gettext(\"%(username)s is banned\"), {\n            username: this.props.user.username\n          }, true);\n        }\n      } else if (this.props.status.is_hidden) {\n        return interpolate(gettext(\"%(username)s is hiding presence\"), {\n          username: this.props.user.username\n        }, true);\n      } else if (this.props.status.is_online_hidden) {\n        return interpolate(gettext(\"%(username)s is online (hidden)\"), {\n          username: this.props.user.username\n        }, true);\n      } else if (this.props.status.is_offline_hidden) {\n        return interpolate(gettext(\"%(username)s was last seen %(last_click)s (hidden)\"), {\n          username: this.props.user.username,\n          last_click: this.props.status.last_click.fromNow()\n        }, true);\n      } else if (this.props.status.is_online) {\n        return interpolate(gettext(\"%(username)s is online\"), {\n          username: this.props.user.username\n        }, true);\n      } else if (this.props.status.is_offline) {\n        return interpolate(gettext(\"%(username)s was last seen %(last_click)s\"), {\n          username: this.props.user.username,\n          last_click: this.props.status.last_click.fromNow()\n        }, true);\n      }\n    }\n  }, {\n    key: 'getLabel',\n    value: function getLabel() {\n      if (this.props.status.is_banned) {\n        return gettext(\"Banned\");\n      } else if (this.props.status.is_hidden) {\n        return gettext(\"Hidden\");\n      } else if (this.props.status.is_online_hidden) {\n        return gettext(\"Online (hidden)\");\n      } else if (this.props.status.is_offline_hidden) {\n        return gettext(\"Offline (hidden)\");\n      } else if (this.props.status.is_online) {\n        return gettext(\"Online\");\n      } else if (this.props.status.is_offline) {\n        return gettext(\"Offline\");\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'span',\n        { className: this.props.className || \"status-label\",\n          title: this.getHelp() },\n        this.getLabel()\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return StatusLabel;\n}(_react2.default.Component);\n\n},{\"react\":\"react\"}],80:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.NoActivePosters = exports.ActivePostersLoading = exports.ActivePosters = exports.ActivePoster = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRouter = require('react-router');\n\nvar _avatar = require('../avatar');\n\nvar _avatar2 = _interopRequireDefault(_avatar);\n\nvar _userStatus = require('../user-status');\n\nvar _userStatus2 = _interopRequireDefault(_userStatus);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _users = require('../../reducers/users');\n\nvar _ajax = require('../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _snackbar = require('../../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _store = require('../../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nvar _pageTitle = require('../../services/page-title');\n\nvar _pageTitle2 = _interopRequireDefault(_pageTitle);\n\nvar _random = require('../../utils/random');\n\nvar random = _interopRequireWildcard(_random);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\n// jshint ignore:line\n\nvar ActivePoster = exports.ActivePoster = function (_React$Component) {\n  _inherits(ActivePoster, _React$Component);\n\n  function ActivePoster() {\n    _classCallCheck(this, ActivePoster);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(ActivePoster).apply(this, arguments));\n  }\n\n  _createClass(ActivePoster, [{\n    key: 'getClassName',\n    value: function getClassName() {\n      if (this.props.rank.css_class) {\n        return \"list-group-item list-group-rank-\" + this.props.rank.css_class;\n      } else {\n        return \"list-group-item\";\n      }\n    }\n  }, {\n    key: 'getUserStatus',\n    value: function getUserStatus() {\n      if (this.props.user.status) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          _userStatus2.default,\n          { user: this.props.user, status: this.props.user.status },\n          _react2.default.createElement(_userStatus.StatusIcon, { user: this.props.user,\n            status: this.props.user.status }),\n          _react2.default.createElement(_userStatus.StatusLabel, { user: this.props.user,\n            status: this.props.user.status,\n            className: 'status-label hidden-xs hidden-sm' })\n        );\n        /* jshint ignore:end */\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(\n            'span',\n            { className: 'user-status' },\n            _react2.default.createElement(\n              'span',\n              { className: 'status-icon ui-preview' },\n              ' '\n            ),\n            _react2.default.createElement(\n              'span',\n              { className: 'status-label ui-preview hidden-xs hidden-sm' },\n              ' '\n            )\n          );\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'getRankName',\n    value: function getRankName() {\n      if (this.props.rank.is_tab) {\n        /* jshint ignore:start */\n        var rankUrl = _index2.default.get('USERS_LIST_URL') + this.props.rank.slug + '/';\n        return _react2.default.createElement(\n          _reactRouter.Link,\n          { to: rankUrl, className: 'rank-name' },\n          this.props.rank.name\n        );\n        /* jshint ignore:end */\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(\n            'span',\n            { className: 'rank-name' },\n            this.props.rank.name\n          );\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'getUserTitle',\n    value: function getUserTitle() {\n      if (this.props.user.title) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'span',\n          { className: 'user-title hidden-xs hidden-sm' },\n          this.props.user.title\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'li',\n        { className: this.getClassName() },\n        _react2.default.createElement(\n          'div',\n          { className: 'rank-user-avatar' },\n          _react2.default.createElement(\n            'a',\n            { href: this.props.user.absolute_url },\n            _react2.default.createElement(_avatar2.default, { user: this.props.user, size: '50' })\n          )\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'rank-user' },\n          _react2.default.createElement(\n            'div',\n            { className: 'user-name' },\n            _react2.default.createElement(\n              'a',\n              { href: this.props.user.absolute_url, className: 'item-title' },\n              this.props.user.username\n            )\n          ),\n          this.getUserStatus(),\n          this.getRankName(),\n          this.getUserTitle()\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'rank-position' },\n          _react2.default.createElement(\n            'div',\n            { className: 'stat-value' },\n            '#',\n            this.props.counter\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'text-muted' },\n            gettext(\"Rank\")\n          )\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'rank-posts-counted' },\n          _react2.default.createElement(\n            'div',\n            { className: 'stat-value' },\n            this.props.user.meta.score\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'text-muted' },\n            gettext(\"Ranked posts\")\n          )\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'rank-posts-total' },\n          _react2.default.createElement(\n            'div',\n            { className: 'stat-value' },\n            this.props.user.posts\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'text-muted' },\n            gettext(\"Total posts\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return ActivePoster;\n}(_react2.default.Component);\n\nvar ActivePosters = exports.ActivePosters = function (_React$Component2) {\n  _inherits(ActivePosters, _React$Component2);\n\n  function ActivePosters() {\n    _classCallCheck(this, ActivePosters);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(ActivePosters).apply(this, arguments));\n  }\n\n  _createClass(ActivePosters, [{\n    key: 'getLeadMessage',\n    value: function getLeadMessage() {\n      var message = ngettext(\"%(posters)s most active poster from last %(days)s days.\", \"%(posters)s most active posters from last %(days)s days.\", this.props.count);\n\n      return interpolate(message, {\n        posters: this.props.count,\n        days: this.props.trackedPeriod\n      }, true);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'active-posters-list' },\n        _react2.default.createElement(\n          'div',\n          { className: 'container' },\n          _react2.default.createElement(\n            'p',\n            { className: 'lead' },\n            this.getLeadMessage()\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'active-posters ui-ready' },\n            _react2.default.createElement(\n              'ul',\n              { className: 'list-group' },\n              this.props.users.map(function (user, i) {\n                return _react2.default.createElement(ActivePoster, { user: user,\n                  rank: user.rank,\n                  counter: i + 1,\n                  key: user.id });\n              })\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return ActivePosters;\n}(_react2.default.Component);\n\nvar ActivePostersLoading = exports.ActivePostersLoading = function (_React$Component3) {\n  _inherits(ActivePostersLoading, _React$Component3);\n\n  function ActivePostersLoading() {\n    _classCallCheck(this, ActivePostersLoading);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(ActivePostersLoading).apply(this, arguments));\n  }\n\n  _createClass(ActivePostersLoading, [{\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'active-posters-list' },\n        _react2.default.createElement(\n          'div',\n          { className: 'container' },\n          _react2.default.createElement(\n            'p',\n            { className: 'lead ui-preview-paragraph' },\n            random.range(3, 4).map(function (i) {\n              return _react2.default.createElement(\n                'span',\n                { key: i, className: 'ui-preview-text', style: { width: random.int(50, 120) + \"px\" } },\n                ' '\n              );\n            })\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'active-posters ui-preview' },\n            _react2.default.createElement(\n              'ul',\n              { className: 'list-group' },\n              random.range(5, 10).map(function (i, counter) {\n                return _react2.default.createElement(\n                  'li',\n                  { key: i, className: 'list-group-item' },\n                  _react2.default.createElement(\n                    'div',\n                    { className: 'rank-user-avatar' },\n                    _react2.default.createElement(\n                      'span',\n                      null,\n                      _react2.default.createElement(_avatar2.default, { size: '50' })\n                    )\n                  ),\n                  _react2.default.createElement(\n                    'div',\n                    { className: 'rank-user' },\n                    _react2.default.createElement(\n                      'div',\n                      { className: 'user-name' },\n                      _react2.default.createElement(\n                        'span',\n                        { className: 'item-title' },\n                        _react2.default.createElement(\n                          'span',\n                          { className: 'ui-preview-text', style: { width: random.int(30, 80) + \"px\" } },\n                          ' '\n                        )\n                      )\n                    ),\n                    _react2.default.createElement(\n                      'span',\n                      { className: 'user-status' },\n                      _react2.default.createElement(\n                        'span',\n                        { className: 'status-icon ui-preview' },\n                        ' '\n                      ),\n                      _react2.default.createElement(\n                        'span',\n                        { className: 'status-label ui-preview hidden-xs hidden-sm' },\n                        ' '\n                      )\n                    ),\n                    _react2.default.createElement(\n                      'span',\n                      { className: 'rank-name' },\n                      _react2.default.createElement(\n                        'span',\n                        { className: 'ui-preview-text', style: { width: random.int(30, 50) + \"px\" } },\n                        ' '\n                      )\n                    ),\n                    _react2.default.createElement(\n                      'span',\n                      { className: 'user-title hidden-xs hidden-sm' },\n                      _react2.default.createElement(\n                        'span',\n                        { className: 'ui-preview-text', style: { width: random.int(30, 50) + \"px\" } },\n                        ' '\n                      )\n                    )\n                  ),\n                  _react2.default.createElement(\n                    'div',\n                    { className: 'rank-position' },\n                    _react2.default.createElement(\n                      'div',\n                      { className: 'stat-value' },\n                      _react2.default.createElement(\n                        'span',\n                        { className: 'ui-preview-text', style: { width: \"30px\" } },\n                        ' '\n                      )\n                    ),\n                    _react2.default.createElement(\n                      'div',\n                      { className: 'text-muted' },\n                      gettext(\"Rank\")\n                    )\n                  ),\n                  _react2.default.createElement(\n                    'div',\n                    { className: 'rank-posts-counted' },\n                    _react2.default.createElement(\n                      'div',\n                      { className: 'stat-value' },\n                      _react2.default.createElement(\n                        'span',\n                        { className: 'ui-preview-text', style: { width: \"30px\" } },\n                        ' '\n                      )\n                    ),\n                    _react2.default.createElement(\n                      'div',\n                      { className: 'text-muted' },\n                      gettext(\"Ranked posts\")\n                    )\n                  ),\n                  _react2.default.createElement(\n                    'div',\n                    { className: 'rank-posts-total' },\n                    _react2.default.createElement(\n                      'div',\n                      { className: 'stat-value' },\n                      _react2.default.createElement(\n                        'span',\n                        { className: 'ui-preview-text', style: { width: \"30px\" } },\n                        ' '\n                      )\n                    ),\n                    _react2.default.createElement(\n                      'div',\n                      { className: 'text-muted' },\n                      gettext(\"Total posts\")\n                    )\n                  )\n                );\n              })\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return ActivePostersLoading;\n}(_react2.default.Component);\n\nvar NoActivePosters = exports.NoActivePosters = function (_React$Component4) {\n  _inherits(NoActivePosters, _React$Component4);\n\n  function NoActivePosters() {\n    _classCallCheck(this, NoActivePosters);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(NoActivePosters).apply(this, arguments));\n  }\n\n  _createClass(NoActivePosters, [{\n    key: 'getEmptyMessage',\n    value: function getEmptyMessage() {\n      return interpolate(gettext(\"No users have posted any new messages during last %(days)s days.\"), { 'days': this.props.trackedPeriod }, true);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'active-posters-list' },\n        _react2.default.createElement(\n          'div',\n          { className: 'container' },\n          _react2.default.createElement(\n            'p',\n            { className: 'lead' },\n            this.getEmptyMessage()\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return NoActivePosters;\n}(_react2.default.Component);\n\nvar _class = function (_React$Component5) {\n  _inherits(_class, _React$Component5);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this5 = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    if (_index2.default.has('USERS')) {\n      _this5.initWithPreloadedData(_index2.default.pop('USERS'));\n    } else {\n      _this5.initWithoutPreloadedData();\n    }\n\n    _this5.poolId = null;\n    _this5.startPooling();\n    return _this5;\n  }\n\n  _createClass(_class, [{\n    key: 'initWithPreloadedData',\n    value: function initWithPreloadedData(data) {\n      this.state = {\n        isLoaded: true,\n\n        trackedPeriod: data.tracked_period,\n        count: data.count\n      };\n\n      _store2.default.dispatch((0, _users.dehydrate)(data.results));\n    }\n  }, {\n    key: 'initWithoutPreloadedData',\n    value: function initWithoutPreloadedData() {\n      this.state = {\n        isLoaded: false\n      };\n    }\n  }, {\n    key: 'startPooling',\n    value: function startPooling() {\n      var _this6 = this;\n\n      var poolServer = function poolServer() {\n        _ajax2.default.get(_index2.default.get('USERS_API'), { list: 'active' }).then(function (data) {\n          _this6.setState({\n            isLoaded: true,\n\n            trackedPeriod: data.tracked_period,\n            count: data.count\n          }, function (rejection) {\n            _snackbar2.default.apiError(rejection);\n          });\n\n          _store2.default.dispatch((0, _users.dehydrate)(data.results));\n\n          _this6.poolId = window.setTimeout(poolServer, 90 * 1000);\n        });\n      };\n\n      poolServer();\n    }\n  }, {\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      _pageTitle2.default.set({\n        title: this.props.route.extra.name,\n        parent: gettext(\"Users\")\n      });\n    }\n  }, {\n    key: 'componentWillUnmount',\n    value: function componentWillUnmount() {\n      if (this.poolId) {\n        window.clearTimeout(this.poolId);\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      if (this.state.isLoaded) {\n        if (this.state.count > 0) {\n          /* jshint ignore:start */\n          return _react2.default.createElement(ActivePosters, { users: this.props.users,\n            trackedPeriod: this.state.trackedPeriod,\n            count: this.state.count });\n          /* jshint ignore:end */\n        } else {\n            /* jshint ignore:start */\n            return _react2.default.createElement(NoActivePosters, { trackedPeriod: this.state.trackedPeriod });\n            /* jshint ignore:end */\n          }\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(ActivePostersLoading, null);\n          /* jshint ignore:end */\n        }\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../index\":85,\"../../reducers/users\":90,\"../../services/ajax\":91,\"../../services/page-title\":98,\"../../services/snackbar\":99,\"../../services/store\":100,\"../../utils/random\":107,\"../avatar\":49,\"../user-status\":79,\"react\":\"react\",\"react-router\":\"react-router\"}],81:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.CompactNav = exports.TabsNav = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRouter = require('react-router');\n\nvar _li = require('../li');\n\nvar _li2 = _interopRequireDefault(_li);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n//jshint ignore:line\n\n//jshint ignore:line\n\n// jshint ignore:start\nvar listUrl = function listUrl(baseUrl, list) {\n  var url = baseUrl;\n  if (list.component === 'rank') {\n    url += list.slug;\n  } else {\n    url += list.component;\n  }\n  return url + '/';\n};\n\nvar navLinks = function navLinks(baseUrl, lists) {\n  return lists.map(function (list) {\n    var url = listUrl(baseUrl, list);\n    return _react2.default.createElement(\n      _li2.default,\n      { path: url,\n        key: url },\n      _react2.default.createElement(\n        _reactRouter.Link,\n        { to: url },\n        list.name\n      )\n    );\n  });\n};\n// jshint ignore:end\n\nvar TabsNav = exports.TabsNav = function (_React$Component) {\n  _inherits(TabsNav, _React$Component);\n\n  function TabsNav() {\n    _classCallCheck(this, TabsNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(TabsNav).apply(this, arguments));\n  }\n\n  _createClass(TabsNav, [{\n    key: 'render',\n    value: function render() {\n      // jshint ignore:start\n      return _react2.default.createElement(\n        'ul',\n        { className: 'nav nav-pills' },\n        navLinks(this.props.baseUrl, this.props.lists)\n      );\n      // jshint ignore:end\n    }\n  }]);\n\n  return TabsNav;\n}(_react2.default.Component);\n\nvar CompactNav = exports.CompactNav = function (_React$Component2) {\n  _inherits(CompactNav, _React$Component2);\n\n  function CompactNav() {\n    _classCallCheck(this, CompactNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(CompactNav).apply(this, arguments));\n  }\n\n  _createClass(CompactNav, [{\n    key: 'render',\n    value: function render() {\n      // jshint ignore:start\n      return _react2.default.createElement(\n        'ul',\n        { className: 'dropdown-menu', role: 'menu' },\n        navLinks(this.props.baseUrl, this.props.lists)\n      );\n      // jshint ignore:end\n    }\n  }]);\n\n  return CompactNav;\n}(_react2.default.Component);\n\n},{\"../../index\":85,\"../li\":59,\"react\":\"react\",\"react-router\":\"react-router\"}],82:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _pageTitle = require('../../services/page-title');\n\nvar _pageTitle2 = _interopRequireDefault(_pageTitle);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    _classCallCheck(this, _class);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments));\n  }\n\n  _createClass(_class, [{\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      _pageTitle2.default.set({\n        title: this.props.route.rank.name,\n        parent: gettext(\"Users\")\n      });\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        null,\n        _react2.default.createElement(\n          'div',\n          { className: 'container' },\n          'Hello, this is users with rank list!'\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../services/page-title\":98,\"react\":\"react\"}],83:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.select = select;\nexports.paths = paths;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = require('react-redux');\n\nvar _navs = require('./navs');\n\nvar _activePosters = require('./active-posters');\n\nvar _activePosters2 = _interopRequireDefault(_activePosters);\n\nvar _rank = require('./rank');\n\nvar _rank2 = _interopRequireDefault(_rank);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.toggleNav = function () {\n      if (_this.state.dropdown) {\n        _this.setState({\n          dropdown: false\n        });\n      } else {\n        _this.setState({\n          dropdown: true\n        });\n      }\n    };\n\n    _this.state = {\n      dropdown: false\n    };\n    return _this;\n  }\n\n  /* jshint ignore:start */\n\n  _createClass(_class, [{\n    key: 'getToggleNavClassName',\n\n    /* jshint ignore:end */\n\n    value: function getToggleNavClassName() {\n      if (this.state.dropdown) {\n        return 'btn btn-default btn-icon open';\n      } else {\n        return 'btn btn-default btn-icon';\n      }\n    }\n  }, {\n    key: 'getCompactNavClassName',\n    value: function getCompactNavClassName() {\n      if (this.state.dropdown) {\n        return 'compact-nav open';\n      } else {\n        return 'compact-nav';\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'page page-users-lists' },\n        _react2.default.createElement(\n          'div',\n          { className: 'page-header tabbed' },\n          _react2.default.createElement(\n            'div',\n            { className: 'container' },\n            _react2.default.createElement(\n              'h1',\n              { className: 'pull-left' },\n              gettext(\"Users\")\n            ),\n            _react2.default.createElement(\n              'button',\n              { className: 'btn btn-default btn-icon btn-dropdown-toggle hidden-md hidden-lg',\n                type: 'button',\n                onClick: this.toggleNav,\n                'aria-haspopup': 'true',\n                'aria-expanded': this.state.dropdown ? 'true' : 'false' },\n              _react2.default.createElement(\n                'i',\n                { className: 'material-icon' },\n                'menu'\n              )\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'page-tabs hidden-xs hidden-sm' },\n            _react2.default.createElement(\n              'div',\n              { className: 'container' },\n              _react2.default.createElement(_navs.TabsNav, { lists: _index2.default.get('USERS_LISTS'),\n                baseUrl: _index2.default.get('USERS_LIST_URL') })\n            )\n          )\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: this.getCompactNavClassName() },\n          _react2.default.createElement(_navs.CompactNav, { lists: _index2.default.get('USERS_LISTS'),\n            baseUrl: _index2.default.get('USERS_LIST_URL') })\n        ),\n        this.props.children\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\nfunction select(store) {\n  return {\n    'tick': store.tick.tick,\n    'user': store.auth.user,\n    'users': store.users\n  };\n}\n\nfunction paths() {\n  var paths = [];\n\n  _index2.default.get('USERS_LISTS').forEach(function (item) {\n    if (item.component === 'rank') {\n      paths.push({\n        path: _index2.default.get('USERS_LIST_URL') + item.slug + '/',\n        component: (0, _reactRedux.connect)(select)(_rank2.default),\n        rank: {\n          name: item.name,\n          slug: item.slug,\n          css_class: item.css_class,\n          description: item.description\n        }\n      });\n    } else if (item.component === 'active-posters') {\n      paths.push({\n        path: _index2.default.get('USERS_LIST_URL') + item.component + '/',\n        component: (0, _reactRedux.connect)(select)(_activePosters2.default),\n        extra: {\n          name: item.name\n        }\n      });\n    }\n  });\n\n  return paths;\n}\n\n},{\"../../index\":85,\"./active-posters\":80,\"./navs\":81,\"./rank\":82,\"react\":\"react\",\"react-redux\":\"react-redux\"}],84:[function(require,module,exports){\n\"use strict\";\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    var _Object$getPrototypeO;\n\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, _class);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_Object$getPrototypeO = Object.getPrototypeOf(_class)).call.apply(_Object$getPrototypeO, [this].concat(args))), _this), _this.toggle = function () {\n      _this.props.onChange({\n        target: {\n          value: !_this.props.value\n        }\n      });\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  _createClass(_class, [{\n    key: \"getClassName\",\n    value: function getClassName() {\n      if (this.props.value) {\n        return \"btn btn-yes-no btn-yes-no-on\";\n      } else {\n        return \"btn btn-yes-no btn-yes-no-off\";\n      }\n    }\n  }, {\n    key: \"getIcon\",\n    value: function getIcon() {\n      if (this.props.value) {\n        return this.props.iconOn || 'check_box';\n      } else {\n        return this.props.iconOff || 'check_box_outline_blank';\n      }\n    }\n  }, {\n    key: \"getLabel\",\n    value: function getLabel() {\n      if (this.props.value) {\n        return this.props.labelOn || gettext(\"yes\");\n      } else {\n        return this.props.labelOff || gettext(\"no\");\n      }\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: \"render\",\n\n    /* jshint ignore:end */\n\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        \"button\",\n        { type: \"button\",\n          onClick: this.toggle,\n          className: this.getClassName(),\n          id: this.props.id || null,\n          \"aria-describedby\": this.props['aria-describedby'] || null,\n          disabled: this.props.disabled || false },\n        _react2.default.createElement(\n          \"span\",\n          { className: \"material-icon\" },\n          this.getIcon()\n        ),\n        this.getLabel()\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"react\":\"react\"}],85:[function(require,module,exports){\n(function (global){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Misago = undefined;\n\nvar _orderedList = require('./utils/ordered-list');\n\nvar _orderedList2 = _interopRequireDefault(_orderedList);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Misago = exports.Misago = function () {\n  function Misago() {\n    _classCallCheck(this, Misago);\n\n    this._initializers = [];\n    this._context = {};\n  }\n\n  _createClass(Misago, [{\n    key: 'addInitializer',\n    value: function addInitializer(initializer) {\n      this._initializers.push({\n        key: initializer.name,\n\n        item: initializer.initializer,\n\n        after: initializer.after,\n        before: initializer.before\n      });\n    }\n  }, {\n    key: 'init',\n    value: function init(context) {\n      var _this = this;\n\n      this._context = context;\n\n      var initOrder = new _orderedList2.default(this._initializers).orderedValues();\n      initOrder.forEach(function (initializer) {\n        initializer(_this);\n      });\n    }\n\n    // context accessors\n\n  }, {\n    key: 'has',\n    value: function has(key) {\n      return !!this._context[key];\n    }\n  }, {\n    key: 'get',\n    value: function get(key, fallback) {\n      if (this.has(key)) {\n        return this._context[key];\n      } else {\n        return fallback || undefined;\n      }\n    }\n  }, {\n    key: 'pop',\n    value: function pop(key) {\n      if (this.has(key)) {\n        var value = this._context[key];\n        this._context[key] = null;\n        return value;\n      } else {\n        return undefined;\n      }\n    }\n  }]);\n\n  return Misago;\n}();\n\n// create  singleton\n\nvar misago = new Misago();\n\n// expose it globally\nglobal.misago = misago;\n\n// and export it for tests and stuff\nexports.default = misago;\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{\"./utils/ordered-list\":106}],86:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.SIGN_OUT = exports.SIGN_IN = exports.PATCH_USER = exports.initialState = undefined;\nexports.patchUser = patchUser;\nexports.signIn = signIn;\nexports.signOut = signOut;\nexports.default = auth;\n\nvar _users = require('./users');\n\nvar initialState = exports.initialState = {\n  signedIn: false,\n  signedOut: false\n};\n\nvar PATCH_USER = exports.PATCH_USER = 'PATCH_USER';\nvar SIGN_IN = exports.SIGN_IN = 'SIGN_IN';\nvar SIGN_OUT = exports.SIGN_OUT = 'SIGN_OUT';\n\nfunction patchUser(patch) {\n  return {\n    type: PATCH_USER,\n    patch: patch\n  };\n}\n\nfunction signIn(user) {\n  return {\n    type: SIGN_IN,\n    user: user\n  };\n}\n\nfunction signOut() {\n  var soft = arguments.length <= 0 || arguments[0] === undefined ? false : arguments[0];\n\n  return {\n    type: SIGN_OUT,\n    soft: soft\n  };\n}\n\nfunction auth() {\n  var state = arguments.length <= 0 || arguments[0] === undefined ? initialState : arguments[0];\n  var action = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];\n\n  switch (action.type) {\n    case PATCH_USER:\n      var newState = Object.assign({}, state);\n      newState.user = Object.assign({}, state.user, action.patch);\n      return newState;\n\n    case SIGN_IN:\n      return Object.assign({}, state, {\n        signedIn: action.user\n      });\n\n    case SIGN_OUT:\n      return Object.assign({}, state, {\n        isAuthenticated: false,\n        isAnonymous: true,\n        signedOut: !action.soft\n      });\n\n    case _users.UPDATE_AVATAR:\n      if (state.isAuthenticated && state.user.id === action.userId) {\n        var _newState = Object.assign({}, state);\n        _newState.user = Object.assign({}, state.user, {\n          'avatar_hash': action.avatarHash\n        });\n        return _newState;\n      }\n      return state;\n\n    case _users.UPDATE_USERNAME:\n      if (state.isAuthenticated && state.user.id === action.userId) {\n        var _newState2 = Object.assign({}, state);\n        _newState2.user = Object.assign({}, state.user, {\n          username: action.username,\n          slug: action.slug\n        });\n        return _newState2;\n      }\n      return state;\n\n    default:\n      return state;\n  }\n}\n\n},{\"./users\":90}],87:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.showSnackbar = showSnackbar;\nexports.hideSnackbar = hideSnackbar;\nexports.default = snackbar;\nvar initialState = exports.initialState = {\n  type: 'info',\n  message: '',\n  isVisible: false\n};\n\nvar SHOW_SNACKBAR = exports.SHOW_SNACKBAR = 'SHOW_SNACKBAR';\nvar HIDE_SNACKBAR = exports.HIDE_SNACKBAR = 'HIDE_SNACKBAR';\n\nfunction showSnackbar(message, type) {\n  return {\n    type: SHOW_SNACKBAR,\n    message: message,\n    messageType: type\n  };\n}\n\nfunction hideSnackbar() {\n  return {\n    type: HIDE_SNACKBAR\n  };\n}\n\nfunction snackbar() {\n  var state = arguments.length <= 0 || arguments[0] === undefined ? initialState : arguments[0];\n  var action = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];\n\n  if (action.type === SHOW_SNACKBAR) {\n    return {\n      type: action.messageType,\n      message: action.message,\n      isVisible: true\n    };\n  } else if (action.type === HIDE_SNACKBAR) {\n    return Object.assign({}, state, {\n      isVisible: false\n    });\n  } else {\n    return state;\n  }\n}\n\n},{}],88:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.doTick = doTick;\nexports.default = tick;\nvar initialState = exports.initialState = {\n  tick: 0\n};\n\nvar TICK = exports.TICK = 'TICK';\n\nfunction doTick() {\n  return {\n    type: TICK\n  };\n}\n\nfunction tick() {\n  var state = arguments.length <= 0 || arguments[0] === undefined ? initialState : arguments[0];\n  var action = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];\n\n  if (action.type === TICK) {\n    return Object.assign({}, state, {\n      tick: state.tick + 1\n    });\n  } else {\n    return state;\n  }\n}\n\n},{}],89:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.DEHYDRATE_RESULT = exports.ADD_NAME_CHANGE = undefined;\nexports.addNameChange = addNameChange;\nexports.dehydrate = dehydrate;\nexports.default = username;\n\nvar _users = require('./users');\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ADD_NAME_CHANGE = exports.ADD_NAME_CHANGE = 'ADD_NAME_CHANGE';\nvar DEHYDRATE_RESULT = exports.DEHYDRATE_RESULT = 'DEHYDRATE_RESULT';\n\nfunction addNameChange(change, user, changedBy) {\n  return {\n    type: ADD_NAME_CHANGE,\n    change: change,\n    user: user,\n    changedBy: changedBy\n  };\n}\n\nfunction dehydrate(items) {\n  return {\n    type: DEHYDRATE_RESULT,\n    items: items\n  };\n}\n\nfunction username() {\n  var state = arguments.length <= 0 || arguments[0] === undefined ? [] : arguments[0];\n  var action = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];\n\n  switch (action.type) {\n    case ADD_NAME_CHANGE:\n      var newState = state.slice();\n      newState.unshift({\n        id: Math.floor(Date.now() / 1000), // just small hax for getting id\n        changed_by: action.changedBy,\n        changed_by_username: action.changedBy.username,\n        changed_on: (0, _moment2.default)(),\n        new_username: action.change.username,\n        old_username: action.user.username\n      });\n      return newState;\n\n    case DEHYDRATE_RESULT:\n      return action.items.map(function (item) {\n        return Object.assign({}, item, {\n          changed_on: (0, _moment2.default)(item.changed_on)\n        });\n      });\n\n    case _users.UPDATE_AVATAR:\n      return state.map(function (item) {\n        item = Object.assign({}, item);\n        if (item.changed_by && item.changed_by.id === action.userId) {\n          item.changed_by = Object.assign({}, item.changed_by, {\n            'avatar_hash': action.avatarHash\n          });\n        }\n\n        return item;\n      });\n\n    case _users.UPDATE_USERNAME:\n      return state.map(function (item) {\n        item = Object.assign({}, item);\n        if (item.changed_by && item.changed_by.id === action.userId) {\n          item.changed_by = Object.assign({}, item.changed_by, {\n            'username': action.username,\n            'slug': action.slug\n          });\n        }\n\n        return Object.assign({}, item);\n      });\n\n    default:\n      return state;\n  }\n}\n\n},{\"./users\":90,\"moment\":\"moment\"}],90:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.UPDATE_USERNAME = exports.UPDATE_AVATAR = exports.DEHYDRATE_RESULT = undefined;\nexports.dehydrate = dehydrate;\nexports.dehydrateStatus = dehydrateStatus;\nexports.updateAvatar = updateAvatar;\nexports.updateUsername = updateUsername;\nexports.default = user;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar DEHYDRATE_RESULT = exports.DEHYDRATE_RESULT = 'DEHYDRATE_RESULT';\nvar UPDATE_AVATAR = exports.UPDATE_AVATAR = 'UPDATE_AVATAR';\nvar UPDATE_USERNAME = exports.UPDATE_USERNAME = 'UPDATE_USERNAME';\n\nfunction dehydrate(items) {\n  return {\n    type: DEHYDRATE_RESULT,\n    items: items\n  };\n}\n\nfunction dehydrateStatus(status) {\n  if (status) {\n    return Object.assign({}, status, {\n      last_click: status.last_click ? (0, _moment2.default)(status.last_click) : null,\n      banned_until: status.banned_until ? (0, _moment2.default)(status.banned_until) : null\n    });\n  } else {\n    return null;\n  }\n}\n\nfunction updateAvatar(user, avatarHash) {\n  return {\n    type: UPDATE_AVATAR,\n    userId: user.id,\n    avatarHash: avatarHash\n  };\n}\n\nfunction updateUsername(user, username, slug) {\n  return {\n    type: UPDATE_USERNAME,\n    userId: user.id,\n    username: username,\n    slug: slug\n  };\n}\n\nfunction user() {\n  var state = arguments.length <= 0 || arguments[0] === undefined ? [] : arguments[0];\n  var action = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];\n\n  switch (action.type) {\n    case DEHYDRATE_RESULT:\n      return action.items.map(function (item) {\n        var status = dehydrateStatus(item.status);\n\n        return Object.assign({}, item, {\n          status: status\n        });\n      });\n\n    case UPDATE_AVATAR:\n      return state.map(function (item) {\n        item = Object.assign({}, item);\n        if (item.id === action.userId) {\n          item.avatar_hash = action.avatarHash;\n        }\n\n        return item;\n      });\n\n    default:\n      return state;\n  }\n}\n\n},{\"moment\":\"moment\"}],91:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Ajax = exports.Ajax = function () {\n  function Ajax() {\n    _classCallCheck(this, Ajax);\n\n    this._cookieName = null;\n    this._csrfToken = null;\n  }\n\n  _createClass(Ajax, [{\n    key: 'init',\n    value: function init(cookieName) {\n      this._cookieName = cookieName;\n      this._csrfToken = this.getCsrfToken();\n    }\n  }, {\n    key: 'getCsrfToken',\n    value: function getCsrfToken() {\n      if (document.cookie.indexOf(this._cookieName) !== -1) {\n        var cookieRegex = new RegExp(this._cookieName + '\\=([^;]*)');\n        var cookie = document.cookie.match(cookieRegex)[0];\n        return cookie ? cookie.split('=')[1] : null;\n      } else {\n        return null;\n      }\n    }\n  }, {\n    key: 'request',\n    value: function request(method, url, data) {\n      var self = this;\n      return new Promise(function (resolve, reject) {\n        var xhr = {\n          url: url,\n          method: method,\n          headers: {\n            'X-CSRFToken': self._csrfToken\n          },\n\n          data: data ? JSON.stringify(data) : null,\n          contentType: \"application/json; charset=utf-8\",\n          dataType: 'json',\n\n          success: function success(data) {\n            resolve(data);\n          },\n\n          error: function error(jqXHR) {\n            var rejection = jqXHR.responseJSON || {};\n\n            rejection.status = jqXHR.status;\n\n            if (rejection.status === 0) {\n              rejection.detail = gettext(\"Lost connection with application.\");\n            }\n\n            rejection.statusText = jqXHR.statusText;\n\n            reject(rejection);\n          }\n        };\n\n        $.ajax(xhr);\n      });\n    }\n  }, {\n    key: 'get',\n    value: function get(url, params) {\n      if (params) {\n        url += '?' + $.param(params);\n      }\n      return this.request('GET', url);\n    }\n  }, {\n    key: 'post',\n    value: function post(url, data) {\n      return this.request('POST', url, data);\n    }\n  }, {\n    key: 'patch',\n    value: function patch(url, data) {\n      return this.request('PATCH', url, data);\n    }\n  }, {\n    key: 'put',\n    value: function put(url, data) {\n      return this.request('PUT', url, data);\n    }\n  }, {\n    key: 'delete',\n    value: function _delete(url) {\n      return this.request('DELETE', url);\n    }\n  }, {\n    key: 'upload',\n    value: function upload(url, data, progress) {\n      var self = this;\n      return new Promise(function (resolve, reject) {\n        var xhr = {\n          url: url,\n          method: 'POST',\n          headers: {\n            'X-CSRFToken': self._csrfToken\n          },\n\n          data: data,\n          contentType: false,\n          processData: false,\n\n          xhr: function xhr() {\n            var xhr = new window.XMLHttpRequest();\n            xhr.upload.addEventListener(\"progress\", function (evt) {\n              if (evt.lengthComputable) {\n                progress(Math.round(evt.loaded / evt.total * 100));\n              }\n            }, false);\n            return xhr;\n          },\n\n          success: function success(response) {\n            resolve(response);\n          },\n\n          error: function error(jqXHR) {\n            var rejection = jqXHR.responseJSON || {};\n\n            rejection.status = jqXHR.status;\n\n            if (rejection.status === 0) {\n              rejection.detail = gettext(\"Lost connection with application.\");\n            }\n\n            rejection.statusText = jqXHR.statusText;\n\n            reject(rejection);\n          }\n        };\n\n        $.ajax(xhr);\n      });\n    }\n  }]);\n\n  return Ajax;\n}();\n\nexports.default = new Ajax();\n\n},{}],92:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Auth = undefined;\n\nvar _auth = require('../reducers/auth');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// jshint ignore:line\n\nvar Auth = exports.Auth = function () {\n  function Auth() {\n    _classCallCheck(this, Auth);\n  }\n\n  _createClass(Auth, [{\n    key: 'init',\n    value: function init(store, local, modal) {\n      this._store = store;\n      this._local = local;\n      this._modal = modal;\n\n      // tell other tabs what auth state is because we are most current with it\n      this.syncSession();\n\n      // listen for other tabs to tell us that state changed\n      this.watchState();\n    }\n  }, {\n    key: 'syncSession',\n    value: function syncSession() {\n      var state = this._store.getState().auth;\n      if (state.isAuthenticated) {\n        this._local.set('auth', {\n          isAuthenticated: true,\n          username: state.user.username\n        });\n      } else {\n        this._local.set('auth', {\n          isAuthenticated: false\n        });\n      }\n    }\n  }, {\n    key: 'watchState',\n    value: function watchState() {\n      var _this = this;\n\n      this._local.watch('auth', function (newState) {\n        if (newState.isAuthenticated) {\n          _this._store.dispatch((0, _auth.signIn)({\n            username: newState.username\n          }));\n        } else {\n          _this._store.dispatch((0, _auth.signOut)());\n        }\n      });\n      this._modal.hide();\n    }\n  }, {\n    key: 'signIn',\n    value: function signIn(user) {\n      this._store.dispatch((0, _auth.signIn)(user));\n      this._local.set('auth', {\n        isAuthenticated: true,\n        username: user.username\n      });\n      this._modal.hide();\n    }\n  }, {\n    key: 'signOut',\n    value: function signOut() {\n      this._store.dispatch((0, _auth.signOut)());\n      this._local.set('auth', {\n        isAuthenticated: false\n      });\n      this._modal.hide();\n    }\n  }, {\n    key: 'softSignOut',\n    value: function softSignOut() {\n      this._store.dispatch((0, _auth.signOut)(true));\n      this._local.set('auth', {\n        isAuthenticated: false\n      });\n      this._modal.hide();\n    }\n  }]);\n\n  return Auth;\n}();\n\nexports.default = new Auth();\n\n},{\"../reducers/auth\":86}],93:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); /* global grecaptcha */\n// jshint ignore:line\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Captcha = exports.ReCaptcha = exports.ReCaptchaComponent = exports.QACaptcha = exports.NoCaptcha = exports.BaseCaptcha = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _formGroup = require('../components/form-group');\n\nvar _formGroup2 = _interopRequireDefault(_formGroup);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// jshint ignore:line\n\nvar BaseCaptcha = exports.BaseCaptcha = function () {\n  function BaseCaptcha() {\n    _classCallCheck(this, BaseCaptcha);\n  }\n\n  _createClass(BaseCaptcha, [{\n    key: 'init',\n    value: function init(context, ajax, include, snackbar) {\n      this._context = context;\n      this._ajax = ajax;\n      this._include = include;\n      this._snackbar = snackbar;\n    }\n  }]);\n\n  return BaseCaptcha;\n}();\n\nvar NoCaptcha = exports.NoCaptcha = function (_BaseCaptcha) {\n  _inherits(NoCaptcha, _BaseCaptcha);\n\n  function NoCaptcha() {\n    _classCallCheck(this, NoCaptcha);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(NoCaptcha).apply(this, arguments));\n  }\n\n  _createClass(NoCaptcha, [{\n    key: 'load',\n    value: function load() {\n      return new Promise(function (resolve) {\n        // immediately resolve as we don't have anything to validate\n        resolve();\n      });\n    }\n  }, {\n    key: 'validator',\n    value: function validator() {\n      return null;\n    }\n  }, {\n    key: 'component',\n    value: function component() {\n      return null;\n    }\n  }]);\n\n  return NoCaptcha;\n}(BaseCaptcha);\n\nvar QACaptcha = exports.QACaptcha = function (_BaseCaptcha2) {\n  _inherits(QACaptcha, _BaseCaptcha2);\n\n  function QACaptcha() {\n    _classCallCheck(this, QACaptcha);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(QACaptcha).apply(this, arguments));\n  }\n\n  _createClass(QACaptcha, [{\n    key: 'load',\n    value: function load() {\n      var self = this;\n      return new Promise(function (resolve, reject) {\n        self._ajax.get(self._context.get('CAPTCHA_API_URL')).then(function (data) {\n          self.question = data.question;\n          self.helpText = data.help_text;\n          resolve();\n        }, function () {\n          self._snackbar.error(gettext(\"Failed to load CAPTCHA.\"));\n          reject();\n        });\n      });\n    }\n  }, {\n    key: 'validator',\n    value: function validator() {\n      return [];\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'component',\n    value: function component(kwargs) {\n      return _react2.default.createElement(\n        _formGroup2.default,\n        { label: this.question, 'for': 'id_captcha',\n          labelClass: kwargs.labelClass || \"col-sm-4\",\n          controlClass: kwargs.controlClass || \"col-sm-8\",\n          validation: kwargs.form.state.errors.captcha,\n          helpText: this.helpText || null },\n        _react2.default.createElement('input', { type: 'text', id: 'id_captcha', className: 'form-control',\n          'aria-describedby': 'id_captcha_status',\n          disabled: kwargs.form.state.isLoading,\n          onChange: kwargs.form.bindInput('captcha'),\n          value: kwargs.form.state.captcha })\n      );\n    }\n    /* jshint ignore:end */\n\n  }]);\n\n  return QACaptcha;\n}(BaseCaptcha);\n\nvar ReCaptchaComponent = exports.ReCaptchaComponent = function (_React$Component) {\n  _inherits(ReCaptchaComponent, _React$Component);\n\n  function ReCaptchaComponent() {\n    _classCallCheck(this, ReCaptchaComponent);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(ReCaptchaComponent).apply(this, arguments));\n  }\n\n  _createClass(ReCaptchaComponent, [{\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      var _this4 = this;\n\n      grecaptcha.render('recaptcha', {\n        'sitekey': this.props.siteKey,\n        'callback': function callback(response) {\n          // fire fakey event to binding\n          _this4.props.binding({\n            target: {\n              value: response\n            }\n          });\n        }\n      });\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement('div', { id: 'recaptcha' });\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return ReCaptchaComponent;\n}(_react2.default.Component);\n\nvar ReCaptcha = exports.ReCaptcha = function (_BaseCaptcha3) {\n  _inherits(ReCaptcha, _BaseCaptcha3);\n\n  function ReCaptcha() {\n    _classCallCheck(this, ReCaptcha);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(ReCaptcha).apply(this, arguments));\n  }\n\n  _createClass(ReCaptcha, [{\n    key: 'load',\n    value: function load() {\n      this._include.include('https://www.google.com/recaptcha/api.js', true);\n\n      return new Promise(function (resolve) {\n        var wait = function wait() {\n          if (typeof grecaptcha === \"undefined\") {\n            window.setTimeout(function () {\n              wait();\n            }, 200);\n          } else {\n            resolve();\n          }\n        };\n        wait();\n      });\n    }\n  }, {\n    key: 'validator',\n    value: function validator() {\n      return [];\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'component',\n    value: function component(kwargs) {\n      return _react2.default.createElement(\n        _formGroup2.default,\n        { label: gettext(\"Captcha\"), 'for': 'id_captcha',\n          labelClass: kwargs.labelClass || \"col-sm-4\",\n          controlClass: kwargs.controlClass || \"col-sm-8\",\n          validation: kwargs.form.state.errors.captcha,\n          helpText: gettext(\"Please solve the quick test.\") },\n        _react2.default.createElement(ReCaptchaComponent, { siteKey: this._context.get('SETTINGS').recaptcha_site_key,\n          binding: kwargs.form.bindInput('captcha') })\n      );\n    }\n    /* jshint ignore:end */\n\n  }]);\n\n  return ReCaptcha;\n}(BaseCaptcha);\n\nvar Captcha = exports.Captcha = function () {\n  function Captcha() {\n    _classCallCheck(this, Captcha);\n  }\n\n  _createClass(Captcha, [{\n    key: 'init',\n    value: function init(context, ajax, include, snackbar) {\n      switch (context.get('SETTINGS').captcha_type) {\n        case 'no':\n          this._captcha = new NoCaptcha();\n          break;\n\n        case 'qa':\n          this._captcha = new QACaptcha();\n          break;\n\n        case 're':\n          this._captcha = new ReCaptcha();\n          break;\n      }\n\n      this._captcha.init(context, ajax, include, snackbar);\n    }\n\n    // accessors for underlying strategy\n\n  }, {\n    key: 'load',\n    value: function load() {\n      return this._captcha.load();\n    }\n  }, {\n    key: 'validator',\n    value: function validator() {\n      return this._captcha.validator();\n    }\n  }, {\n    key: 'component',\n    value: function component(kwargs) {\n      return this._captcha.component(kwargs);\n    }\n  }]);\n\n  return Captcha;\n}();\n\nexports.default = new Captcha();\n\n},{\"../components/form-group\":57,\"react\":\"react\"}],94:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Include = exports.Include = function () {\n  function Include() {\n    _classCallCheck(this, Include);\n  }\n\n  _createClass(Include, [{\n    key: 'init',\n    value: function init(staticUrl) {\n      this._staticUrl = staticUrl;\n      this._included = [];\n    }\n  }, {\n    key: 'include',\n    value: function include(script) {\n      var remote = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1];\n\n      if (this._included.indexOf(script) === -1) {\n        this._included.push(script);\n        this._include(script, remote);\n      }\n    }\n  }, {\n    key: '_include',\n    value: function _include(script, remote) {\n      $.ajax({\n        url: (!remote ? this._staticUrl : '') + script,\n        cache: true,\n        dataType: 'script'\n      });\n    }\n  }]);\n\n  return Include;\n}();\n\nexports.default = new Include();\n\n},{}],95:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar storage = window.localStorage;\n\nvar LocalStorage = exports.LocalStorage = function () {\n  function LocalStorage() {\n    _classCallCheck(this, LocalStorage);\n  }\n\n  _createClass(LocalStorage, [{\n    key: 'init',\n    value: function init(prefix) {\n      var _this = this;\n\n      this._prefix = prefix;\n      this._watchers = [];\n\n      window.addEventListener('storage', function (e) {\n        var newValueJson = JSON.parse(e.newValue);\n        _this._watchers.forEach(function (watcher) {\n          if (watcher.key === e.key && e.oldValue !== e.newValue) {\n            watcher.callback(newValueJson);\n          }\n        });\n      });\n    }\n  }, {\n    key: 'set',\n    value: function set(key, value) {\n      storage.setItem(this._prefix + key, JSON.stringify(value));\n    }\n  }, {\n    key: 'get',\n    value: function get(key) {\n      var itemString = storage.getItem(this._prefix + key);\n      if (itemString) {\n        return JSON.parse(itemString);\n      } else {\n        return null;\n      }\n    }\n  }, {\n    key: 'watch',\n    value: function watch(key, callback) {\n      this._watchers.push({\n        key: this._prefix + key,\n        callback: callback\n      });\n    }\n  }]);\n\n  return LocalStorage;\n}();\n\nexports.default = new LocalStorage();\n\n},{}],96:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.MobileNavbarDropdown = undefined;\n\nvar _mountComponent = require('../utils/mount-component');\n\nvar _mountComponent2 = _interopRequireDefault(_mountComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar MobileNavbarDropdown = exports.MobileNavbarDropdown = function () {\n  function MobileNavbarDropdown() {\n    _classCallCheck(this, MobileNavbarDropdown);\n  }\n\n  _createClass(MobileNavbarDropdown, [{\n    key: 'init',\n    value: function init(element) {\n      this._element = element;\n      this._component = null;\n    }\n  }, {\n    key: 'show',\n    value: function show(component) {\n      if (this._component === component) {\n        this.hide();\n      } else {\n        this._component = component;\n        (0, _mountComponent2.default)(component, this._element.id);\n        $(this._element).addClass('open');\n      }\n    }\n  }, {\n    key: 'showConnected',\n    value: function showConnected(name, component) {\n      if (this._component === name) {\n        this.hide();\n      } else {\n        this._component = name;\n        (0, _mountComponent2.default)(component, this._element.id, true);\n        $(this._element).addClass('open');\n      }\n    }\n  }, {\n    key: 'hide',\n    value: function hide() {\n      $(this._element).removeClass('open');\n      this._component = null;\n    }\n  }]);\n\n  return MobileNavbarDropdown;\n}();\n\nexports.default = new MobileNavbarDropdown();\n\n},{\"../utils/mount-component\":105}],97:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Modal = undefined;\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _mountComponent = require('../utils/mount-component');\n\nvar _mountComponent2 = _interopRequireDefault(_mountComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Modal = exports.Modal = function () {\n  function Modal() {\n    _classCallCheck(this, Modal);\n  }\n\n  _createClass(Modal, [{\n    key: 'init',\n    value: function init(element) {\n      var _this = this;\n\n      this._element = element;\n\n      this._modal = $(element).modal({ show: false });\n\n      this._modal.on('hidden.bs.modal', function () {\n        _reactDom2.default.unmountComponentAtNode(_this._element);\n      });\n    }\n  }, {\n    key: 'show',\n    value: function show(component) {\n      (0, _mountComponent2.default)(component, this._element.id);\n      this._modal.modal('show');\n    }\n  }, {\n    key: 'hide',\n    value: function hide() {\n      this._modal.modal('hide');\n    }\n  }]);\n\n  return Modal;\n}();\n\nexports.default = new Modal();\n\n},{\"../utils/mount-component\":105,\"react-dom\":\"react-dom\"}],98:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar PageTitle = exports.PageTitle = function () {\n  function PageTitle() {\n    _classCallCheck(this, PageTitle);\n  }\n\n  _createClass(PageTitle, [{\n    key: 'init',\n    value: function init(forumName) {\n      this._forumName = forumName;\n    }\n  }, {\n    key: 'set',\n    value: function set(title) {\n      if (typeof title === 'string') {\n        title = { title: title };\n      }\n\n      var finalTitle = title.title;\n\n      if (title.page) {\n        var pageLabel = interpolate(gettext('page %(page)s'), {\n          page: title.page\n        }, true);\n\n        finalTitle += ' (' + pageLabel + ')';\n      }\n\n      if (title.parent) {\n        finalTitle += ' | ' + title.parent;\n      }\n\n      document.title = finalTitle + ' | ' + this._forumName;\n    }\n  }]);\n\n  return PageTitle;\n}();\n\nexports.default = new PageTitle();\n\n},{}],99:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Snackbar = undefined;\n\nvar _snackbar = require('../reducers/snackbar');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar HIDE_ANIMATION_LENGTH = 300;\nvar MESSAGE_SHOW_LENGTH = 5000;\n\nvar Snackbar = exports.Snackbar = function () {\n  function Snackbar() {\n    _classCallCheck(this, Snackbar);\n  }\n\n  _createClass(Snackbar, [{\n    key: 'init',\n    value: function init(store) {\n      this._store = store;\n      this._timeout = null;\n    }\n  }, {\n    key: 'alert',\n    value: function alert(message, type) {\n      var _this = this;\n\n      if (this._timeout) {\n        window.clearTimeout(this._timeout);\n        this._store.dispatch((0, _snackbar.hideSnackbar)());\n\n        this._timeout = window.setTimeout(function () {\n          _this._timeout = null;\n          _this.alert(message, type);\n        }, HIDE_ANIMATION_LENGTH);\n      } else {\n        this._store.dispatch((0, _snackbar.showSnackbar)(message, type));\n        this._timeout = window.setTimeout(function () {\n          _this._store.dispatch((0, _snackbar.hideSnackbar)());\n          _this._timeout = null;\n        }, MESSAGE_SHOW_LENGTH);\n      }\n    }\n\n    // shorthands for message types\n\n  }, {\n    key: 'info',\n    value: function info(message) {\n      this.alert(message, 'info');\n    }\n  }, {\n    key: 'success',\n    value: function success(message) {\n      this.alert(message, 'success');\n    }\n  }, {\n    key: 'warning',\n    value: function warning(message) {\n      this.alert(message, 'warning');\n    }\n  }, {\n    key: 'error',\n    value: function error(message) {\n      this.alert(message, 'error');\n    }\n\n    // shorthand for api errors\n\n  }, {\n    key: 'apiError',\n    value: function apiError(rejection) {\n      var message = gettext(\"Unknown error has occured.\");\n\n      if (rejection.status === 0) {\n        message = rejection.detail;\n      }\n\n      if (rejection.status === 400 && rejection.detail) {\n        message = rejection.detail;\n      }\n\n      if (rejection.status === 403) {\n        message = rejection.detail;\n        if (message === \"Permission denied\") {\n          message = gettext(\"You don't have permission to perform this action.\");\n        }\n      }\n\n      if (rejection.status === 404) {\n        message = gettext(\"Action link is invalid.\");\n      }\n\n      this.error(message);\n    }\n  }]);\n\n  return Snackbar;\n}();\n\nexports.default = new Snackbar();\n\n},{\"../reducers/snackbar\":87}],100:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.StoreWrapper = undefined;\n\nvar _redux = require('redux');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar StoreWrapper = exports.StoreWrapper = function () {\n  function StoreWrapper() {\n    _classCallCheck(this, StoreWrapper);\n\n    this._store = null;\n    this._reducers = {};\n    this._initialState = {};\n  }\n\n  _createClass(StoreWrapper, [{\n    key: 'addReducer',\n    value: function addReducer(name, reducer, initialState) {\n      this._reducers[name] = reducer;\n      this._initialState[name] = initialState;\n    }\n  }, {\n    key: 'init',\n    value: function init() {\n      this._store = (0, _redux.createStore)((0, _redux.combineReducers)(this._reducers), this._initialState);\n    }\n  }, {\n    key: 'getStore',\n    value: function getStore() {\n      return this._store;\n    }\n\n    // Store API\n\n  }, {\n    key: 'getState',\n    value: function getState() {\n      return this._store.getState();\n    }\n  }, {\n    key: 'dispatch',\n    value: function dispatch(action) {\n      return this._store.dispatch(action);\n    }\n  }]);\n\n  return StoreWrapper;\n}();\n\nexports.default = new StoreWrapper();\n\n},{\"redux\":\"redux\"}],101:[function(require,module,exports){\n\"use strict\";\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/* global zxcvbn */\n\nvar Zxcvbn = exports.Zxcvbn = function () {\n  function Zxcvbn() {\n    _classCallCheck(this, Zxcvbn);\n  }\n\n  _createClass(Zxcvbn, [{\n    key: \"init\",\n    value: function init(include) {\n      this._include = include;\n    }\n  }, {\n    key: \"scorePassword\",\n    value: function scorePassword(password, inputs) {\n      // 0-4 score, the more the stronger password\n      return zxcvbn(password, inputs).score;\n    }\n  }, {\n    key: \"load\",\n    value: function load() {\n      if (typeof zxcvbn === \"undefined\") {\n        this._include.include('misago/js/zxcvbn.js');\n        return this._loadingPromise();\n      } else {\n        return this._loadedPromise();\n      }\n    }\n  }, {\n    key: \"_loadingPromise\",\n    value: function _loadingPromise() {\n      return new Promise(function (resolve) {\n        var wait = function wait() {\n          if (typeof zxcvbn === \"undefined\") {\n            window.setTimeout(function () {\n              wait();\n            }, 200);\n          } else {\n            resolve();\n          }\n        };\n        wait();\n      });\n    }\n  }, {\n    key: \"_loadedPromise\",\n    value: function _loadedPromise() {\n      // we have already loaded zxcvbn.js, resolve away!\n      return new Promise(function (resolve) {\n        resolve();\n      });\n    }\n  }]);\n\n  return Zxcvbn;\n}();\n\nexports.default = new Zxcvbn();\n\n},{}],102:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nexports.default = function (ban, changeState) {\n  _reactDom2.default.render(\n  /* jshint ignore:start */\n  _react2.default.createElement(\n    _reactRedux.Provider,\n    { store: _store2.default.getStore() },\n    _react2.default.createElement(RedrawedBannedPage, { message: ban.message,\n      expires: ban.expires_on ? (0, _moment2.default)(ban.expires_on) : null })\n  ),\n  /* jshint ignore:end */\n  document.getElementById('page-mount'));\n\n  if (typeof changeState === 'undefined' || changeState) {\n    var forumName = _index2.default.get('SETTINGS').forum_name;\n    document.title = gettext(\"You are banned\") + ' | ' + forumName;\n    window.history.pushState({}, \"\", _index2.default.get('BANNED_URL'));\n  }\n};\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _reactRedux = require('react-redux');\n\nvar _bannedPage = require('../components/banned-page');\n\nvar _bannedPage2 = _interopRequireDefault(_bannedPage);\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _store = require('../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// jshint ignore:line\n\n/* jshint ignore:start */\n// jshint ignore:line\n// jshint ignore:line\nvar select = function select(state) {\n  return state.tick;\n}; // jshint ignore:line\n// jshint ignore:line\n\nvar RedrawedBannedPage = (0, _reactRedux.connect)(select)(_bannedPage2.default);\n/* jshint ignore:end */\n\n},{\"../components/banned-page\":50,\"../index\":85,\"../services/store\":100,\"moment\":\"moment\",\"react\":\"react\",\"react-dom\":\"react-dom\",\"react-redux\":\"react-redux\"}],103:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nexports.default = function (list, rowWidth) {\n  var padding = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2];\n\n  var rows = [];\n  var row = [];\n\n  list.forEach(function (element) {\n    row.push(element);\n    if (row.length === rowWidth) {\n      rows.push(row);\n      row = [];\n    }\n  });\n\n  // pad row to required length?\n  if (padding !== false && row.length > 0 && row.length < rowWidth) {\n    for (var i = row.length; i < rowWidth; i++) {\n      row.push(padding);\n    }\n  }\n\n  if (row.length) {\n    rows.push(row);\n  }\n\n  return rows;\n};\n\n},{}],104:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nexports.default = function (bytes) {\n  if (bytes > 1000 * 1000 * 1000) {\n    return Math.round(bytes * 100 / (1000 * 1000 * 1000)) / 100 + ' GB';\n  } else if (bytes > 1000 * 1000) {\n    return Math.round(bytes * 100 / (1000 * 1000)) / 100 + ' MB';\n  } else if (bytes > 1000) {\n    return Math.round(bytes * 100 / 1000) / 100 + ' KB';\n  } else {\n    return Math.round(bytes * 100) / 100 + ' B';\n  }\n};\n\n},{}],105:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nexports.default = function (Component, rootElementId) {\n  var connected = arguments.length <= 2 || arguments[2] === undefined ? true : arguments[2];\n\n  var rootElement = document.getElementById(rootElementId);\n\n  if (rootElement) {\n    if (connected) {\n      _reactDom2.default.render(\n      /* jshint ignore:start */\n      _react2.default.createElement(\n        _reactRedux.Provider,\n        { store: _store2.default.getStore() },\n        _react2.default.createElement(Component, null)\n      ),\n      /* jshint ignore:end */\n      rootElement);\n    } else {\n      _reactDom2.default.render(\n      /* jshint ignore:start */\n      _react2.default.createElement(Component, null),\n      /* jshint ignore:end */\n      rootElement);\n    }\n  }\n};\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _reactRedux = require('react-redux');\n\nvar _store = require('../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n},{\"../services/store\":100,\"react\":\"react\",\"react-dom\":\"react-dom\",\"react-redux\":\"react-redux\"}],106:[function(require,module,exports){\n\"use strict\";\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar OrderedList = function () {\n  function OrderedList(items) {\n    _classCallCheck(this, OrderedList);\n\n    this.isOrdered = false;\n    this._items = items || [];\n  }\n\n  _createClass(OrderedList, [{\n    key: \"add\",\n    value: function add(key, item, order) {\n      this._items.push({\n        key: key,\n        item: item,\n\n        after: order ? order.after || null : null,\n        before: order ? order.before || null : null\n      });\n    }\n  }, {\n    key: \"get\",\n    value: function get(key, value) {\n      for (var i = 0; i < this._items.length; i++) {\n        if (this._items[i].key === key) {\n          return this._items[i].item;\n        }\n      }\n\n      return value;\n    }\n  }, {\n    key: \"has\",\n    value: function has(key) {\n      return this.get(key) !== undefined;\n    }\n  }, {\n    key: \"values\",\n    value: function values() {\n      var values = [];\n      for (var i = 0; i < this._items.length; i++) {\n        values.push(this._items[i].item);\n      }\n      return values;\n    }\n  }, {\n    key: \"order\",\n    value: function order(values_only) {\n      if (!this.isOrdered) {\n        this._items = this._order(this._items);\n        this.isOrdered = true;\n      }\n\n      if (values_only || typeof values_only === 'undefined') {\n        return this.values();\n      } else {\n        return this._items;\n      }\n    }\n  }, {\n    key: \"orderedValues\",\n    value: function orderedValues() {\n      return this.order(true);\n    }\n  }, {\n    key: \"_order\",\n    value: function _order(unordered) {\n      // Index of unordered items\n      var index = [];\n      unordered.forEach(function (item) {\n        index.push(item.key);\n      });\n\n      // Ordered items\n      var ordered = [];\n      var ordering = [];\n\n      // First pass: register items that\n      // don't specify their order\n      unordered.forEach(function (item) {\n        if (!item.after && !item.before) {\n          ordered.push(item);\n          ordering.push(item.key);\n        }\n      });\n\n      // Second pass: register items that\n      // specify their before to \"_end\"\n      unordered.forEach(function (item) {\n        if (item.before === \"_end\") {\n          ordered.push(item);\n          ordering.push(item.key);\n        }\n      });\n\n      // Third pass: keep iterating items\n      // until we hit iterations limit or finish\n      // ordering list\n      function insertItem(item) {\n        var insertAt = -1;\n        if (ordering.indexOf(item.key) === -1) {\n          if (item.after) {\n            insertAt = ordering.indexOf(item.after);\n            if (insertAt !== -1) {\n              insertAt += 1;\n            }\n          } else if (item.before) {\n            insertAt = ordering.indexOf(item.before);\n          }\n\n          if (insertAt !== -1) {\n            ordered.splice(insertAt, 0, item);\n            ordering.splice(insertAt, 0, item.key);\n          }\n        }\n      }\n\n      var iterations = 200;\n      while (iterations > 0 && index.length !== ordering.length) {\n        iterations -= 1;\n        unordered.forEach(insertItem);\n      }\n\n      return ordered;\n    }\n  }]);\n\n  return OrderedList;\n}();\n\nexports.default = OrderedList;\n\n},{}],107:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.int = int;\nexports.range = range;\nfunction int(min, max) {\n  return Math.floor(Math.random() * (max - min + 1)) + min;\n}\n\nfunction range(min, max) {\n  var array = new Array(int(min, max));\n  for (var i = 0; i < array.length; i++) {\n    array[i] = i;\n  }\n\n  return array;\n}\n\n},{}],108:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nexports.default = function (options) {\n  var routes = {\n    component: options.component,\n    childRoutes: [{\n      path: options.root,\n      onEnter: function onEnter(nextState, replaceState) {\n        replaceState(null, options.paths[0].path);\n      }\n    }].concat(options.paths.map(function (path) {\n      return path;\n    }))\n  };\n\n  _reactDom2.default.render(_react2.default.createElement(\n    _reactRedux.Provider,\n    { store: _store2.default.getStore() },\n    _react2.default.createElement(_reactRouter.Router, { routes: routes, history: history })\n  ), rootElement);\n};\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _reactRedux = require('react-redux');\n\nvar _reactRouter = require('react-router');\n\nvar _createBrowserHistory = require('history/lib/createBrowserHistory');\n\nvar _createBrowserHistory2 = _interopRequireDefault(_createBrowserHistory);\n\nvar _store = require('../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// jshint ignore:start\n\nvar rootElement = document.getElementById('page-mount');\nvar history = new _createBrowserHistory2.default();\n\n},{\"../services/store\":100,\"history/lib/createBrowserHistory\":38,\"react\":\"react\",\"react-dom\":\"react-dom\",\"react-redux\":\"react-redux\",\"react-router\":\"react-router\"}],109:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.required = required;\nexports.email = email;\nexports.minLength = minLength;\nexports.maxLength = maxLength;\nexports.usernameMinLength = usernameMinLength;\nexports.usernameMaxLength = usernameMaxLength;\nexports.usernameContent = usernameContent;\nexports.passwordMinLength = passwordMinLength;\nvar EMAIL = /^(([^<>()[\\]\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/i;\nvar USERNAME = new RegExp('^[0-9a-z]+$', 'i');\n\nfunction required() {\n  return function (value) {\n    if ($.trim(value).length === 0) {\n      return gettext(\"This field is required.\");\n    }\n  };\n}\n\nfunction email(message) {\n  return function (value) {\n    if (!EMAIL.test(value)) {\n      return message || gettext(\"Enter a valid email address.\");\n    }\n  };\n}\n\nfunction minLength(limitValue, message) {\n  return function (value) {\n    var returnMessage = '';\n    var length = $.trim(value).length;\n\n    if (length < limitValue) {\n      if (message) {\n        returnMessage = message(limitValue, length);\n      } else {\n        returnMessage = ngettext(\"Ensure this value has at least %(limit_value)s character (it has %(show_value)s).\", \"Ensure this value has at least %(limit_value)s characters (it has %(show_value)s).\", limitValue);\n      }\n      return interpolate(returnMessage, {\n        limit_value: limitValue,\n        show_value: length\n      }, true);\n    }\n  };\n}\n\nfunction maxLength(limitValue, message) {\n  return function (value) {\n    var returnMessage = '';\n    var length = $.trim(value).length;\n\n    if (length > limitValue) {\n      if (message) {\n        returnMessage = message(limitValue, length);\n      } else {\n        returnMessage = ngettext(\"Ensure this value has at most %(limit_value)s character (it has %(show_value)s).\", \"Ensure this value has at most %(limit_value)s characters (it has %(show_value)s).\", limitValue);\n      }\n      return interpolate(returnMessage, {\n        limit_value: limitValue,\n        show_value: length\n      }, true);\n    }\n  };\n}\n\nfunction usernameMinLength(settings) {\n  var message = function message(limitValue) {\n    return ngettext(\"Username must be at least %(limit_value)s character long.\", \"Username must be at least %(limit_value)s characters long.\", limitValue);\n  };\n  return this.minLength(settings.username_length_min, message);\n}\n\nfunction usernameMaxLength(settings) {\n  var message = function message(limitValue) {\n    return ngettext(\"Username cannot be longer than %(limit_value)s character.\", \"Username cannot be longer than %(limit_value)s characters.\", limitValue);\n  };\n  return this.maxLength(settings.username_length_max, message);\n}\n\nfunction usernameContent() {\n  return function (value) {\n    if (!USERNAME.test($.trim(value))) {\n      return gettext(\"Username can only contain latin alphabet letters and digits.\");\n    }\n  };\n}\n\nfunction passwordMinLength(settings) {\n  var message = function message(limitValue) {\n    return ngettext(\"Valid password must be at least %(limit_value)s character long.\", \"Valid password must be at least %(limit_value)s characters long.\", limitValue);\n  };\n  return this.minLength(settings.password_length_min, message);\n}\n\n},{}]},{},[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29]);\n"],"sourceRoot":"/source/"}

+ 20 - 8
misago/users/api/userendpoints/list.py

@@ -5,8 +5,10 @@ from django.db.models import Count
 from django.utils import timezone
 from django.utils import timezone
 
 
 from rest_framework.pagination import PageNumberPagination
 from rest_framework.pagination import PageNumberPagination
+from rest_framework.response import Response
 
 
 from misago.conf import settings
 from misago.conf import settings
+from misago.core.apipaginator import ApiPaginator
 from misago.core.cache import cache
 from misago.core.cache import cache
 from misago.core.shortcuts import get_object_or_404
 from misago.core.shortcuts import get_object_or_404
 from misago.forums.models import Forum
 from misago.forums.models import Forum
@@ -14,29 +16,39 @@ from misago.forums.models import Forum
 from misago.users.views.lists import get_active_posters_rankig
 from misago.users.views.lists import get_active_posters_rankig
 from misago.users.models import Rank
 from misago.users.models import Rank
 from misago.users.online.utils import make_users_status_aware
 from misago.users.online.utils import make_users_status_aware
-from misago.users.serializers import ScoredUserSerializer
+from misago.users.serializers import UserSerializer, ScoredUserSerializer
+
+
+Paginator = ApiPaginator(settings.MISAGO_USERS_PER_PAGE, 4)
 
 
 
 
 def active(request):
 def active(request):
     ranking = get_active_posters_rankig()
     ranking = get_active_posters_rankig()
-    make_users_status_aware(ranking['users'], request.user.acl)
+    make_users_status_aware(
+        ranking['users'], request.user.acl, fetch_state=True)
 
 
-    return {
+    return Response({
         'tracked_period': settings.MISAGO_RANKING_LENGTH,
         'tracked_period': settings.MISAGO_RANKING_LENGTH,
         'results': ScoredUserSerializer(ranking['users'], many=True).data,
         'results': ScoredUserSerializer(ranking['users'], many=True).data,
         'count': ranking['users_count']
         'count': ranking['users_count']
-    }
+    })
 
 
 
 
-def rank(request, queryset):
+def rank(request):
     rank_slug = request.query_params.get('rank')
     rank_slug = request.query_params.get('rank')
     if not rank_slug:
     if not rank_slug:
         return
         return
 
 
-    rank = get_object_or_404(Rank.objects.filter(is_tab=True), slug=rank_slug)
-    queryset = queryset.filter(rank=rank).order_by('slug')
+    rank = get_object_or_404(Rank.objects, slug=rank_slug, is_tab=True)
+    queryset = rank.user_set.select_related(
+        'rank', 'ban_cache', 'online_tracker')
+
+    paginator = Paginator()
+    users = paginator.paginate_queryset(queryset, request)
 
 
-    return {'queryset': queryset, 'paginate': True}
+    make_users_status_aware(users, request.user.acl)
+    return paginator.get_paginated_response(
+        UserSerializer(users, many=True).data)
 
 
 
 
 LISTS = {
 LISTS = {

+ 1 - 9
misago/users/api/users.py

@@ -10,7 +10,6 @@ from rest_framework.parsers import JSONParser, MultiPartParser
 from rest_framework.response import Response
 from rest_framework.response import Response
 
 
 from misago.acl import add_acl
 from misago.acl import add_acl
-from misago.core.apipaginator import ApiPaginator
 from misago.core.cache import cache
 from misago.core.cache import cache
 
 
 from misago.users.forms.options import ForumOptionsForm
 from misago.users.forms.options import ForumOptionsForm
@@ -51,7 +50,6 @@ class UserViewSet(viewsets.GenericViewSet):
     parser_classes=(JSONParser, MultiPartParser)
     parser_classes=(JSONParser, MultiPartParser)
     serializer_class = UserSerializer
     serializer_class = UserSerializer
     queryset = get_user_model().objects
     queryset = get_user_model().objects
-    pagination_class = ApiPaginator(settings.MISAGO_USERS_PER_PAGE, 4)
 
 
     def get_queryset(self):
     def get_queryset(self):
         relations = ('rank', 'online_tracker', 'ban_cache')
         relations = ('rank', 'online_tracker', 'ban_cache')
@@ -66,13 +64,7 @@ class UserViewSet(viewsets.GenericViewSet):
 
 
     def list(self, request):
     def list(self, request):
         allow_browse_users_list(request.user)
         allow_browse_users_list(request.user)
-
-        response_dict = {
-            'results': [],
-            'users': self.get_users_count(),
-        }
-
-        return Response(list_endpoint(request))
+        return list_endpoint(request)
 
 
     def create(self, request):
     def create(self, request):
         return create_endpoint(request)
         return create_endpoint(request)

+ 8 - 7
misago/users/online/utils.py

@@ -53,18 +53,19 @@ def get_user_status(user, acl):
     return user_status
     return user_status
 
 
 
 
-def make_users_status_aware(users, acl):
+def make_users_status_aware(users, acl, fetch_state=False):
     users_dict = {}
     users_dict = {}
     for user in users:
     for user in users:
         users_dict[user.pk] = user
         users_dict[user.pk] = user
 
 
-    # Fill ban cache on users
-    for ban_cache in BanCache.objects.filter(user__in=users_dict.keys()):
-        user.ban_cache = ban_cache
+    if fetch_state:
+        # Fill ban cache on users
+        for ban_cache in BanCache.objects.filter(user__in=users_dict.keys()):
+            user.ban_cache = ban_cache
 
 
-    # Fill user online trackers
-    for online_tracker in Online.objects.filter(user__in=users_dict.keys()):
-        user.online_tracker = online_tracker
+        # Fill user online trackers
+        for online_tracker in Online.objects.filter(user__in=users_dict.keys()):
+            user.online_tracker = online_tracker
 
 
     # Fill user states
     # Fill user states
     for user in users:
     for user in users:

+ 0 - 27
misago/users/tests/-test_lists_views.py → misago/users/tests/test_lists_views.py

@@ -50,33 +50,6 @@ class ActivePostersTests(UsersListTestCase):
         response = self.client.get(view_link)
         response = self.client.get(view_link)
         self.assertEqual(response.status_code, 200)
         self.assertEqual(response.status_code, 200)
 
 
-        for page in xrange(2, 6):
-            response = self.client.get(reverse('misago:users_active_posters',
-                                               kwargs={'page': page}))
-        self.assertEqual(response.status_code, 200)
-
-
-class OnlineUsersTests(UsersListTestCase):
-    def test_no_permission(self):
-        """online list returns 403 if user has no permission"""
-        override_acl(self.user, {
-            'can_browse_users_list': 1,
-            'can_see_users_online_list': 0,
-        })
-
-        response = self.client.get(reverse('misago:users_online'))
-        self.assertEqual(response.status_code, 403)
-
-    def test_with_permission(self):
-        """online list returns 200 if user has permission"""
-        override_acl(self.user, {
-            'can_browse_users_list': 1,
-            'can_see_users_online_list': 1,
-        })
-
-        response = self.client.get(reverse('misago:users_online'))
-        self.assertEqual(response.status_code, 200)
-
 
 
 class UsersRankTests(UsersListTestCase):
 class UsersRankTests(UsersListTestCase):
     def test_ranks(self):
     def test_ranks(self):

+ 8 - 72
misago/users/tests/test_users_api.py

@@ -14,12 +14,12 @@ from misago.users.models import Online, Rank
 from misago.users.testutils import AuthenticatedUserTestCase
 from misago.users.testutils import AuthenticatedUserTestCase
 
 
 
 
-class ActiveUsersListTests(AuthenticatedUserTestCase):
+class ActivePostersListTests(AuthenticatedUserTestCase):
     """
     """
-    tests for active users list (GET /users/?list=active)
+    tests for active posters list (GET /users/?list=active)
     """
     """
     def setUp(self):
     def setUp(self):
-        super(ActiveUsersListTests, self).setUp()
+        super(ActivePostersListTests, self).setUp()
         self.link = '/api/users/?list=active'
         self.link = '/api/users/?list=active'
 
 
         cache.clear()
         cache.clear()
@@ -44,83 +44,19 @@ class ActiveUsersListTests(AuthenticatedUserTestCase):
         self.user.posts = 1
         self.user.posts = 1
         self.user.save()
         self.user.save()
 
 
-        self.logout_user()
-
-        response = self.client.get(self.link)
-        self.assertEqual(response.status_code, 200)
-        self.assertIn(self.user.username, response.content)
-
-        response = self.client.get(self.link)
-        self.assertEqual(response.status_code, 200)
-        self.assertIn(self.user.username, response.content)
-
-
-class OnlineListTests(AuthenticatedUserTestCase):
-    """
-    tests for online list (GET /users/?list=online)
-    """
-    def setUp(self):
-        super(OnlineListTests, self).setUp()
-        self.link = '/api/users/?list=online'
-
-        cache.clear()
-        threadstore.clear()
-
-    def test_no_permission(self):
-        """online list returns 403 if user has no permission"""
-        override_acl(self.user, {
-            'can_browse_users_list': 1,
-            'can_see_users_online_list': 0,
-        })
-
-        response = self.client.get(self.link)
-        self.assertEqual(response.status_code, 403)
-
-    def test_empty_list(self):
-        """empty online list returns 200"""
-        override_acl(self.user, {
-            'can_browse_users_list': 1,
-            'can_see_users_online_list': 1,
-        })
-
-        Online.objects.all().update(
-            last_click=timezone.now() - timedelta(days=5))
-
-        response = self.client.get(self.link)
-        self.assertEqual(response.status_code, 200)
-        self.assertNotIn(self.user.username, response.content)
-
-        override_acl(self.user, {
-            'can_browse_users_list': 1,
-            'can_see_users_online_list': 1,
-        })
-
-        response = self.client.get(self.link)
-        self.assertEqual(response.status_code, 200)
-        self.assertNotIn(self.user.username, response.content)
-
-    def test_filled_list(self):
-        """filled online list returns 200"""
-        override_acl(self.user, {
-            'can_browse_users_list': 1,
-            'can_see_users_online_list': 1,
-        })
-
-        Online.objects.all().update(
-            last_click=timezone.now())
-
         response = self.client.get(self.link)
         response = self.client.get(self.link)
         self.assertEqual(response.status_code, 200)
         self.assertEqual(response.status_code, 200)
         self.assertIn(self.user.username, response.content)
         self.assertIn(self.user.username, response.content)
+        self.assertIn('"is_online":true', response.content)
+        self.assertIn('"is_offline":false', response.content)
 
 
-        override_acl(self.user, {
-            'can_browse_users_list': 1,
-            'can_see_users_online_list': 1,
-        })
+        self.logout_user()
 
 
         response = self.client.get(self.link)
         response = self.client.get(self.link)
         self.assertEqual(response.status_code, 200)
         self.assertEqual(response.status_code, 200)
         self.assertIn(self.user.username, response.content)
         self.assertIn(self.user.username, response.content)
+        self.assertIn('"is_online":false', response.content)
+        self.assertIn('"is_offline":true', response.content)
 
 
 
 
 class RankListTests(AuthenticatedUserTestCase):
 class RankListTests(AuthenticatedUserTestCase):