diff --git a/ietf/doc/admin.py b/ietf/doc/admin.py
index 1124e1ec3..988b4e9f5 100644
--- a/ietf/doc/admin.py
+++ b/ietf/doc/admin.py
@@ -11,8 +11,9 @@ from .models import (StateType, State, RelatedDocument, DocumentAuthor, Document
     StateDocEvent, ConsensusDocEvent, BallotType, BallotDocEvent, WriteupDocEvent, LastCallDocEvent,
     TelechatDocEvent, BallotPositionDocEvent, ReviewRequestDocEvent, InitialReviewDocEvent,
     AddedMessageEvent, SubmissionDocEvent, DeletedEvent, EditedAuthorsDocEvent, DocumentURL,
-    ReviewAssignmentDocEvent, IanaExpertDocEvent, IRSGBallotDocEvent )
+    ReviewAssignmentDocEvent, IanaExpertDocEvent, IRSGBallotDocEvent, DocExtResource )
 
+from ietf.utils.validators import validate_external_resource_value
 
 class StateTypeAdmin(admin.ModelAdmin):
     list_display = ["slug", "label"]
@@ -183,3 +184,14 @@ class DocumentUrlAdmin(admin.ModelAdmin):
     search_fields = ['doc__name', 'url', ]
     raw_id_fields = ['doc', ]
 admin.site.register(DocumentURL, DocumentUrlAdmin)
+
+class DocExtResourceAdminForm(forms.ModelForm):
+    def clean(self):
+        validate_external_resource_value(self.cleaned_data['name'],self.cleaned_data['value'])
+
+class DocExtResourceAdmin(admin.ModelAdmin):
+    form = DocExtResourceAdminForm
+    list_display = ['id', 'doc', 'name', 'display_name', 'value',]
+    search_fields = ['doc__name', 'value', 'display_name', 'name__slug',]
+    raw_id_fields = ['doc', ]
+admin.site.register(DocExtResource, DocExtResourceAdmin)
diff --git a/ietf/doc/management/commands/find_github_backup_info.py b/ietf/doc/management/commands/find_github_backup_info.py
new file mode 100644
index 000000000..77a7e86cb
--- /dev/null
+++ b/ietf/doc/management/commands/find_github_backup_info.py
@@ -0,0 +1,30 @@
+# Copyright The IETF Trust 2020, All Rights Reserved
+import json
+
+from django.core.management.base import BaseCommand
+
+from ietf.extresource.models import ExtResource
+from ietf.doc.models import DocExtResource
+from ietf.group.models import GroupExtResource
+from ietf.person.models import PersonExtResource
+
+class Command(BaseCommand):
+    help = ('Locate information about gihub repositories to backup')
+
+    def handle(self, *args, **options):
+
+        info_dict = {}
+        for repo in ExtResource.objects.filter(name__slug='github_repo'):
+            if repo not in info_dict:
+                info_dict[repo.value] = []
+
+            for username in DocExtResource.objects.filter(extresource__name__slug='github_username', doc__name__in=repo.docextresource_set.values_list('doc__name',flat=True).distinct()):
+                info_dict[repo.value].push(username.value)
+
+            for username in GroupExtResource.objects.filter(extresource__name__slug='github_username', group__acronym__in=repo.groupextresource_set.values_list('group__acronym',flat=True).distinct()):
+                info_dict[repo.value].push(username.value)
+
+            for username in PersonExtResource.objects.filter(extresource__name__slug='github_username', person_id__in=repo.personextresource_set.values_list('person__id',flat=True).distinct()):
+                info_dict[repo.value].push(username.value)
+
+        print (json.dumps(info_dict))
diff --git a/ietf/doc/migrations/0033_extres.py b/ietf/doc/migrations/0033_extres.py
new file mode 100644
index 000000000..bc5589ec0
--- /dev/null
+++ b/ietf/doc/migrations/0033_extres.py
@@ -0,0 +1,28 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.29 on 2020-04-15 10:20
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+import ietf.utils.models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('name', '0013_extres'),
+        ('doc', '0032_auto_20200624_1332'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='DocExtResource',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('display_name', models.CharField(blank=True, default='', max_length=255)),
+                ('value', models.CharField(max_length=2083)),
+                ('doc', ietf.utils.models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='doc.Document')),
+                ('name', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='name.ExtResourceName')),
+            ],
+        ),
+    ]
diff --git a/ietf/doc/migrations/0034_populate_docextresources.py b/ietf/doc/migrations/0034_populate_docextresources.py
new file mode 100644
index 000000000..7000af3ed
--- /dev/null
+++ b/ietf/doc/migrations/0034_populate_docextresources.py
@@ -0,0 +1,118 @@
+# Copyright The IETF Trust 2020, All Rights Reserved
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.29 on 2020-03-19 13:06
+from __future__ import unicode_literals
+
+import re
+
+import debug
+
+from collections import OrderedDict, Counter
+
+from django.db import migrations
+
+from ietf.utils.validators import validate_external_resource_value
+from django.core.exceptions import ValidationError
+
+
+name_map = {
+    "Issue.*":                "tracker",
+    ".*FAQ.*":                "faq",
+    ".*Area Web Page":        "webpage",
+    ".*Wiki":                 "wiki",
+    "Home Page":              "webpage",
+    "Slack.*":                "slack",
+    "Additional .* Web Page": "webpage",
+    "Additional .* Page":     "webpage",
+    "Yang catalog entry.*":   "yc_entry",
+    "Yang impact analysis.*": "yc_impact",
+    "GitHub":                 "github_repo",
+    "Github page":            "github_repo",
+    "GitHub repo.*":          "github_repo",
+    "Github repository.*":    "github_repo",
+    "GitHub notifications":   "github_notify",
+    "GitHub org.*":           "github_org",
+    "GitHub User.*":          "github_username",
+    "GitLab User":            "gitlab_username",
+    "GitLab User Name":       "gitlab_username",
+}
+
+# TODO: Review all the None values below and make sure ignoring the URLs they match is really the right thing to do.
+url_map = OrderedDict({
+   "https?://github\\.com": "github_repo",
+   "https://git.sr.ht/": "repo",
+   "https://todo.sr.ht/": "tracker",
+   "https?://trac\\.ietf\\.org/.*/wiki": "wiki",
+   "ietf\\.org.*/trac/wiki": "wiki",
+   "trac.*wiki": "wiki",
+   "www\\.ietf\\.org/mailman" : None,
+   "www\\.ietf\\.org/mail-archive" : None,
+   "mailarchive\\.ietf\\.org" : None,
+   "ietf\\.org/logs": "jabber_log",
+   "ietf\\.org/jabber/logs": "jabber_log",
+   "xmpp:.*?join": "jabber_room",
+   "bell-labs\\.com": None,
+   "html\\.charters": None,
+   "datatracker\\.ietf\\.org": None,
+})
+
+def forward(apps, schema_editor):
+    DocExtResource = apps.get_model('doc', 'DocExtResource')
+    ExtResourceName = apps.get_model('name', 'ExtResourceName')
+    DocumentUrl = apps.get_model('doc', 'DocumentUrl')
+
+    stats = Counter()
+
+    for doc_url in DocumentUrl.objects.all():
+        match_found = False
+        for regext,slug in name_map.items():
+            if re.match(regext, doc_url.desc):
+                match_found = True
+                stats['mapped'] += 1
+                name = ExtResourceName.objects.get(slug=slug)
+                DocExtResource.objects.create(doc=doc_url.doc, name_id=slug, value=doc_url.url, display_name=doc_url.desc) # TODO: validate this value against name.type
+                break
+        if not match_found:
+            for regext, slug in url_map.items():
+                doc_url.url = doc_url.url.strip()
+                if re.search(regext, doc_url.url):
+                    match_found = True
+                    if slug:
+                        stats['mapped'] +=1
+                        name = ExtResourceName.objects.get(slug=slug)
+                        # Munge the URL if it's the first github repo match
+                        #  Remove "/tree/master" substring if it exists
+                        #  Remove trailing "/issues" substring if it exists
+                        #  Remove "/blob/master/.*" pattern if present
+                        if regext == "https?://github\\.com":
+                            doc_url.url = doc_url.url.replace("/tree/master","")
+                            doc_url.url = re.sub('/issues$', '', doc_url.url)
+                            doc_url.url = re.sub('/blob/master.*$', '', doc_url.url)
+                        try:
+                            validate_external_resource_value(name, doc_url.url)
+                            DocExtResource.objects.create(doc=doc_url.doc, name=name, value=doc_url.url, display_name=doc_url.desc) # TODO: validate this value against name.type
+                        except ValidationError as e: # pyflakes:ignore
+                            debug.show('("Failed validation:", doc_url.url, e)')
+                            stats['failed_validation'] +=1
+                    else:
+                        stats['ignored'] +=1
+                    break
+        if not match_found:
+            debug.show('("Not Mapped:",doc_url.desc, doc_url.tag.slug, doc_url.doc.name, doc_url.url)')
+            stats['not_mapped'] += 1
+    print (stats)
+
+def reverse(apps, schema_editor):
+    DocExtResource = apps.get_model('doc', 'DocExtResource')
+    DocExtResource.objects.all().delete()
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('doc', '0033_extres'),
+        ('name', '0014_populate_extres'),
+    ]
+
+    operations = [
+        migrations.RunPython(forward, reverse)
+    ]
diff --git a/ietf/doc/models.py b/ietf/doc/models.py
index ea3f80f72..b0067236f 100644
--- a/ietf/doc/models.py
+++ b/ietf/doc/models.py
@@ -24,7 +24,7 @@ import debug                            # pyflakes:ignore
 from ietf.group.models import Group
 from ietf.name.models import ( DocTypeName, DocTagName, StreamName, IntendedStdLevelName, StdLevelName,
     DocRelationshipName, DocReminderTypeName, BallotPositionName, ReviewRequestStateName, ReviewAssignmentStateName, FormalLanguageName,
-    DocUrlTagName)
+    DocUrlTagName, ExtResourceName)
 from ietf.person.models import Email, Person
 from ietf.person.utils import get_active_balloters
 from ietf.utils import log
@@ -105,6 +105,7 @@ class DocumentInfo(models.Model):
     note = models.TextField(blank=True)
     internal_comments = models.TextField(blank=True)
 
+
     def file_extension(self):
         if not hasattr(self, '_cached_extension'):
             if self.uploaded_filename:
@@ -861,6 +862,15 @@ class DocumentURL(models.Model):
     desc = models.CharField(max_length=255, default='', blank=True)
     url  = models.URLField(max_length=2083) # 2083 is the legal max for URLs
 
+class DocExtResource(models.Model):
+    doc = ForeignKey(Document) # Should this really be to DocumentInfo rather than Document?
+    name = models.ForeignKey(ExtResourceName, on_delete=models.CASCADE)
+    display_name = models.CharField(max_length=255, default='', blank=True)
+    value = models.CharField(max_length=2083) # 2083 is the maximum legal URL length
+    def __str__(self):
+        priority = self.display_name or self.name.name
+        return u"%s (%s) %s" % (priority, self.name.slug, self.value)
+
 class RelatedDocHistory(models.Model):
     source = ForeignKey('DocHistory')
     target = ForeignKey('DocAlias', related_name="reversely_related_document_history_set")
diff --git a/ietf/doc/resources.py b/ietf/doc/resources.py
index 623634103..946667b97 100644
--- a/ietf/doc/resources.py
+++ b/ietf/doc/resources.py
@@ -17,7 +17,7 @@ from ietf.doc.models import (BallotType, DeletedEvent, StateType, State, Documen
     InitialReviewDocEvent, DocHistoryAuthor, BallotDocEvent, RelatedDocument,
     RelatedDocHistory, BallotPositionDocEvent, AddedMessageEvent, SubmissionDocEvent,
     ReviewRequestDocEvent, ReviewAssignmentDocEvent, EditedAuthorsDocEvent, DocumentURL,
-    IanaExpertDocEvent, IRSGBallotDocEvent )
+    IanaExpertDocEvent, IRSGBallotDocEvent, DocExtResource )
 
 from ietf.name.resources import BallotPositionNameResource, DocTypeNameResource
 class BallotTypeResource(ModelResource):
@@ -767,3 +767,23 @@ class IRSGBallotDocEventResource(ModelResource):
             "ballotdocevent_ptr": ALL_WITH_RELATIONS,
         }
 api.doc.register(IRSGBallotDocEventResource())
+
+
+from ietf.name.resources import ExtResourceNameResource
+class DocExtResourceResource(ModelResource):
+    doc              = ToOneField(DocumentResource, 'doc')
+    name             = ToOneField(ExtResourceNameResource, 'name')
+    class Meta:
+        queryset = DocExtResource.objects.all()
+        serializer = api.Serializer()
+        cache = SimpleCache()
+        resource_name = 'docextresource'
+        ordering = ['id', ]
+        filtering = { 
+            "id": ALL,
+            "display_name": ALL,
+            "value": ALL,
+            "doc": ALL_WITH_RELATIONS,
+            "name": ALL_WITH_RELATIONS,
+        }
+api.doc.register(DocExtResourceResource())
diff --git a/ietf/doc/tests_draft.py b/ietf/doc/tests_draft.py
index 3752cfd62..06320d708 100644
--- a/ietf/doc/tests_draft.py
+++ b/ietf/doc/tests_draft.py
@@ -1104,24 +1104,44 @@ class IndividualInfoFormsTests(TestCase):
         q = PyQuery(r.content)
         self.assertTrue(q('textarea')[0].text.strip().startswith("As required by RFC 4858"))
 
-    def test_doc_change_document_urls(self):
-        url = urlreverse('ietf.doc.views_draft.edit_document_urls', kwargs=dict(name=self.docname))
-  
-        # get
+    def test_edit_doc_extresources(self):
+        url = urlreverse('ietf.doc.views_draft.edit_doc_extresources', kwargs=dict(name=self.docname))
+
         login_testing_unauthorized(self, "secretary", url)
 
         r = self.client.get(url)
         self.assertEqual(r.status_code,200)
         q = PyQuery(r.content)
-        self.assertEqual(len(q('form textarea[id=id_urls]')),1)
+        self.assertEqual(len(q('form textarea[id=id_resources]')),1)
 
-        # direct edit
-        r = self.client.post(url, dict(urls='wiki https://wiki.org/ Wiki\nrepository https://repository.org/ Repo\n', submit="1"))
+        badlines = (
+            'github_repo https://github3.com/some/repo',
+            'github_notify  badaddr',
+            'website /not/a/good/url'
+            'notavalidtag blahblahblah'
+        )
+
+        for line in badlines:
+            r = self.client.post(url, dict(resources=line, submit="1"))
+            self.assertEqual(r.status_code, 200)
+            q = PyQuery(r.content)
+            self.assertTrue(q('.alert-danger'))
+
+        goodlines = """
+            github_repo https://github.com/some/repo Some display text
+            github_notify notify@example.com
+            github_username githubuser
+            website http://example.com/http/is/fine
+        """
+
+        r = self.client.post(url, dict(resources=goodlines, submit="1"))
         self.assertEqual(r.status_code,302)
         doc = Document.objects.get(name=self.docname)
-        self.assertTrue(doc.latest_event(DocEvent,type="changed_document").desc.startswith('Changed document URLs'))
-        self.assertIn('wiki https://wiki.org/', doc.latest_event(DocEvent,type="changed_document").desc)
-        self.assertIn('https://wiki.org/', [ u.url for u in doc.documenturl_set.all() ])
+        self.assertEqual(doc.latest_event(DocEvent,type="changed_document").desc[:35], 'Changed document external resources')
+        self.assertIn('github_username githubuser', doc.latest_event(DocEvent,type="changed_document").desc)
+        self.assertEqual(doc.docextresource_set.count(), 4)
+        self.assertEqual(doc.docextresource_set.get(name__slug='github_repo').display_name, 'Some display text')
+
 
 class SubmitToIesgTests(TestCase):
 
diff --git a/ietf/doc/urls.py b/ietf/doc/urls.py
index 1bef6f9ed..b9aa9b2f8 100644
--- a/ietf/doc/urls.py
+++ b/ietf/doc/urls.py
@@ -128,7 +128,7 @@ urlpatterns = [
     url(r'^%(name)s/edit/approveballot/$' % settings.URL_REGEXPS, views_ballot.approve_ballot),
     url(r'^%(name)s/edit/approvedownrefs/$' % settings.URL_REGEXPS, views_ballot.approve_downrefs),
     url(r'^%(name)s/edit/makelastcall/$' % settings.URL_REGEXPS, views_ballot.make_last_call),
-    url(r'^%(name)s/edit/urls/$' % settings.URL_REGEXPS, views_draft.edit_document_urls),
+    url(r'^%(name)s/edit/resources/$' % settings.URL_REGEXPS, views_draft.edit_doc_extresources),
     url(r'^%(name)s/edit/issueballot/irsg/$' % settings.URL_REGEXPS, views_ballot.issue_irsg_ballot),
     url(r'^%(name)s/edit/closeballot/irsg/$' % settings.URL_REGEXPS, views_ballot.close_irsg_ballot),
 
diff --git a/ietf/doc/views_draft.py b/ietf/doc/views_draft.py
index 9b025956e..f780bfc5e 100644
--- a/ietf/doc/views_draft.py
+++ b/ietf/doc/views_draft.py
@@ -14,7 +14,6 @@ from django.conf import settings
 from django.contrib import messages
 from django.contrib.auth.decorators import login_required
 from django.core.exceptions import ValidationError, ObjectDoesNotExist
-from django.core.validators import URLValidator
 from django.db.models import Q
 from django.http import HttpResponseRedirect, HttpResponseForbidden, Http404
 from django.shortcuts import render, get_object_or_404, redirect
@@ -43,11 +42,12 @@ from ietf.iesg.models import TelechatDate
 from ietf.ietfauth.utils import has_role, is_authorized_in_doc_stream, user_is_person, is_individual_draft_author
 from ietf.ietfauth.utils import role_required
 from ietf.message.models import Message
-from ietf.name.models import IntendedStdLevelName, DocTagName, StreamName, DocUrlTagName
+from ietf.name.models import IntendedStdLevelName, DocTagName, StreamName, ExtResourceName
 from ietf.person.fields import SearchableEmailField
 from ietf.person.models import Person, Email
 from ietf.utils.mail import send_mail, send_mail_message, on_behalf_of
 from ietf.utils.textupload import get_cleaned_text_file_content
+from ietf.utils.validators import validate_external_resource_value
 from ietf.utils import log
 from ietf.mailtrigger.utils import gather_address_lists
 
@@ -1177,42 +1177,46 @@ def edit_consensus(request, name):
                               },
                           )
 
-def edit_document_urls(request, name):
-    class DocumentUrlForm(forms.Form):
-        urls = forms.CharField(widget=forms.Textarea, label="Additional URLs", required=False,
-            help_text=("Format: 'tag https://site/path (Optional description)'."
-                " Separate multiple entries with newline. Prefer HTTPS URLs where possible.") )
 
-        def clean_urls(self):
-            lines = [x.strip() for x in self.cleaned_data["urls"].splitlines() if x.strip()]
-            url_validator = URLValidator()
+def edit_doc_extresources(request, name):
+    class DocExtResourceForm(forms.Form):
+        resources = forms.CharField(widget=forms.Textarea, label="Additional Resources", required=False,
+            help_text=("Format: 'tag value (Optional description)'."
+                " Separate multiple entries with newline. When the value is a URL, use https:// where possible.") )
+
+        def clean_resources(self):
+            lines = [x.strip() for x in self.cleaned_data["resources"].splitlines() if x.strip()]
             errors = []
             for l in lines:
                 parts = l.split()
                 if len(parts) == 1:
-                    errors.append("Too few fields: Expected at least url and tag: '%s'" % l)
+                    errors.append("Too few fields: Expected at least tag and value: '%s'" % l)
                 elif len(parts) >= 2:
-                    tag = parts[0]
-                    url = parts[1]
+                    name_slug = parts[0]
                     try:
-                        url_validator(url)
-                    except ValidationError as e:
-                        errors.append(e)
-                    try:
-                        DocUrlTagName.objects.get(slug=tag)
+                        name = ExtResourceName.objects.get(slug=name_slug)
                     except ObjectDoesNotExist:
-                        errors.append("Bad tag in '%s': Expected one of %s" % (l, ', '.join([ o.slug for o in DocUrlTagName.objects.all() ])))
+                        errors.append("Bad tag in '%s': Expected one of %s" % (l, ', '.join([ o.slug for o in ExtResourceName.objects.all() ])))
+                        continue
+                    value = parts[1]
+                    try:
+                        validate_external_resource_value(name, value)
+                    except ValidationError as e:
+                        e.message += " : " + value
+                        errors.append(e)
             if errors:
                 raise ValidationError(errors)
             return lines
 
-    def format_urls(urls, fs="\n"):
+    def format_resources(resources, fs="\n"):
         res = []
-        for u in urls:
-            if u.desc:
-                res.append("%s %s (%s)" % (u.tag.slug, u.url, u.desc.strip('()')))
+        for r in resources:
+            if r.display_name:
+                res.append("%s %s (%s)" % (r.name.slug, r.value, r.display_name.strip('()')))
             else:
-                res.append("%s %s" % (u.tag.slug, u.url))
+                res.append("%s %s" % (r.name.slug, r.value)) 
+                # TODO: This is likely problematic if value has spaces. How then to delineate value and display_name? Perhaps in the short term move to comma or pipe separation.
+                # Might be better to shift to a formset instead of parsing these lines.
         return fs.join(res)
 
     doc = get_object_or_404(Document, name=name)
@@ -1222,37 +1226,39 @@ def edit_document_urls(request, name):
             or is_individual_draft_author(request.user, doc)):
         return HttpResponseForbidden("You do not have the necessary permissions to view this page")
 
-    old_urls = format_urls(doc.documenturl_set.all())
+    old_resources = format_resources(doc.docextresource_set.all())
 
     if request.method == 'POST':
-        form = DocumentUrlForm(request.POST)
+        form = DocExtResourceForm(request.POST)
         if form.is_valid():
-            old_urls = sorted(old_urls.splitlines())
-            new_urls = sorted(form.cleaned_data['urls'])
-            if old_urls != new_urls:
-                doc.documenturl_set.all().delete()
-                for u in new_urls:
+            old_resources = sorted(old_resources.splitlines())
+            new_resources = sorted(form.cleaned_data['resources'])
+            if old_resources != new_resources:
+                doc.docextresource_set.all().delete()
+                for u in new_resources:
                     parts = u.split(None, 2)
-                    tag = parts[0]
-                    url = parts[1]
-                    desc = ' '.join(parts[2:]).strip('()')
-                    doc.documenturl_set.create(url=url, tag_id=tag, desc=desc)
-                    new_urls = format_urls(doc.documenturl_set.all())
-                    e = DocEvent(doc=doc, rev=doc.rev, by=request.user.person, type='changed_document')
-                    e.desc = "Changed document URLs from:\n\n%s\n\nto:\n\n%s" % (old_urls, new_urls)
-                    e.save()
-                    doc.save_with_history([e])
-                messages.success(request,"Document URLs updated.")
+                    name = parts[0]
+                    value = parts[1]
+                    display_name = ' '.join(parts[2:]).strip('()')
+                    doc.docextresource_set.create(value=value, name_id=name, display_name=display_name)
+                new_resources = format_resources(doc.docextresource_set.all())
+                e = DocEvent(doc=doc, rev=doc.rev, by=request.user.person, type='changed_document')
+                e.desc = "Changed document external resources from:\n\n%s\n\nto:\n\n%s" % (old_resources, new_resources)
+                e.save()
+                doc.save_with_history([e])
+                messages.success(request,"Document resources updated.")
             else:
-                messages.info(request,"No change in Document URLs.")
+                messages.info(request,"No change in Document resources.")
             return redirect('ietf.doc.views_doc.document_main', name=doc.name)
     else:
-        form = DocumentUrlForm(initial={'urls': old_urls, })
+        form = DocExtResourceForm(initial={'resources': old_resources, })
 
-    info = "Valid tags:<br><br> %s" % ', '.join([ o.slug for o in DocUrlTagName.objects.all() ])
-    title = "Additional document URLs"
+    info = "Valid tags:<br><br> %s" % ', '.join([ o.slug for o in ExtResourceName.objects.all().order_by('slug') ])
+    # May need to explain the tags more - probably more reason to move to a formset.
+    title = "Additional document resources"
     return render(request, 'doc/edit_field.html',dict(doc=doc, form=form, title=title, info=info) )
 
+
 def request_publication(request, name):
     """Request publication by RFC Editor for a document which hasn't
     been through the IESG ballot process."""
diff --git a/ietf/group/admin.py b/ietf/group/admin.py
index a37741d4f..fda95d968 100644
--- a/ietf/group/admin.py
+++ b/ietf/group/admin.py
@@ -18,7 +18,9 @@ from django.utils.translation import ugettext as _
 
 from ietf.group.models import (Group, GroupFeatures, GroupHistory, GroupEvent, GroupURL, GroupMilestone,
     GroupMilestoneHistory, GroupStateTransitions, Role, RoleHistory, ChangeStateGroupEvent,
-    MilestoneGroupEvent, )
+    MilestoneGroupEvent, GroupExtResource, )
+
+from ietf.utils.validators import validate_external_resource_value
 
 class RoleInline(admin.TabularInline):
     model = Role
@@ -203,3 +205,14 @@ class MilestoneGroupEventAdmin(admin.ModelAdmin):
     list_filter = ['time']
     raw_id_fields = ['group', 'by', 'milestone']
 admin.site.register(MilestoneGroupEvent, MilestoneGroupEventAdmin)
+
+class GroupExtResourceAdminForm(forms.ModelForm):
+    def clean(self):
+        validate_external_resource_value(self.cleaned_data['name'],self.cleaned_data['value'])
+
+class GroupExtResourceAdmin(admin.ModelAdmin):
+    form = GroupExtResourceAdminForm
+    list_display = ['id', 'group', 'name', 'display_name', 'value',]
+    search_fields = ['group__acronym', 'value', 'display_name', 'name__slug',]
+    raw_id_fields = ['group', ]
+admin.site.register(GroupExtResource, GroupExtResourceAdmin)
diff --git a/ietf/group/forms.py b/ietf/group/forms.py
index 1d16f601c..de721f56e 100644
--- a/ietf/group/forms.py
+++ b/ietf/group/forms.py
@@ -12,10 +12,11 @@ import debug      # pyflakes:ignore
 from django import forms
 from django.utils.html import mark_safe # type:ignore
 from django.db.models import F
+from django.core.exceptions import ValidationError, ObjectDoesNotExist
 
 # IETF imports
 from ietf.group.models import Group, GroupHistory, GroupStateName, GroupFeatures 
-from ietf.name.models import ReviewTypeName, RoleName
+from ietf.name.models import ReviewTypeName, RoleName, ExtResourceName
 from ietf.person.fields import SearchableEmailsField, PersonEmailChoiceField
 from ietf.person.models import Person, Email
 from ietf.review.models import ReviewerSettings, UnavailablePeriod, ReviewSecretarySettings
@@ -24,6 +25,7 @@ from ietf.review.utils import close_review_request_states
 from ietf.utils.textupload import get_cleaned_text_file_content
 #from ietf.utils.ordereddict import insert_after_in_ordered_dict
 from ietf.utils.fields import DatepickerDateField, MultiEmailField
+from ietf.utils.validators import validate_external_resource_value
 
 # --- Constants --------------------------------------------------------
 
@@ -65,6 +67,7 @@ class GroupForm(forms.Form):
     list_subscribe = forms.CharField(max_length=255, required=False)
     list_archive = forms.CharField(max_length=255, required=False)
     urls = forms.CharField(widget=forms.Textarea, label="Additional URLs", help_text="Format: https://site/path (Optional description). Separate multiple entries with newline. Prefer HTTPS URLs where possible.", required=False)
+    resources = forms.CharField(widget=forms.Textarea, label="Additional Resources", help_text="UPDATEME: Format: https://site/path (Optional description). Separate multiple entries with newline. Prefer HTTPS URLs where possible.", required=False)
     closing_note = forms.CharField(widget=forms.Textarea, label="Closing note", required=False)
 
     def __init__(self, *args, **kwargs):
@@ -129,6 +132,12 @@ class GroupForm(forms.Form):
             for f in keys:
                 if f != field and not (f == 'closing_note' and field == 'state'):
                     del self.fields[f]
+        if 'resources' in self.fields:
+            info =   "Format: 'tag value (Optional description)'. " \
+                   + "Separate multiple entries with newline. When the value is a URL, use https:// where possible.<br>" \
+                   + "Valid tags: %s" % ', '.join([ o.slug for o in ExtResourceName.objects.all().order_by('slug') ])
+            self.fields['resources'].help_text = mark_safe('<div>'+info+'</div>')
+
 
     def clean_acronym(self):
         # Changing the acronym of an already existing group will cause 404s all
@@ -188,6 +197,30 @@ class GroupForm(forms.Form):
     def clean_urls(self):
         return [x.strip() for x in self.cleaned_data["urls"].splitlines() if x.strip()]
 
+    def clean_resources(self):
+        lines = [x.strip() for x in self.cleaned_data["resources"].splitlines() if x.strip()]
+        errors = []
+        for l in lines:
+            parts = l.split()
+            if len(parts) == 1:
+                errors.append("Too few fields: Expected at least tag and value: '%s'" % l)
+            elif len(parts) >= 2:
+                name_slug = parts[0]
+                try:
+                    name = ExtResourceName.objects.get(slug=name_slug)
+                except ObjectDoesNotExist:
+                    errors.append("Bad tag in '%s': Expected one of %s" % (l, ', '.join([ o.slug for o in ExtResourceName.objects.all() ])))
+                    continue
+                value = parts[1]
+                try:
+                    validate_external_resource_value(name, value)
+                except ValidationError as e:
+                    e.message += " : " + value
+                    errors.append(e)
+        if errors:
+            raise ValidationError(errors)
+        return lines
+
     def clean_delegates(self):
         if len(self.cleaned_data["delegates"]) > MAX_GROUP_DELEGATES:
             raise forms.ValidationError("At most %s delegates can be appointed at the same time, please remove %s delegates." % (
diff --git a/ietf/group/migrations/0033_extres.py b/ietf/group/migrations/0033_extres.py
new file mode 100644
index 000000000..0f78a8bea
--- /dev/null
+++ b/ietf/group/migrations/0033_extres.py
@@ -0,0 +1,28 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.29 on 2020-04-15 10:20
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+import ietf.utils.models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('name', '0013_extres'),
+        ('group', '0032_add_meeting_seen_as_area'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='GroupExtResource',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('display_name', models.CharField(blank=True, default='', max_length=255)),
+                ('value', models.CharField(max_length=2083)),
+                ('group', ietf.utils.models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='group.Group')),
+                ('name', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='name.ExtResourceName')),
+            ],
+        ),
+    ]
diff --git a/ietf/group/migrations/0034_populate_groupextresources.py b/ietf/group/migrations/0034_populate_groupextresources.py
new file mode 100644
index 000000000..24b191b97
--- /dev/null
+++ b/ietf/group/migrations/0034_populate_groupextresources.py
@@ -0,0 +1,124 @@
+# Copyright The IETF Trust 2020, All Rights Reserved
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.29 on 2020-03-19 13:06
+from __future__ import unicode_literals
+
+import re
+
+import debug
+
+from collections import OrderedDict, Counter
+
+from django.db import migrations
+from django.core.exceptions import ValidationError
+
+
+from ietf.utils.validators import validate_external_resource_value
+
+name_map = {
+    "Issue.*":                "tracker",
+    ".*FAQ.*":                "faq",
+    ".*Area Web Page":        "webpage",
+    ".*Wiki":                 "wiki",
+    "Home Page":              "webpage",
+    "Slack.*":                "slack",
+    "Additional .* Web Page": "webpage",
+    "Additional .* Page":     "webpage",
+    "Yang catalog entry.*":   "yc_entry",
+    "Yang impact analysis.*": "yc_impact",
+    "GitHub":                 "github_repo",
+    "Github page":            "github_repo",
+    "GitHub repo.*":          "github_repo",
+    "Github repository.*":    "github_repo",
+    "GitHub notifications":   "github_notify",
+    "GitHub org.*":           "github_org",
+    "GitHub User.*":          "github_username",
+    "GitLab User":            "gitlab_username",
+    "GitLab User Name":       "gitlab_username",
+}
+
+# TODO: Consider dropping known bad links at this point
+#   " *https?://www.ietf.org/html.charters/*": None, # all these links are dead
+#   " *http://www.bell-labs.com/mailing-lists/pint": None, # dead link
+#   "http://www.ietf.org/wg/videos/mile-overview.html": None, # dead link
+#   " http://domen.uninett.no/~hta/ietf/notary-status.h": None,  # dead link
+#   " http://www.ERC.MsState.Edu/packetway": None, # dead link
+#   "mailarchive\\.ietf\\.org" : None,
+#   "bell-labs\\.com": None,
+#   "html\\.charters": None,
+#   "datatracker\\.ietf\\.org": None,
+#   etc.
+
+url_map = OrderedDict({
+   "https?://github\\.com": "github_repo",
+   "https?://trac\\.ietf\\.org/.*/wiki": "wiki",
+   "ietf\\.org.*/trac/wiki": "wiki",
+   "trac.*wiki": "wiki",
+   "www\\.ietf\\.org/mailman" : "mailing_list",
+   "www\\.ietf\\.org/mail-archive" : "mailing_list_archive",
+   "ietf\\.org/logs": "jabber_log",
+   "ietf\\.org/jabber/logs": "jabber_log",
+   "xmpp:.*?join": "jabber_room",
+   "https?://.*": "webpage"
+})
+
+def forward(apps, schema_editor):
+    GroupExtResource = apps.get_model('group', 'GroupExtResource')
+    ExtResourceName = apps.get_model('name', 'ExtResourceName')
+    GroupUrl = apps.get_model('group', 'GroupUrl')
+
+    stats = Counter()
+
+    for group_url in GroupUrl.objects.all():
+        match_found = False
+        for regext,slug in name_map.items():
+            if re.match(regext, group_url.name):
+                match_found = True
+                stats['mapped'] += 1
+                name = ExtResourceName.objects.get(slug=slug)
+                GroupExtResource.objects.create(group=group_url.group, name_id=slug, value=group_url.url, display_name=group_url.name) # TODO: validate this value against name.type
+                break
+        if not match_found:
+            for regext, slug in url_map.items():
+                group_url.url = group_url.url.strip()
+                if re.search(regext, group_url.url):
+                    match_found = True
+                    if slug:
+                        stats['mapped'] +=1
+                        name = ExtResourceName.objects.get(slug=slug)
+                        # Munge the URL if it's the first github repo match
+                        #  Remove "/tree/master" substring if it exists
+                        #  Remove trailing "/issues" substring if it exists
+                        #  Remove "/blob/master/.*" pattern if present
+                        if regext == "https?://github\\.com":
+                            group_url.url = group_url.url.replace("/tree/master","")
+                            group_url.url = re.sub('/issues$', '', group_url.url)
+                            group_url.url = re.sub('/blob/master.*$', '', group_url.url)
+                        try:
+                            validate_external_resource_value(name, group_url.url)
+                            GroupExtResource.objects.create(group=group_url.group, name=name, value=group_url.url, display_name=group_url.name) # TODO: validate this value against name.type
+                        except ValidationError as e: # pyflakes:ignore
+                            debug.show('("Failed validation:", group_url.url, e)')
+                            stats['failed_validation'] +=1
+                    else:
+                        stats['ignored'] +=1
+                    break
+        if not match_found:
+            debug.show('("Not Mapped:",group_url.group.acronym, group_url.name, group_url.url)')
+            stats['not_mapped'] += 1
+    print(stats)
+
+def reverse(apps, schema_editor):
+    GroupExtResource = apps.get_model('group', 'GroupExtResource')
+    GroupExtResource.objects.all().delete()
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('group', '0033_extres'),
+        ('name', '0014_populate_extres'),
+    ]
+
+    operations = [
+        migrations.RunPython(forward, reverse)
+    ]
diff --git a/ietf/group/models.py b/ietf/group/models.py
index 093f18be1..7293c3e1a 100644
--- a/ietf/group/models.py
+++ b/ietf/group/models.py
@@ -21,7 +21,7 @@ from simple_history.models import HistoricalRecords
 import debug                            # pyflakes:ignore
 
 from ietf.group.colors import fg_group_colors, bg_group_colors
-from ietf.name.models import GroupStateName, GroupTypeName, DocTagName, GroupMilestoneStateName, RoleName, AgendaTypeName
+from ietf.name.models import GroupStateName, GroupTypeName, DocTagName, GroupMilestoneStateName, RoleName, AgendaTypeName, ExtResourceName
 from ietf.person.models import Email, Person
 from ietf.utils.mail import formataddr, send_mail_text
 from ietf.utils import log
@@ -41,6 +41,7 @@ class GroupInfo(models.Model):
     comments = models.TextField(blank=True)
     meeting_seen_as_area = models.BooleanField(default=False, help_text='For meeting scheduling, should be considered an area meeting, even if the type is WG')
     
+
     unused_states = models.ManyToManyField('doc.State', help_text="Document states that have been disabled for the group.", blank=True)
     unused_tags = models.ManyToManyField(DocTagName, help_text="Document tags that have been disabled for the group.", blank=True)
 
@@ -260,6 +261,15 @@ class GroupURL(models.Model):
     def __str__(self):
         return u"%s (%s)" % (self.url, self.name)
 
+class GroupExtResource(models.Model):
+    group = ForeignKey(Group) # Should this really be to GroupInfo?
+    name = models.ForeignKey(ExtResourceName, on_delete=models.CASCADE)
+    display_name = models.CharField(max_length=255, default='', blank=True)
+    value = models.CharField(max_length=2083) # 2083 is the maximum legal URL length
+    def __str__(self):
+        priority = self.display_name or self.name.name
+        return u"%s (%s) %s" % (priority, self.name.slug, self.value)
+        
 class GroupMilestoneInfo(models.Model):
     group = ForeignKey(Group)
     # a group has two sets of milestones, current milestones
diff --git a/ietf/group/resources.py b/ietf/group/resources.py
index 8c119f7b8..509c6758e 100644
--- a/ietf/group/resources.py
+++ b/ietf/group/resources.py
@@ -13,7 +13,7 @@ from ietf import api
 
 from ietf.group.models import (Group, GroupStateTransitions, GroupMilestone, GroupHistory, # type: ignore
     GroupURL, Role, GroupEvent, RoleHistory, GroupMilestoneHistory, MilestoneGroupEvent,
-    ChangeStateGroupEvent, GroupFeatures, HistoricalGroupFeatures)
+    ChangeStateGroupEvent, GroupFeatures, HistoricalGroupFeatures, GroupExtResource)
 
 
 from ietf.person.resources import PersonResource
@@ -348,3 +348,23 @@ class HistoricalGroupFeaturesResource(ModelResource):
             "history_user": ALL_WITH_RELATIONS,
         }
 api.group.register(HistoricalGroupFeaturesResource())
+
+
+from ietf.name.resources import ExtResourceNameResource
+class GroupExtResourceResource(ModelResource):
+    group            = ToOneField(GroupResource, 'group')
+    name             = ToOneField(ExtResourceNameResource, 'name')
+    class Meta:
+        queryset = GroupExtResource.objects.all()
+        serializer = api.Serializer()
+        cache = SimpleCache()
+        resource_name = 'groupextresource'
+        ordering = ['id', ]
+        filtering = { 
+            "id": ALL,
+            "display_name": ALL,
+            "value": ALL,
+            "group": ALL_WITH_RELATIONS,
+            "name": ALL_WITH_RELATIONS,
+        }
+api.group.register(GroupExtResourceResource())
diff --git a/ietf/group/tests_info.py b/ietf/group/tests_info.py
index c9281d1e6..e2e510f60 100644
--- a/ietf/group/tests_info.py
+++ b/ietf/group/tests_info.py
@@ -610,7 +610,6 @@ class GroupEditTests(TestCase):
                                   list_email="mars@mail",
                                   list_subscribe="subscribe.mars",
                                   list_archive="archive.mars",
-                                  urls="http://mars.mars (MARS site)"
                                   ))
         self.assertEqual(r.status_code, 302)
 
@@ -624,8 +623,7 @@ class GroupEditTests(TestCase):
         self.assertEqual(group.list_email, "mars@mail")
         self.assertEqual(group.list_subscribe, "subscribe.mars")
         self.assertEqual(group.list_archive, "archive.mars")
-        self.assertEqual(group.groupurl_set.all()[0].url, "http://mars.mars")
-        self.assertEqual(group.groupurl_set.all()[0].name, "MARS site")
+
         self.assertTrue(os.path.exists(os.path.join(self.charter_dir, "%s-%s.txt" % (group.charter.canonical_name(), group.charter.rev))))
         self.assertEqual(len(outbox), 2)
         self.assertTrue('Personnel change' in outbox[0]['Subject'])
@@ -633,6 +631,46 @@ class GroupEditTests(TestCase):
             self.assertTrue(prefix+'@' in outbox[0]['To'])
         self.assertTrue(get_payload_text(outbox[0]).startswith('Sec Retary'))
 
+    def test_edit_extresources(self):
+        group = GroupFactory(acronym='mars',parent=GroupFactory(type_id='area'))
+        CharterFactory(group=group)
+
+        url = urlreverse('ietf.group.views.edit', kwargs=dict(group_type=group.type_id, acronym=group.acronym, action="edit", field="resources"))
+        login_testing_unauthorized(self, "secretary", url)
+
+        r = self.client.get(url)
+        self.assertEqual(r.status_code,200)
+        q = PyQuery(r.content)
+        self.assertEqual(len(q('form textarea[id=id_resources]')),1)
+
+        badlines = (
+            'github_repo https://github3.com/some/repo',
+            'github_notify  badaddr',
+            'website /not/a/good/url'
+            'notavalidtag blahblahblah'
+        )
+
+        for line in badlines:
+            r = self.client.post(url, dict(resources=line, submit="1"))
+            self.assertEqual(r.status_code, 200)
+            q = PyQuery(r.content)
+            self.assertTrue(q('.alert-danger'))
+
+        goodlines = """
+            github_repo https://github.com/some/repo Some display text
+            github_notify notify@example.com
+            github_username githubuser
+            website http://example.com/http/is/fine
+        """
+
+        r = self.client.post(url, dict(resources=goodlines, submit="1"))
+        self.assertEqual(r.status_code,302)
+        group = Group.objects.get(acronym=group.acronym)
+        self.assertEqual(group.latest_event(GroupEvent,type="info_changed").desc[:20], 'Resources changed to')
+        self.assertIn('github_username githubuser', group.latest_event(GroupEvent,type="info_changed").desc)
+        self.assertEqual(group.groupextresource_set.count(), 4)
+        self.assertEqual(group.groupextresource_set.get(name__slug='github_repo').display_name, 'Some display text')
+
 
     def test_edit_field(self):
         group = GroupFactory(acronym="mars")
diff --git a/ietf/group/views.py b/ietf/group/views.py
index d81be7bea..9a4e2c0e6 100644
--- a/ietf/group/views.py
+++ b/ietf/group/views.py
@@ -73,7 +73,7 @@ from ietf.group.forms import (GroupForm, StatusUpdateForm, ConcludeGroupForm, St
                               ManageReviewRequestForm, EmailOpenAssignmentsForm, ReviewerSettingsForm,
                               AddUnavailablePeriodForm, EndUnavailablePeriodForm, ReviewSecretarySettingsForm, )
 from ietf.group.mails import email_admin_re_charter, email_personnel_change, email_comment
-from ietf.group.models import ( Group, Role, GroupEvent, GroupStateTransitions, GroupURL,
+from ietf.group.models import ( Group, Role, GroupEvent, GroupStateTransitions,
                               ChangeStateGroupEvent, GroupFeatures )
 from ietf.group.utils import (get_charter_text, can_manage_group_type, 
                               milestone_reviewer_for_group_type, can_provide_status_update,
@@ -346,7 +346,7 @@ def active_wgs(request):
                     + list(sorted(roles(area, "pre-ad"), key=extract_last_name)))
 
         area.groups = Group.objects.filter(parent=area, type="wg", state="active").order_by("acronym")
-        area.urls = area.groupurl_set.all().order_by("name")
+        area.urls = area.groupextresource_set.all().order_by("name")
         for group in area.groups:
             group.chairs = sorted(roles(group, "chair"), key=extract_last_name)
             group.ad_out_of_area = group.ad_role() and group.ad_role().person not in [role.person for role in area.ads]
@@ -869,6 +869,17 @@ def edit(request, group_type=None, acronym=None, action="edit", field=None):
                 res.append(u.url)
         return fs.join(res)
 
+    def format_resources(resources, fs="\n"):
+        res = []
+        for r in resources:
+            if r.display_name:
+                res.append("%s %s (%s)" % (r.name.slug, r.value, r.display_name.strip('()')))
+            else:
+                res.append("%s %s" % (r.name.slug, r.value)) 
+                # TODO: This is likely problematic if value has spaces. How then to delineate value and display_name? Perhaps in the short term move to comma or pipe separation.
+                # Might be better to shift to a formset instead of parsing these lines.
+        return fs.join(res)
+
     def diff(attr, name):
         if field and attr != field:
             return
@@ -922,11 +933,6 @@ def edit(request, group_type=None, acronym=None, action="edit", field=None):
             else:
                 save_group_in_history(group)
 
-
-## XXX Remove after testing
-#             if action == "charter" and not group.charter:  # make sure we have a charter
-#                 group.charter = get_or_create_initial_charter(group, group_type)
-
             changes = []
 
             # update the attributes, keeping track of what we're doing
@@ -996,22 +1002,18 @@ def edit(request, group_type=None, acronym=None, action="edit", field=None):
                 personnel_change_text = "%s has updated %s personnel:\n\n" % (request.user.person.plain_name(), group.acronym.upper() ) + personnel_change_text
                 email_personnel_change(request, group, personnel_change_text, changed_personnel)
 
-            # update urls
-            if 'urls' in clean:
-                new_urls = clean['urls']
-                old_urls = format_urls(group.groupurl_set.order_by('url'), ", ")
-                if ", ".join(sorted(new_urls)) != old_urls:
-                    changes.append(('urls', new_urls, desc('Urls', ", ".join(sorted(new_urls)), old_urls)))
-                    group.groupurl_set.all().delete()
-                    # Add new ones
-                    for u in new_urls:
-                        m = re.search(r'(?P<url>[\w\d:#@%/;$()~_?\+-=\\\.&]+)( \((?P<name>.+)\))?', u)
-                        if m:
-                            if m.group('name'):
-                                url = GroupURL(url=m.group('url'), name=m.group('name'), group=group)
-                            else:
-                                url = GroupURL(url=m.group('url'), name='', group=group)
-                            url.save()
+            if 'resources' in clean:
+                old_resources = sorted(format_resources(group.groupextresource_set.all()).splitlines())
+                new_resources = sorted(clean['resources'])
+                if old_resources != new_resources:
+                    group.groupextresource_set.all().delete()
+                    for u in new_resources:
+                        parts = u.split(None, 2)
+                        name = parts[0]
+                        value = parts[1]
+                        display_name = ' '.join(parts[2:]).strip('()')
+                        group.groupextresource_set.create(value=value, name_id=name, display_name=display_name)
+                    changes.append(('resources', new_resources, desc('Resources', ", ".join(new_resources), ", ".join(old_resources))))
 
             group.time = datetime.datetime.now()
 
@@ -1064,7 +1066,7 @@ def edit(request, group_type=None, acronym=None, action="edit", field=None):
                         list_email=group.list_email if group.list_email else None,
                         list_subscribe=group.list_subscribe if group.list_subscribe else None,
                         list_archive=group.list_archive if group.list_archive else None,
-                        urls=format_urls(group.groupurl_set.all()),
+                        resources=format_resources(group.groupextresource_set.all()),
                         closing_note = closing_note,
                         )
 
diff --git a/ietf/ietfauth/tests.py b/ietf/ietfauth/tests.py
index 6aa9c9444..5ad13ff5b 100644
--- a/ietf/ietfauth/tests.py
+++ b/ietf/ietfauth/tests.py
@@ -664,6 +664,45 @@ class IetfAuthTests(TestCase):
             self.assertIn(" %s times" % count, body)
             self.assertIn(date, body)
 
+    def test_edit_person_extresources(self):
+        url = urlreverse('ietf.ietfauth.views.edit_person_externalresources')
+        person = PersonFactory()
+
+        r = self.client.get(url)
+        self.assertNotEqual(r.status_code, 200)
+
+        self.client.login(username=person.user.username,password=person.user.username+'+password')
+
+        r = self.client.get(url)
+        self.assertEqual(r.status_code,200)
+        q = PyQuery(r.content)
+        self.assertEqual(len(q('form textarea[id=id_resources]')),1)
+
+        badlines = (
+            'github_repo https://github3.com/some/repo',
+            'github_notify  badaddr',
+            'website /not/a/good/url'
+            'notavalidtag blahblahblah'
+        )
+
+        for line in badlines:
+            r = self.client.post(url, dict(resources=line, submit="1"))
+            self.assertEqual(r.status_code, 200)
+            q = PyQuery(r.content)
+            self.assertTrue(q('.alert-danger'))
+
+        goodlines = """
+            github_repo https://github.com/some/repo Some display text
+            github_notify notify@example.com
+            github_username githubuser
+            website http://example.com/http/is/fine
+        """
+
+        r = self.client.post(url, dict(resources=goodlines, submit="1"))
+        self.assertEqual(r.status_code,302)
+        self.assertEqual(person.personextresource_set.count(), 4)
+        self.assertEqual(person.personextresource_set.get(name__slug='github_repo').display_name, 'Some display text')
+
 
 class OpenIDConnectTests(TestCase):
     def request_matcher(self, request):
@@ -797,3 +836,4 @@ class OpenIDConnectTests(TestCase):
             # handler, causing later logging to become visible even if that wasn't intended.
             # Fail here if that happens.
             self.assertEqual(logging.root.handlers, [])
+
diff --git a/ietf/ietfauth/urls.py b/ietf/ietfauth/urls.py
index f31255542..12c749fbe 100644
--- a/ietf/ietfauth/urls.py
+++ b/ietf/ietfauth/urls.py
@@ -18,6 +18,7 @@ urlpatterns = [
         url(r'^logout/$', LogoutView.as_view(), name="django.contrib.auth.views.logout"),
         url(r'^password/$', views.change_password),
         url(r'^profile/$', views.profile),
+        url(r'^editexternalresources/$', views.edit_person_externalresources),
         url(r'^reset/$', views.password_reset),
         url(r'^reset/confirm/(?P<auth>[^/]+)/$', views.confirm_password_reset),
         url(r'^review/$', views.review_overview),
diff --git a/ietf/ietfauth/views.py b/ietf/ietfauth/views.py
index 915b977c4..234a7e200 100644
--- a/ietf/ietfauth/views.py
+++ b/ietf/ietfauth/views.py
@@ -67,12 +67,15 @@ from ietf.ietfauth.forms import ( RegistrationForm, PasswordForm, ResetPasswordF
 from ietf.ietfauth.htpasswd import update_htpasswd_file
 from ietf.ietfauth.utils import role_required, has_role
 from ietf.mailinglists.models import Subscribed, Whitelisted
+from ietf.name.models import ExtResourceName
 from ietf.person.models import Person, Email, Alias, PersonalApiKey, PERSON_API_KEY_VALUES
 from ietf.review.models import ReviewerSettings, ReviewWish, ReviewAssignment
 from ietf.review.utils import unavailable_periods_to_list, get_default_filter_re
 from ietf.doc.fields import SearchableDocumentField
 from ietf.utils.decorators import person_required
 from ietf.utils.mail import send_mail
+from ietf.utils.validators import validate_external_resource_value
+
 
 def index(request):
     return render(request, 'registration/index.html')
@@ -288,6 +291,79 @@ def profile(request):
         'settings':settings,
     })
 
+@login_required
+@person_required
+def edit_person_externalresources(request):
+    class PersonExtResourceForm(forms.Form):
+        resources = forms.CharField(widget=forms.Textarea, label="Additional Resources", required=False,
+            help_text=("Format: 'tag value (Optional description)'."
+                " Separate multiple entries with newline. When the value is a URL, use https:// where possible.") )
+
+        def clean_resources(self):
+            lines = [x.strip() for x in self.cleaned_data["resources"].splitlines() if x.strip()]
+            errors = []
+            for l in lines:
+                parts = l.split()
+                if len(parts) == 1:
+                    errors.append("Too few fields: Expected at least tag and value: '%s'" % l)
+                elif len(parts) >= 2:
+                    name_slug = parts[0]
+                    try:
+                        name = ExtResourceName.objects.get(slug=name_slug)
+                    except ObjectDoesNotExist:
+                        errors.append("Bad tag in '%s': Expected one of %s" % (l, ', '.join([ o.slug for o in ExtResourceName.objects.all() ])))
+                        continue
+                    value = parts[1]
+                    try:
+                        validate_external_resource_value(name, value)
+                    except ValidationError as e:
+                        e.message += " : " + value
+                        errors.append(e)
+            if errors:
+                raise ValidationError(errors)
+            return lines
+
+    def format_resources(resources, fs="\n"):
+        res = []
+        for r in resources:
+            if r.display_name:
+                res.append("%s %s (%s)" % (r.name.slug, r.value, r.display_name.strip('()')))
+            else:
+                res.append("%s %s" % (r.name.slug, r.value)) 
+                # TODO: This is likely problematic if value has spaces. How then to delineate value and display_name? Perhaps in the short term move to comma or pipe separation.
+                # Might be better to shift to a formset instead of parsing these lines.
+        return fs.join(res)
+
+    person = request.user.person
+
+    old_resources = format_resources(person.personextresource_set.all())
+
+    if request.method == 'POST':
+        form = PersonExtResourceForm(request.POST)
+        if form.is_valid():
+            old_resources = sorted(old_resources.splitlines())
+            new_resources = sorted(form.cleaned_data['resources'])
+            if old_resources != new_resources:
+                person.personextresource_set.all().delete()
+                for u in new_resources:
+                    parts = u.split(None, 2)
+                    name = parts[0]
+                    value = parts[1]
+                    display_name = ' '.join(parts[2:]).strip('()')
+                    person.personextresource_set.create(value=value, name_id=name, display_name=display_name)
+                new_resources = format_resources(person.personextresource_set.all())
+                messages.success(request,"Person resources updated.")
+            else:
+                messages.info(request,"No change in Person resources.")
+            return redirect('ietf.ietfauth.views.profile')
+    else:
+        form = PersonExtResourceForm(initial={'resources': old_resources, })
+
+    info = "Valid tags:<br><br> %s" % ', '.join([ o.slug for o in ExtResourceName.objects.all().order_by('slug') ])
+    # May need to explain the tags more - probably more reason to move to a formset.
+    title = "Additional person resources"
+    return render(request, 'ietfauth/edit_field.html',dict(person=person, form=form, title=title, info=info) )
+
 def confirm_new_email(request, auth):
     try:
         username, email = django.core.signing.loads(auth, salt="add_email", max_age=settings.DAYS_TO_EXPIRE_REGISTRATION_LINK * 24 * 60 * 60)
diff --git a/ietf/name/admin.py b/ietf/name/admin.py
index 8c7660132..8462bddeb 100644
--- a/ietf/name/admin.py
+++ b/ietf/name/admin.py
@@ -10,7 +10,9 @@ from ietf.name.models import (
     LiaisonStatementState, LiaisonStatementTagName, MeetingTypeName, NomineePositionStateName,
     ReviewRequestStateName, ReviewResultName, ReviewTypeName, RoleName, RoomResourceName,
     SessionStatusName, StdLevelName, StreamName, TimeSlotTypeName, TopicAudienceName,
-    DocUrlTagName, ReviewAssignmentStateName, ReviewerQueuePolicyName, TimerangeName)
+    DocUrlTagName, ReviewAssignmentStateName, ReviewerQueuePolicyName, TimerangeName,
+    ExtResourceName, ExtResourceTypeName, )
+
 
 from ietf.stats.models import CountryAlias
 
@@ -46,6 +48,10 @@ class ImportantDateNameAdmin(NameAdmin):
     ordering = ('-used','default_offset_days',)
 admin.site.register(ImportantDateName,ImportantDateNameAdmin)
 
+class ExtResourceNameAdmin(NameAdmin):
+    list_display = ["slug", "name", "type", "desc", "used",]
+admin.site.register(ExtResourceName,ExtResourceNameAdmin)
+
 admin.site.register(AgendaTypeName, NameAdmin)
 admin.site.register(BallotPositionName, NameAdmin)
 admin.site.register(ConstraintName, NameAdmin)
@@ -82,3 +88,4 @@ admin.site.register(TimeSlotTypeName, NameAdmin)
 admin.site.register(TimerangeName, NameAdmin)
 admin.site.register(TopicAudienceName, NameAdmin)
 admin.site.register(DocUrlTagName, NameAdmin)
+admin.site.register(ExtResourceTypeName, NameAdmin)
diff --git a/ietf/name/fixtures/names.json b/ietf/name/fixtures/names.json
index f9e97f684..5ce092978 100644
--- a/ietf/name/fixtures/names.json
+++ b/ietf/name/fixtures/names.json
@@ -1,14683 +1,14783 @@
 [
-  {
-    "fields": {
-      "content": "{% autoescape off %}{{ assigner.ascii }} has assigned {{ reviewer.person.ascii }} as a reviewer for this document.\r\n\r\n{% if prev_team_reviews %}This team has completed other reviews of this document:{% endif %}{% for assignment in prev_team_reviews %}\r\n- {{ assignment.completed_on }} {{ assignment.reviewer.person.ascii }} -{% if assignment.reviewed_rev %}{{ assignment.reviewed_rev }}{% else %}{{ assignment.review_request.requested_rev }}{% endif %} {{ assignment.result.name }}  \r\n{% endfor %}{% endautoescape %}",
-      "group": null,
-      "path": "/group/defaults/email/review_assigned.txt",
-      "title": "Default template for review assignment email",
-      "type": "django",
-      "variables": ""
-    },
-    "model": "dbtemplate.dbtemplate",
-    "pk": 354
-  },
-  {
-    "fields": {
-      "doc_type": "charter",
-      "name": "Ready for external review",
-      "order": 1,
-      "positions": [
-        "yes",
-        "noobj",
-        "block",
-        "abstain",
-        "norecord"
-      ],
-      "question": "Is this charter ready for external review?",
-      "slug": "r-extrev",
-      "used": true
-    },
-    "model": "doc.ballottype",
-    "pk": 1
-  },
-  {
-    "fields": {
-      "doc_type": "charter",
-      "name": "Ready w/o external review",
-      "order": 2,
-      "positions": [
-        "yes",
-        "noobj",
-        "block",
-        "abstain",
-        "norecord"
-      ],
-      "question": "Is this charter ready for external review? Is this charter ready for approval without external review?",
-      "slug": "r-wo-ext",
-      "used": true
-    },
-    "model": "doc.ballottype",
-    "pk": 2
-  },
-  {
-    "fields": {
-      "doc_type": "charter",
-      "name": "Approve",
-      "order": 3,
-      "positions": [
-        "yes",
-        "noobj",
-        "block",
-        "abstain",
-        "norecord"
-      ],
-      "question": "Do we approve of this charter?",
-      "slug": "approve",
-      "used": true
-    },
-    "model": "doc.ballottype",
-    "pk": 3
-  },
-  {
-    "fields": {
-      "doc_type": "draft",
-      "name": "Approve",
-      "order": 1,
-      "positions": [
-        "yes",
-        "noobj",
-        "discuss",
-        "abstain",
-        "recuse",
-        "norecord"
-      ],
-      "question": "",
-      "slug": "approve",
-      "used": true
-    },
-    "model": "doc.ballottype",
-    "pk": 4
-  },
-  {
-    "fields": {
-      "doc_type": "conflrev",
-      "name": "Approve",
-      "order": 0,
-      "positions": [
-        "yes",
-        "noobj",
-        "discuss",
-        "abstain",
-        "recuse",
-        "norecord"
-      ],
-      "question": "Is this the correct conflict review response?",
-      "slug": "conflrev",
-      "used": true
-    },
-    "model": "doc.ballottype",
-    "pk": 5
-  },
-  {
-    "fields": {
-      "doc_type": "statchg",
-      "name": "Approve",
-      "order": 0,
-      "positions": [
-        "yes",
-        "noobj",
-        "discuss",
-        "abstain",
-        "recuse",
-        "norecord"
-      ],
-      "question": "Do we approve these RFC status changes?",
-      "slug": "statchg",
-      "used": true
-    },
-    "model": "doc.ballottype",
-    "pk": 6
-  },
-  {
-    "fields": {
-      "doc_type": "draft",
-      "name": "IRSG Approve",
-      "order": 0,
-      "positions": [
-        "moretime",
-        "notready",
-        "yes",
-        "noobj",
-        "recuse"
-      ],
-      "question": "Is this draft ready for publication in the IRTF stream?",
-      "slug": "irsg-approve",
-      "used": true
-    },
-    "model": "doc.ballottype",
-    "pk": 7
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Active",
-      "next_states": [],
-      "order": 1,
-      "slug": "active",
-      "type": "draft",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 1
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Expired",
-      "next_states": [],
-      "order": 2,
-      "slug": "expired",
-      "type": "draft",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 2
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "RFC",
-      "next_states": [],
-      "order": 3,
-      "slug": "rfc",
-      "type": "draft",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 3
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Replaced",
-      "next_states": [],
-      "order": 4,
-      "slug": "repl",
-      "type": "draft",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 4
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Withdrawn by Submitter",
-      "next_states": [],
-      "order": 5,
-      "slug": "auth-rm",
-      "type": "draft",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 5
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Withdrawn by IETF",
-      "next_states": [],
-      "order": 6,
-      "slug": "ietf-rm",
-      "type": "draft",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 6
-  },
-  {
-    "fields": {
-      "desc": "The ID has been published as an RFC.",
-      "name": "RFC Published",
-      "next_states": [
-        8
-      ],
-      "order": 32,
-      "slug": "pub",
-      "type": "draft-iesg",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 7
-  },
-  {
-    "fields": {
-      "desc": "Document is \"dead\" and is no longer being tracked. (E.g., it has been replaced by another document with a different name, it has been withdrawn, etc.)",
-      "name": "Dead",
-      "next_states": [
-        16
-      ],
-      "order": 99,
-      "slug": "dead",
-      "type": "draft-iesg",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 8
-  },
-  {
-    "fields": {
-      "desc": "The IESG has approved the document for publication, but the Secretariat has not yet sent out on official approval message.",
-      "name": "Approved-announcement to be sent",
-      "next_states": [
-        10
-      ],
-      "order": 27,
-      "slug": "approved",
-      "type": "draft-iesg",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 9
-  },
-  {
-    "fields": {
-      "desc": "The IESG has approved the document for publication, and the Secretariat has sent out the official approval message to the RFC editor.",
-      "name": "Approved-announcement sent",
-      "next_states": [
-        17
-      ],
-      "order": 30,
-      "slug": "ann",
-      "type": "draft-iesg",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 10
-  },
-  {
-    "fields": {
-      "desc": "An AD is aware of the document and has chosen to place the document in a separate state in order to keep a closer eye on it (for whatever reason). Documents in this state are still not being actively tracked in the sense that no formal request has been made to publish or advance the document. The sole difference between this state and \"I-D Exists\" is that an AD has chosen to put it in a separate state, to make it easier to keep track of (for the AD's own reasons).",
-      "name": "AD is watching",
-      "next_states": [
-        16
-      ],
-      "order": 42,
-      "slug": "watching",
-      "type": "draft-iesg",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 11
-  },
-  {
-    "fields": {
-      "desc": "The document is now (finally!) being formally reviewed by the entire IESG. Documents are discussed in email or during a bi-weekly IESG telechat. In this phase, each AD reviews the document and airs any issues they may have. Unresolvable issues are documented as \"discuss\" comments that can be forwarded to the authors/WG. See the description of substates for additional details about the current state of the IESG discussion.",
-      "name": "IESG Evaluation",
-      "next_states": [
-        18,
-        9,
-        22
-      ],
-      "order": 20,
-      "slug": "iesg-eva",
-      "type": "draft-iesg",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 12
-  },
-  {
-    "fields": {
-      "desc": "A specific AD (e.g., the Area Advisor for the WG) has begun reviewing the document to verify that it is ready for advancement. The shepherding AD is responsible for doing any necessary review before starting an IETF Last Call or sending the document directly to the IESG as a whole.",
-      "name": "AD Evaluation",
-      "next_states": [
-        21,
-        14,
-        12,
-        11
-      ],
-      "order": 11,
-      "slug": "ad-eval",
-      "type": "draft-iesg",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 13
-  },
-  {
-    "fields": {
-      "desc": "The AD has requested that the Secretariat start an IETF Last Call, but the the actual Last Call message has not been sent yet.",
-      "name": "Last Call Requested",
-      "next_states": [
-        15
-      ],
-      "order": 15,
-      "slug": "lc-req",
-      "type": "draft-iesg",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 14
-  },
-  {
-    "fields": {
-      "desc": "The document is currently waiting for IETF Last Call to complete. Last Calls for WG documents typically last 2 weeks, those for individual submissions last 4 weeks.",
-      "name": "In Last Call",
-      "next_states": [
-        19,
-        20
-      ],
-      "order": 16,
-      "slug": "lc",
-      "type": "draft-iesg",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 15
-  },
-  {
-    "fields": {
-      "desc": "A formal request has been made to advance/publish the document, following the procedures in Section 7.5 of RFC 2418. The request could be from a WG chair, from an individual through the RFC Editor, etc. (The Secretariat (iesg-secretary@ietf.org) is copied on these requests to ensure that the request makes it into the ID tracker.) A document in this state has not (yet) been reviewed by an AD nor has any official action been taken on it yet (other than to note that its publication has been requested.",
-      "name": "Publication Requested",
-      "next_states": [
-        13,
-        11,
-        8
-      ],
-      "order": 10,
-      "slug": "pub-req",
-      "type": "draft-iesg",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 16
-  },
-  {
-    "fields": {
-      "desc": "The document is in the RFC editor Queue (as confirmed by http://www.rfc-editor.org/queue.html).",
-      "name": "RFC Ed Queue",
-      "next_states": [
-        7
-      ],
-      "order": 31,
-      "slug": "rfcqueue",
-      "type": "draft-iesg",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 17
-  },
-  {
-    "fields": {
-      "desc": "During a telechat, one or more ADs requested an additional 2 weeks to review the document. A defer is designed to be an exception mechanism, and can only be invoked once, the first time the document comes up for discussion during a telechat.",
-      "name": "IESG Evaluation - Defer",
-      "next_states": [
-        12
-      ],
-      "order": 21,
-      "slug": "defer",
-      "type": "draft-iesg",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 18
-  },
-  {
-    "fields": {
-      "desc": "Before a standards-track or BCP document is formally considered by the entire IESG, the AD must write up a protocol action. The protocol action is included in the approval message that the Secretariat sends out when the document is approved for publication as an RFC.",
-      "name": "Waiting for Writeup",
-      "next_states": [
-        20
-      ],
-      "order": 18,
-      "slug": "writeupw",
-      "type": "draft-iesg",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 19
-  },
-  {
-    "fields": {
-      "desc": "As a result of the IETF Last Call, comments may need to be responded to and a revision of the ID may be needed as well. The AD is responsible for verifying that all Last Call comments have been adequately addressed and that the (possibly revised) document is in the ID directory and ready for consideration by the IESG as a whole.",
-      "name": "Waiting for AD Go-Ahead",
-      "next_states": [
-        12
-      ],
-      "order": 19,
-      "slug": "goaheadw",
-      "type": "draft-iesg",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 20
-  },
-  {
-    "fields": {
-      "desc": "An AD sometimes asks for an external review by an outside party as part of evaluating whether a document is ready for advancement. MIBs, for example, are reviewed by the \"MIB doctors\". Other types of reviews may also be requested (e.g., security, operations impact, etc.). Documents stay in this state until the review is complete and possibly until the issues raised in the review are addressed. See the \"note\" field for specific details on the nature of the review.",
-      "name": "Expert Review",
-      "next_states": [
-        13
-      ],
-      "order": 12,
-      "slug": "review-e",
-      "type": "draft-iesg",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 21
-  },
-  {
-    "fields": {
-      "desc": "Do Not Publish: The IESG recommends against publishing the document, but the writeup explaining its reasoning has not yet been produced. DNPs apply primarily to individual submissions received through the RFC editor.  See the \"note\" field for more details on who has the action item.",
-      "name": "DNP-waiting for AD note",
-      "next_states": [
-        23
-      ],
-      "order": 33,
-      "slug": "nopubadw",
-      "type": "draft-iesg",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 22
-  },
-  {
-    "fields": {
-      "desc": "The IESG recommends against publishing the document, the writeup explaining its reasoning has been produced, but the Secretariat has not yet sent out the official \"do not publish\" recommendation message.",
-      "name": "DNP-announcement to be sent",
-      "next_states": [
-        8
-      ],
-      "order": 34,
-      "slug": "nopubanw",
-      "type": "draft-iesg",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 23
-  },
-  {
-    "fields": {
-      "desc": "Awaiting author action",
-      "name": "AUTH",
-      "next_states": [],
-      "order": 0,
-      "slug": "auth",
-      "type": "draft-rfceditor",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 24
-  },
-  {
-    "fields": {
-      "desc": "Awaiting final author approval",
-      "name": "AUTH48",
-      "next_states": [],
-      "order": 0,
-      "slug": "auth48",
-      "type": "draft-rfceditor",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 25
-  },
-  {
-    "fields": {
-      "desc": "Approved by the stream manager (e.g., IESG, IAB, IRSG, ISE), awaiting processing and publishing",
-      "name": "EDIT",
-      "next_states": [],
-      "order": 0,
-      "slug": "edit",
-      "type": "draft-rfceditor",
-      "used": false
-    },
-    "model": "doc.state",
-    "pk": 26
-  },
-  {
-    "fields": {
-      "desc": "Document has been edited, but is holding for completion of IANA actions",
-      "name": "IANA",
-      "next_states": [],
-      "order": 0,
-      "slug": "iana",
-      "type": "draft-rfceditor",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 27
-  },
-  {
-    "fields": {
-      "desc": "Awaiting IESG action",
-      "name": "IESG",
-      "next_states": [],
-      "order": 0,
-      "slug": "iesg",
-      "type": "draft-rfceditor",
-      "used": false
-    },
-    "model": "doc.state",
-    "pk": 28
-  },
-  {
-    "fields": {
-      "desc": "Independent Submission Review by the ISE ",
-      "name": "ISR",
-      "next_states": [],
-      "order": 0,
-      "slug": "isr",
-      "type": "draft-rfceditor",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 29
-  },
-  {
-    "fields": {
-      "desc": "Independent submission awaiting author action, or in discussion between author and ISE",
-      "name": "ISR-AUTH",
-      "next_states": [],
-      "order": 0,
-      "slug": "isr-auth",
-      "type": "draft-rfceditor",
-      "used": false
-    },
-    "model": "doc.state",
-    "pk": 30
-  },
-  {
-    "fields": {
-      "desc": "Holding for normative reference",
-      "name": "REF",
-      "next_states": [],
-      "order": 0,
-      "slug": "ref",
-      "type": "draft-rfceditor",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 31
-  },
-  {
-    "fields": {
-      "desc": "Awaiting final RFC Editor review before AUTH48",
-      "name": "RFC-EDITOR",
-      "next_states": [],
-      "order": 0,
-      "slug": "rfc-edit",
-      "type": "draft-rfceditor",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 32
-  },
-  {
-    "fields": {
-      "desc": "Time-out period during which the IESG reviews document for conflict/concurrence with other IETF working group work",
-      "name": "TO",
-      "next_states": [],
-      "order": 0,
-      "slug": "timeout",
-      "type": "draft-rfceditor",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 33
-  },
-  {
-    "fields": {
-      "desc": "Awaiting missing normative reference",
-      "name": "MISSREF",
-      "next_states": [],
-      "order": 0,
-      "slug": "missref",
-      "type": "draft-rfceditor",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 34
-  },
-  {
-    "fields": {
-      "desc": "<a href=\"http://tools.ietf.org/html/rfc6174#section-4.2.1\" target=\"_blank\">4.2.1. Call for Adoption by WG Issued</a>\n\n The \"Call for Adoption by WG Issued\" state should be used to indicate when an I-D is being considered for adoption by an IETF WG. An I-D that is in this state is actively being considered for adoption and has not yet achieved consensus, preference, or selection in the WG.\n\n This state may be used to describe an I-D that someone has asked a WG to consider for adoption, if the WG Chair has agreed with the request. This state may also be used to identify an I-D that a WG Chair asked an author to write specifically for consideration as a candidate WG item [WGDTSPEC], and/or an I-D that is listed as a 'candidate draft' in the WG's charter.\n\n Under normal conditions, it should not be possible for an I-D to be in the \"Call for Adoption by WG Issued\" state in more than one working group at the same time. This said, it is not uncommon for authors to \"shop\" their I-Ds to more than one WG at a time, with the hope of getting their documents adopted somewhere.\n\n After this state is implemented in the Datatracker, an I-D that is in the \"Call for Adoption by WG Issued\" state will not be able to be \"shopped\" to any other WG without the consent of the WG Chairs and the responsible ADs impacted by the shopping.\n\n Note that Figure 1 includes an arc leading from this state to outside of the WG state machine. This illustrates that some I-Ds that are considered do not get adopted as WG drafts. An I-D that is not adopted as a WG draft will transition out of the WG state machine and revert back to having no stream-specific state; however, the status change history log of the I-D will record that the I-D was previously in the \"Call for Adoption by WG Issued\" state.",
-      "name": "Call For Adoption By WG Issued",
-      "next_states": [
-        36,
-        37
-      ],
-      "order": 1,
-      "slug": "c-adopt",
-      "type": "draft-stream-ietf",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 35
-  },
-  {
-    "fields": {
-      "desc": "<a href=\"http://tools.ietf.org/html/rfc6174#section-4.2.2\" target=\"_blank\">4.2.2. Adopted by a WG</a>\n\n The \"Adopted by a WG\" state describes an individual submission I-D that an IETF WG has agreed to adopt as one of its WG drafts.\n\n WG Chairs who use this state will be able to clearly indicate when their WGs adopt individual submission I-Ds. This will facilitate the Datatracker's ability to correctly capture \"Replaces\" information for WG drafts and correct \"Replaced by\" information for individual submission I-Ds that have been replaced by WG drafts.\n\n This state is needed because the Datatracker uses the filename of an I-D as a key to search its database for status information about the I-D, and because the filename of a WG I-D is supposed to be different from the filename of an individual submission I-D. The filename of an individual submission I-D will typically be formatted as 'draft-author-wgname-topic-nn'.\n\n The filename of a WG document is supposed to be formatted as 'draft- ietf-wgname-topic-nn'.\n\n An individual I-D that is adopted by a WG may take weeks or months to be resubmitted by the author as a new (version-00) WG draft. If the \"Adopted by a WG\" state is not used, the Datatracker has no way to determine that an I-D has been adopted until a new version of the I-D is submitted to the WG by the author and until the I-D is approved for posting by a WG Chair.",
-      "name": "Adopted by a WG",
-      "next_states": [
-        38
-      ],
-      "order": 2,
-      "slug": "adopt-wg",
-      "type": "draft-stream-ietf",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 36
-  },
-  {
-    "fields": {
-      "desc": "<a href=\"http://tools.ietf.org/html/rfc6174#section-4.2.3\" target=\"_blank\">4.2.3. Adopted for WG Info Only</a>\n\n The \"Adopted for WG Info Only\" state describes a document that contains useful information for the WG that adopted it, but the document is not intended to be published as an RFC. The WG will not actively develop the contents of the I-D or progress it for publication as an RFC. The only purpose of the I-D is to provide information for internal use by the WG.",
-      "name": "Adopted for WG Info Only",
-      "next_states": [],
-      "order": 3,
-      "slug": "info",
-      "type": "draft-stream-ietf",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 37
-  },
-  {
-    "fields": {
-      "desc": "<a href=\"http://tools.ietf.org/html/rfc6174#section-4.2.4\" target=\"_blank\">4.2.4. WG Document</a>\n\n The \"WG Document\" state describes an I-D that has been adopted by an IETF WG and is being actively developed.\n\n A WG Chair may transition an I-D into the \"WG Document\" state at any time as long as the I-D is not being considered or developed in any other WG.\n\n Alternatively, WG Chairs may rely upon new functionality to be added to the Datatracker to automatically move version-00 drafts into the \"WG Document\" state as described in Section 4.1.\n\n Under normal conditions, it should not be possible for an I-D to be in the \"WG Document\" state in more than one WG at a time. This said, I-Ds may be transferred from one WG to another with the consent of the WG Chairs and the responsible ADs.",
-      "name": "WG Document",
-      "next_states": [
-        39,
-        40,
-        41,
-        43
-      ],
-      "order": 4,
-      "slug": "wg-doc",
-      "type": "draft-stream-ietf",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 38
-  },
-  {
-    "fields": {
-      "desc": "<a href=\"http://tools.ietf.org/html/rfc6174#section-4.2.5\" target=\"_blank\">4.2.5. Parked WG Document</a>\n\n A \"Parked WG Document\" is an I-D that has lost its author or editor, is waiting for another document to be written or for a review to be completed, or cannot be progressed by the working group for some other reason.\n\n Some of the annotation tags described in Section 4.3 may be used in conjunction with this state to indicate why an I-D has been parked, and/or what may need to happen for the I-D to be un-parked.\n\n Parking a WG draft will not prevent it from expiring; however, this state can be used to indicate why the I-D has stopped progressing in the WG.\n\n A \"Parked WG Document\" that is not expired may be transferred from one WG to another with the consent of the WG Chairs and the responsible ADs.",
-      "name": "Parked WG Document",
-      "next_states": [
-        38
-      ],
-      "order": 5,
-      "slug": "parked",
-      "type": "draft-stream-ietf",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 39
-  },
-  {
-    "fields": {
-      "desc": "<a href=\"http://tools.ietf.org/html/rfc6174#section-4.2.6\" target=\"_blank\">4.2.6. Dead WG Document</a>\n\n A \"Dead WG Document\" is an I-D that has been abandoned. Note that 'Dead' is not always a final state for a WG I-D. If consensus is subsequently achieved, a \"Dead WG Document\" may be resurrected. A \"Dead WG Document\" that is not resurrected will eventually expire.\n\n Note that an I-D that is declared to be \"Dead\" in one WG and that is not expired may be transferred to a non-dead state in another WG with the consent of the WG Chairs and the responsible ADs.",
-      "name": "Dead WG Document",
-      "next_states": [
-        38
-      ],
-      "order": 6,
-      "slug": "dead",
-      "type": "draft-stream-ietf",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 40
-  },
-  {
-    "fields": {
-      "desc": "<a href=\"http://tools.ietf.org/html/rfc6174#section-4.2.7\" target=\"_blank\">4.2.7. In WG Last Call</a>\n\n A document \"In WG Last Call\" is an I-D for which a WG Last Call (WGLC) has been issued and is in progress.\n\n Note that conducting a WGLC is an optional part of the IETF WG process, per Section 7.4 of RFC 2418 [RFC2418].\n\n If a WG Chair decides to conduct a WGLC on an I-D, the \"In WG Last Call\" state can be used to track the progress of the WGLC. The Chair may configure the Datatracker to send a WGLC message to one or more mailing lists when the Chair moves the I-D into this state. The WG Chair may also be able to select a different set of mailing lists for a different document undergoing a WGLC; some documents may deserve coordination with other WGs.\n\n A WG I-D in this state should remain \"In WG Last Call\" until the WG Chair moves it to another state. The WG Chair may configure the Datatracker to send an e-mail after a specified period of time to remind or 'nudge' the Chair to conclude the WGLC and to determine the next state for the document.\n\n It is possible for one WGLC to lead into another WGLC for the same document. For example, an I-D that completed a WGLC as an \"Informational\" document may need another WGLC if a decision is taken to convert the I-D into a Standards Track document.",
-      "name": "In WG Last Call",
-      "next_states": [
-        38,
-        42,
-        43
-      ],
-      "order": 7,
-      "slug": "wg-lc",
-      "type": "draft-stream-ietf",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 41
-  },
-  {
-    "fields": {
-      "desc": "<a href=\"http://tools.ietf.org/html/rfc6174#section-4.2.8\" target=\"_blank\">4.2.8. Waiting for WG Chair Go-Ahead</a>\n\n A WG Chair may wish to place an I-D that receives a lot of comments during a WGLC into the \"Waiting for WG Chair Go-Ahead\" state. This state describes an I-D that has undergone a WGLC; however, the Chair is not yet ready to call consensus on the document.\n\n If comments from the WGLC need to be responded to, or a revision to the I-D is needed, the Chair may place an I-D into this state until all of the WGLC comments are adequately addressed and the (possibly revised) document is in the I-D repository.",
-      "name": "Waiting for WG Chair Go-Ahead",
-      "next_states": [
-        41,
-        43
-      ],
-      "order": 10,
-      "slug": "chair-w",
-      "type": "draft-stream-ietf",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 42
-  },
-  {
-    "fields": {
-      "desc": "<a href=\"http://tools.ietf.org/html/rfc6174#section-4.2.9\" target=\"_blank\">4.2.9. WG Consensus: Waiting for Writeup</a>\n\n A document in the \"WG Consensus: Waiting for Writeup\" state has essentially completed its development within the working group, and is nearly ready to be sent to the IESG for publication. The last thing to be done is the preparation of a protocol writeup by a Document Shepherd. The IESG requires that a document shepherd writeup be completed before publication of the I-D is requested. The IETF document shepherding process and the role of a WG Document Shepherd is described in RFC 4858 [RFC4858]\n\n A WG Chair may call consensus on an I-D without a formal WGLC and transition an I-D that was in the \"WG Document\" state directly into this state.\n\n The name of this state includes the words \"Waiting for Writeup\" because a good document shepherd writeup takes time to prepare.",
-      "name": "WG Consensus: Waiting for Write-Up",
-      "next_states": [
-        44
-      ],
-      "order": 11,
-      "slug": "writeupw",
-      "type": "draft-stream-ietf",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 43
-  },
-  {
-    "fields": {
-      "desc": "<a href=\"http://tools.ietf.org/html/rfc6174#section-4.2.10\" target=\"_blank\">4.2.10. Submitted to IESG for Publication</a>\n\n This state describes a WG document that has been submitted to the IESG for publication and that has not been sent back to the working group for revision.\n\n An I-D in this state may be under review by the IESG, it may have been approved and be in the RFC Editor's queue, or it may have been published as an RFC. Other possibilities exist too. The document may be \"Dead\" (in the IESG state machine) or in a \"Do Not Publish\" state.",
-      "name": "Submitted to IESG for Publication",
-      "next_states": [
-        38
-      ],
-      "order": 12,
-      "slug": "sub-pub",
-      "type": "draft-stream-ietf",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 44
-  },
-  {
-    "fields": {
-      "desc": "A document being considered for the IAB stream.",
-      "name": "Candidate IAB Document",
-      "next_states": [],
-      "order": 1,
-      "slug": "candidat",
-      "type": "draft-stream-iab",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 45
-  },
-  {
-    "fields": {
-      "desc": "This document has been adopted by the IAB and is being actively developed.",
-      "name": "Active IAB Document",
-      "next_states": [],
-      "order": 2,
-      "slug": "active",
-      "type": "draft-stream-iab",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 46
-  },
-  {
-    "fields": {
-      "desc": "This document has lost its author or editor, is waiting for another document to be written, or cannot currently be worked on by the IAB for some other reason. Annotations probably explain why this document is parked.",
-      "name": "Parked IAB Document",
-      "next_states": [],
-      "order": 3,
-      "slug": "parked",
-      "type": "draft-stream-iab",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 47
-  },
-  {
-    "fields": {
-      "desc": "This document is awaiting the IAB itself to come to internal consensus.",
-      "name": "IAB Review",
-      "next_states": [],
-      "order": 4,
-      "slug": "review-i",
-      "type": "draft-stream-iab",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 48
-  },
-  {
-    "fields": {
-      "desc": "This document has completed internal consensus within the IAB and is now under community review.",
-      "name": "Community Review",
-      "next_states": [],
-      "order": 5,
-      "slug": "review-c",
-      "type": "draft-stream-iab",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 49
-  },
-  {
-    "fields": {
-      "desc": "The consideration of this document is complete, but it has not yet been sent to the RFC Editor for publication (although that is going to happen soon).",
-      "name": "Approved by IAB, To Be Sent to RFC Editor",
-      "next_states": [],
-      "order": 6,
-      "slug": "approved",
-      "type": "draft-stream-iab",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 50
-  },
-  {
-    "fields": {
-      "desc": "The IAB does not expect to publish the document itself, but has passed it on to a different organization that might continue work on the document. The expectation is that the other organization will eventually publish the document.",
-      "name": "Sent to a Different Organization for Publication",
-      "next_states": [],
-      "order": 7,
-      "slug": "diff-org",
-      "type": "draft-stream-iab",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 51
-  },
-  {
-    "fields": {
-      "desc": "The IAB processing of this document is complete and it has been sent to the RFC Editor for publication. The document may be in the RFC Editor's queue, or it may have been published as an RFC; this state doesn't distinguish between different states occurring after the document has left the IAB.",
-      "name": "Sent to the RFC Editor",
-      "next_states": [],
-      "order": 8,
-      "slug": "rfc-edit",
-      "type": "draft-stream-iab",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 52
-  },
-  {
-    "fields": {
-      "desc": "The document has been published as an RFC.",
-      "name": "Published RFC",
-      "next_states": [],
-      "order": 9,
-      "slug": "pub",
-      "type": "draft-stream-iab",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 53
-  },
-  {
-    "fields": {
-      "desc": "This document was an active IAB document, but for some reason it is no longer being pursued for the IAB stream. It is possible that the document might be revived later, possibly in another stream.",
-      "name": "Dead IAB Document",
-      "next_states": [],
-      "order": 10,
-      "slug": "dead",
-      "type": "draft-stream-iab",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 54
-  },
-  {
-    "fields": {
-      "desc": "This document is under consideration in an RG for becoming an IRTF document. A document in this state does not imply any RG consensus and does not imply any precedence or selection.  It's simply a way to indicate that somebody has asked for a document to be considered for adoption by an RG.",
-      "name": "Candidate RG Document",
-      "next_states": [],
-      "order": 1,
-      "slug": "candidat",
-      "type": "draft-stream-irtf",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 55
-  },
-  {
-    "fields": {
-      "desc": "This document has been adopted by the RG and is being actively developed.",
-      "name": "Active RG Document",
-      "next_states": [],
-      "order": 2,
-      "slug": "active",
-      "type": "draft-stream-irtf",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 56
-  },
-  {
-    "fields": {
-      "desc": "This document has lost its author or editor, is waiting for another document to be written, or cannot currently be worked on by the RG for some other reason.",
-      "name": "Parked RG Document",
-      "next_states": [],
-      "order": 3,
-      "slug": "parked",
-      "type": "draft-stream-irtf",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 57
-  },
-  {
-    "fields": {
-      "desc": "The document is in its final review in the RG.",
-      "name": "In RG Last Call",
-      "next_states": [],
-      "order": 4,
-      "slug": "rg-lc",
-      "type": "draft-stream-irtf",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 58
-  },
-  {
-    "fields": {
-      "desc": "IRTF documents have document shepherds who help RG documents through the process after the RG has finished with the document.",
-      "name": "Waiting for Document Shepherd",
-      "next_states": [],
-      "order": 5,
-      "slug": "sheph-w",
-      "type": "draft-stream-irtf",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 59
-  },
-  {
-    "fields": {
-      "desc": "The IRTF Chair is meant to be performing some task such as sending a request for IESG Review.",
-      "name": "Waiting for IRTF Chair",
-      "next_states": [],
-      "order": 6,
-      "slug": "chair-w",
-      "type": "draft-stream-irtf",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 60
-  },
-  {
-    "fields": {
-      "desc": "The document shepherd has taken the document to the IRSG and solicited reviews from one or more IRSG members.",
-      "name": "Awaiting IRSG Reviews",
-      "next_states": [],
-      "order": 7,
-      "slug": "irsg-w",
-      "type": "draft-stream-irtf",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 61
-  },
-  {
-    "fields": {
-      "desc": "The IRSG is taking a poll on whether or not the document is ready to be published.",
-      "name": "In IRSG Poll",
-      "next_states": [],
-      "order": 8,
-      "slug": "irsgpoll",
-      "type": "draft-stream-irtf",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 62
-  },
-  {
-    "fields": {
-      "desc": "The IRSG has asked the IESG to do a review of the document, as described in RFC5742.",
-      "name": "In IESG Review",
-      "next_states": [],
-      "order": 9,
-      "slug": "iesg-rev",
-      "type": "draft-stream-irtf",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 63
-  },
-  {
-    "fields": {
-      "desc": "The RG processing of this document is complete and it has been sent to the RFC Editor for publication. The document may be in the RFC Editor's queue, or it may have been published as an RFC; this state doesn't distinguish between different states occurring after the document has left the RG.",
-      "name": "Sent to the RFC Editor",
-      "next_states": [],
-      "order": 10,
-      "slug": "rfc-edit",
-      "type": "draft-stream-irtf",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 64
-  },
-  {
-    "fields": {
-      "desc": "The document has been published as an RFC.",
-      "name": "Published RFC",
-      "next_states": [],
-      "order": 11,
-      "slug": "pub",
-      "type": "draft-stream-irtf",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 65
-  },
-  {
-    "fields": {
-      "desc": "The IESG has requested that the document be held pending further review, as specified in RFC 5742, and the IRTF has agreed to such a hold.",
-      "name": "Document on Hold Based On IESG Request",
-      "next_states": [],
-      "order": 12,
-      "slug": "iesghold",
-      "type": "draft-stream-irtf",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 66
-  },
-  {
-    "fields": {
-      "desc": "This document was an active IRTF document, but for some reason it is no longer being pursued for the IRTF stream. It is possible that the document might be revived later, possibly in another stream.",
-      "name": "Dead IRTF Document",
-      "next_states": [],
-      "order": 13,
-      "slug": "dead",
-      "type": "draft-stream-irtf",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 67
-  },
-  {
-    "fields": {
-      "desc": "The draft has been sent to the ISE with a request for publication.",
-      "name": "Submission Received",
-      "next_states": [],
-      "order": 1,
-      "slug": "receive",
-      "type": "draft-stream-ise",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 68
-  },
-  {
-    "fields": {
-      "desc": " The ISE is finding initial reviewers for the document.",
-      "name": "Finding Reviewers",
-      "next_states": [],
-      "order": 2,
-      "slug": "find-rev",
-      "type": "draft-stream-ise",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 69
-  },
-  {
-    "fields": {
-      "desc": "The ISE is actively working on the document.",
-      "name": "In ISE Review",
-      "next_states": [],
-      "order": 3,
-      "slug": "ise-rev",
-      "type": "draft-stream-ise",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 70
-  },
-  {
-    "fields": {
-      "desc": " One or more reviews have been sent to the author, and the ISE is awaiting response.",
-      "name": "Response to Review Needed",
-      "next_states": [],
-      "order": 4,
-      "slug": "need-res",
-      "type": "draft-stream-ise",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 71
-  },
-  {
-    "fields": {
-      "desc": "The ISE has asked the IESG to do a review of the document, as described in RFC5742.",
-      "name": "In IESG Review",
-      "next_states": [],
-      "order": 5,
-      "slug": "iesg-rev",
-      "type": "draft-stream-ise",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 72
-  },
-  {
-    "fields": {
-      "desc": "The ISE processing of this document is complete and it has been sent to the RFC Editor for publication. The document may be in the RFC Editor's queue, or it may have been published as an RFC; this state doesn't distinguish between different states occurring after the document has left the ISE.",
-      "name": "Sent to the RFC Editor",
-      "next_states": [],
-      "order": 6,
-      "slug": "rfc-edit",
-      "type": "draft-stream-ise",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 73
-  },
-  {
-    "fields": {
-      "desc": "The document has been published as an RFC.",
-      "name": "Published RFC",
-      "next_states": [],
-      "order": 7,
-      "slug": "pub",
-      "type": "draft-stream-ise",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 74
-  },
-  {
-    "fields": {
-      "desc": "This document was actively considered in the Independent Submission stream, but the ISE chose not to publish it.  It is possible that the document might be revived later. A document in this state may have a comment explaining the reasoning of the ISE (such as if the document was going to move to a different stream).",
-      "name": "No Longer In Independent Submission Stream",
-      "next_states": [],
-      "order": 8,
-      "slug": "dead",
-      "type": "draft-stream-ise",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 75
-  },
-  {
-    "fields": {
-      "desc": "The IESG has requested that the document be held pending further review, as specified in RFC 5742, and the ISE has agreed to such a hold.",
-      "name": "Document on Hold Based On IESG Request",
-      "next_states": [],
-      "order": 9,
-      "slug": "iesghold",
-      "type": "draft-stream-ise",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 76
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Active",
-      "next_states": [],
-      "order": 1,
-      "slug": "active",
-      "type": "slides",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 77
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Deleted",
-      "next_states": [],
-      "order": 4,
-      "slug": "deleted",
-      "type": "slides",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 78
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Active",
-      "next_states": [],
-      "order": 1,
-      "slug": "active",
-      "type": "minutes",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 79
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Deleted",
-      "next_states": [],
-      "order": 2,
-      "slug": "deleted",
-      "type": "minutes",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 80
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Active",
-      "next_states": [],
-      "order": 1,
-      "slug": "active",
-      "type": "agenda",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 81
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Deleted",
-      "next_states": [],
-      "order": 2,
-      "slug": "deleted",
-      "type": "agenda",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 82
-  },
-  {
-    "fields": {
-      "desc": "The proposed charter is not being considered at this time. A proposed charter will remain in this state until an AD moves it to Informal IESG review.",
-      "name": "Not currently under review",
-      "next_states": [],
-      "order": 0,
-      "slug": "notrev",
-      "type": "charter",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 83
-  },
-  {
-    "fields": {
-      "desc": "The proposed charter is not being considered at this time. A proposed charter will remain in this state until an AD moves it to Start Chartering/Rechartering (Internal IESG/IAB Review). This state is useful for drafting the charter, discussing with chairs, etc.",
-      "name": "Draft Charter",
-      "next_states": [],
-      "order": 0,
-      "slug": "infrev",
-      "type": "charter",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 84
-  },
-  {
-    "fields": {
-      "desc": "This is the state when you'd like to propose the charter / new charter. This state also allows you to ask whether external review can be skipped in ballot. After you select this state, the Secretariat takes over and drives the rest of the process.",
-      "name": "Start Chartering/Rechartering (Internal Steering Group/IAB Review)",
-      "next_states": [],
-      "order": 0,
-      "slug": "intrev",
-      "type": "charter",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 85
-  },
-  {
-    "fields": {
-      "desc": "This state is selected by the Secretariat (AD's, keep yer grubby mits off this!) when it has been decided that the charter needs external review.",
-      "name": "External Review (Message to Community, Selected by Secretariat)",
-      "next_states": [],
-      "order": 0,
-      "slug": "extrev",
-      "type": "charter",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 86
-  },
-  {
-    "fields": {
-      "desc": "This state is selected by the Secretariat (AD's, keep yer grubby mits off this!) when the IESG is reviewing the discussion from the external review of the proposed charter (this is similar to the IESG Evaluation state for a draft).",
-      "name": "IESG Review (Charter for Approval, Selected by Secretariat)",
-      "next_states": [],
-      "order": 0,
-      "slug": "iesgrev",
-      "type": "charter",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 87
-  },
-  {
-    "fields": {
-      "desc": "The charter is approved by the IESG.",
-      "name": "Approved",
-      "next_states": [],
-      "order": 0,
-      "slug": "approved",
-      "type": "charter",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 88
-  },
-  {
-    "fields": {
-      "desc": "Final approvals are complete",
-      "name": "AUTH48-DONE",
-      "next_states": [
-        74
-      ],
-      "order": 0,
-      "slug": "auth48done",
-      "type": "draft-rfceditor",
-      "used": false
-    },
-    "model": "doc.state",
-    "pk": 89
-  },
-  {
-    "fields": {
-      "desc": "A conflict review has been requested, but a shepherding AD has not yet been assigned",
-      "name": "Needs Shepherd",
-      "next_states": [
-        91,
-        98,
-        99
-      ],
-      "order": 1,
-      "slug": "needshep",
-      "type": "conflrev",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 90
-  },
-  {
-    "fields": {
-      "desc": "The sponsoring AD is reviewing the document and preparing a proposed response",
-      "name": "AD Review",
-      "next_states": [
-        92,
-        98,
-        99
-      ],
-      "order": 2,
-      "slug": "adrev",
-      "type": "conflrev",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 91
-  },
-  {
-    "fields": {
-      "desc": "The IESG is considering the proposed conflict review response",
-      "name": "IESG Evaluation",
-      "next_states": [
-        93,
-        94,
-        95,
-        98,
-        99
-      ],
-      "order": 3,
-      "slug": "iesgeval",
-      "type": "conflrev",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 92
-  },
-  {
-    "fields": {
-      "desc": "The evaluation of the proposed conflict review response has been deferred to the next telechat",
-      "name": "IESG Evaluation - Defer",
-      "next_states": [
-        92,
-        94,
-        95,
-        98,
-        99
-      ],
-      "order": 4,
-      "slug": "defer",
-      "type": "conflrev",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 93
-  },
-  {
-    "fields": {
-      "desc": "The IESG has approved the conflict review response (a request to not publish), but the secretariat has not yet sent the response",
-      "name": "Approved Request to Not Publish - announcement to be sent",
-      "next_states": [
-        96,
-        98
-      ],
-      "order": 7,
-      "slug": "appr-reqnopub-pend",
-      "type": "conflrev",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 94
-  },
-  {
-    "fields": {
-      "desc": "The IESG has approved the conflict review response, but the secretariat has not yet sent the response",
-      "name": "Approved No Problem - announcement to be sent",
-      "next_states": [
-        97,
-        98
-      ],
-      "order": 8,
-      "slug": "appr-noprob-pend",
-      "type": "conflrev",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 95
-  },
-  {
-    "fields": {
-      "desc": "The secretariat has delivered the IESG's approved conflict review response (a request to not publish) to the requester",
-      "name": "Approved Request to Not Publish - announcement sent",
-      "next_states": [
-        96
-      ],
-      "order": 9,
-      "slug": "appr-reqnopub-sent",
-      "type": "conflrev",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 96
-  },
-  {
-    "fields": {
-      "desc": "The secretariat has delivered the IESG's approved conflict review response to the requester",
-      "name": "Approved No Problem - announcement sent",
-      "next_states": [
-        97
-      ],
-      "order": 10,
-      "slug": "appr-noprob-sent",
-      "type": "conflrev",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 97
-  },
-  {
-    "fields": {
-      "desc": "The request for conflict review was withdrawn",
-      "name": "Withdrawn",
-      "next_states": [
-        90
-      ],
-      "order": 11,
-      "slug": "withdraw",
-      "type": "conflrev",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 98
-  },
-  {
-    "fields": {
-      "desc": "The conflict review has been abandoned",
-      "name": "Dead",
-      "next_states": [
-        90
-      ],
-      "order": 12,
-      "slug": "dead",
-      "type": "conflrev",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 99
-  },
-  {
-    "fields": {
-      "desc": "The IESG has approved the conflict review response (a request to not publish), but a point has been raised that should be cleared before moving to announcement to be sent",
-      "name": "Approved Request to Not Publish - point raised",
-      "next_states": [
-        94
-      ],
-      "order": 5,
-      "slug": "appr-reqnopub-pr",
-      "type": "conflrev",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 100
-  },
-  {
-    "fields": {
-      "desc": "The IESG has approved the conflict review response, but a point has been raised that should be cleared before proceeding to announcement to be sent",
-      "name": "Approved No Problem - point raised",
-      "next_states": [
-        95
-      ],
-      "order": 6,
-      "slug": "appr-noprob-pr",
-      "type": "conflrev",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 101
-  },
-  {
-    "fields": {
-      "desc": "A new document has been received by IANA, but no actions have been taken",
-      "name": "New Document",
-      "next_states": [],
-      "order": 1,
-      "slug": "newdoc",
-      "type": "draft-iana-action",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 102
-  },
-  {
-    "fields": {
-      "desc": "IANA is currently processing the actions for this document",
-      "name": "In Progress",
-      "next_states": [],
-      "order": 2,
-      "slug": "inprog",
-      "type": "draft-iana-action",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 103
-  },
-  {
-    "fields": {
-      "desc": "IANA is waiting on the document's authors to respond",
-      "name": "Waiting on Authors",
-      "next_states": [],
-      "order": 3,
-      "slug": "waitauth",
-      "type": "draft-iana-action",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 104
-  },
-  {
-    "fields": {
-      "desc": "IANA is waiting on the IETF Area Directors to respond",
-      "name": "Waiting on ADs",
-      "next_states": [],
-      "order": 4,
-      "slug": "waitad",
-      "type": "draft-iana-action",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 105
-  },
-  {
-    "fields": {
-      "desc": "IANA is waiting on the IETF Working Group Chairs to respond",
-      "name": "Waiting on WGC",
-      "next_states": [],
-      "order": 5,
-      "slug": "waitwgc",
-      "type": "draft-iana-action",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 106
-  },
-  {
-    "fields": {
-      "desc": "IANA has notified the RFC Editor that the actions have been completed",
-      "name": "Waiting on RFC Editor",
-      "next_states": [],
-      "order": 6,
-      "slug": "waitrfc",
-      "type": "draft-iana-action",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 107
-  },
-  {
-    "fields": {
-      "desc": "Request completed. The RFC Editor has acknowledged receipt of IANA's message that the actions have been completed",
-      "name": "RFC-Ed-Ack",
-      "next_states": [],
-      "order": 7,
-      "slug": "rfcedack",
-      "type": "draft-iana-action",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 108
-  },
-  {
-    "fields": {
-      "desc": "IANA has suspended work on the document",
-      "name": "On Hold",
-      "next_states": [],
-      "order": 8,
-      "slug": "onhold",
-      "type": "draft-iana-action",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 109
-  },
-  {
-    "fields": {
-      "desc": "Request completed. There were no IANA actions for this document",
-      "name": "No IANA Actions",
-      "next_states": [],
-      "order": 9,
-      "slug": "noic",
-      "type": "draft-iana-action",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 110
-  },
-  {
-    "fields": {
-      "desc": "Document has not yet been reviewed by IANA.",
-      "name": "IANA - Review Needed",
-      "next_states": [],
-      "order": 1,
-      "slug": "need-rev",
-      "type": "draft-iana-review",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 111
-  },
-  {
-    "fields": {
-      "desc": "Document requires IANA actions, and the IANA Considerations section indicates the details of the actions correctly.",
-      "name": "IANA OK - Actions Needed",
-      "next_states": [],
-      "order": 2,
-      "slug": "ok-act",
-      "type": "draft-iana-review",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 112
-  },
-  {
-    "fields": {
-      "desc": "Document requires no IANA action, and the IANA Considerations section indicates this correctly.",
-      "name": "IANA OK - No Actions Needed",
-      "next_states": [],
-      "order": 3,
-      "slug": "ok-noact",
-      "type": "draft-iana-review",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 113
-  },
-  {
-    "fields": {
-      "desc": "IANA has issues with the text of the IANA Considerations section of the document.",
-      "name": "IANA - Not OK",
-      "next_states": [],
-      "order": 4,
-      "slug": "not-ok",
-      "type": "draft-iana-review",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 114
-  },
-  {
-    "fields": {
-      "desc": "Document revision has changed after review by IANA.",
-      "name": "Version Changed - Review Needed",
-      "next_states": [],
-      "order": 5,
-      "slug": "changed",
-      "type": "draft-iana-review",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 115
-  },
-  {
-    "fields": {
-      "desc": "Final approvals are complete",
-      "name": "AUTH48-DONE",
-      "next_states": [],
-      "order": 0,
-      "slug": "auth48-done",
-      "type": "draft-rfceditor",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 116
-  },
-  {
-    "fields": {
-      "desc": "Approved by the stream manager (e.g., IESG, IAB, IRSG, ISE), awaiting processing and publishing",
-      "name": "EDIT",
-      "next_states": [],
-      "order": 0,
-      "slug": "edit",
-      "type": "draft-rfceditor",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 117
-  },
-  {
-    "fields": {
-      "desc": "RFC-Editor/IANA Registration Coordination",
-      "name": "IANA",
-      "next_states": [],
-      "order": 0,
-      "slug": "iana-crd",
-      "type": "draft-rfceditor",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 118
-  },
-  {
-    "fields": {
-      "desc": "Holding for IESG action",
-      "name": "IESG",
-      "next_states": [],
-      "order": 0,
-      "slug": "iesg",
-      "type": "draft-rfceditor",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 119
-  },
-  {
-    "fields": {
-      "desc": "Independent Submission awaiting author update, or in discussion between author and ISE",
-      "name": "ISR-AUTH",
-      "next_states": [],
-      "order": 0,
-      "slug": "isr-auth",
-      "type": "draft-rfceditor",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 120
-  },
-  {
-    "fields": {
-      "desc": "An RFC status change has been requested, but a shepherding AD has not yet been assigned",
-      "name": "Needs Shepherd",
-      "next_states": [
-        122,
-        129
-      ],
-      "order": 1,
-      "slug": "needshep",
-      "type": "statchg",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 121
-  },
-  {
-    "fields": {
-      "desc": "The sponsoring AD is preparing an RFC status change document",
-      "name": "AD Review",
-      "next_states": [
-        130,
-        123,
-        129
-      ],
-      "order": 2,
-      "slug": "adrev",
-      "type": "statchg",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 122
-  },
-  {
-    "fields": {
-      "desc": "The IESG is considering the proposed RFC status changes",
-      "name": "IESG Evaluation",
-      "next_states": [
-        124,
-        125,
-        126,
-        129
-      ],
-      "order": 6,
-      "slug": "iesgeval",
-      "type": "statchg",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 123
-  },
-  {
-    "fields": {
-      "desc": "The evaluation of the proposed RFC status changes have been deferred to the next telechat",
-      "name": "IESG Evaluation - Defer",
-      "next_states": [
-        123,
-        125,
-        126,
-        129
-      ],
-      "order": 7,
-      "slug": "defer",
-      "type": "statchg",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 124
-  },
-  {
-    "fields": {
-      "desc": "The IESG has approved the RFC status changes, but a point has been raised that should be cleared before proceeding to announcement to be sent",
-      "name": "Approved - point raised",
-      "next_states": [
-        126,
-        127
-      ],
-      "order": 8,
-      "slug": "appr-pr",
-      "type": "statchg",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 125
-  },
-  {
-    "fields": {
-      "desc": "The IESG has approved the RFC status changes, but the secretariat has not yet sent the announcement",
-      "name": "Approved - announcement to be sent",
-      "next_states": [
-        127
-      ],
-      "order": 9,
-      "slug": "appr-pend",
-      "type": "statchg",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 126
-  },
-  {
-    "fields": {
-      "desc": "The secretariat has announced the IESG's approved RFC status changes",
-      "name": "Approved - announcement sent",
-      "next_states": [],
-      "order": 10,
-      "slug": "appr-sent",
-      "type": "statchg",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 127
-  },
-  {
-    "fields": {
-      "desc": "The RFC status changes have been abandoned",
-      "name": "Dead",
-      "next_states": [
-        121
-      ],
-      "order": 11,
-      "slug": "dead",
-      "type": "statchg",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 129
-  },
-  {
-    "fields": {
-      "desc": "Last Call has been requested for this proposed status change",
-      "name": "Last Call Requested",
-      "next_states": [
-        131
-      ],
-      "order": 3,
-      "slug": "lc-req",
-      "type": "statchg",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 130
-  },
-  {
-    "fields": {
-      "desc": "This proposed status change is in IETF Last Call",
-      "name": "In Last Call",
-      "next_states": [
-        132
-      ],
-      "order": 4,
-      "slug": "in-lc",
-      "type": "statchg",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 131
-  },
-  {
-    "fields": {
-      "desc": "The AD is following up on IETF LC comments",
-      "name": "Waiting for AD Go-Ahead",
-      "next_states": [
-        123,
-        129
-      ],
-      "order": 5,
-      "slug": "goahead",
-      "type": "statchg",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 132
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Pending",
-      "next_states": [],
-      "order": 0,
-      "slug": "pending",
-      "type": "draft-rfceditor",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 133
-  },
-  {
-    "fields": {
-      "desc": "The document has been marked as a candidate for WG adoption by the WG Chair.  This state can be used before a call for adoption is issued (and the document is put in the \"Call For Adoption By WG Issued\" state), to indicate that the document is in the queue for a call for adoption, even if none has been issued yet.",
-      "name": "Candidate for WG Adoption",
-      "next_states": [
-        35
-      ],
-      "order": 0,
-      "slug": "wg-cand",
-      "type": "draft-stream-ietf",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 134
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Active",
-      "next_states": [],
-      "order": 0,
-      "slug": "active",
-      "type": "recording",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 135
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Deleted",
-      "next_states": [],
-      "order": 0,
-      "slug": "deleted",
-      "type": "recording",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 136
-  },
-  {
-    "fields": {
-      "desc": "This document is not active, but is available in the archives",
-      "name": "Archived",
-      "next_states": [],
-      "order": 3,
-      "slug": "archived",
-      "type": "slides",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 138
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Active",
-      "next_states": [],
-      "order": 0,
-      "slug": "active",
-      "type": "bluesheets",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 139
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Deleted",
-      "next_states": [],
-      "order": 0,
-      "slug": "deleted",
-      "type": "bluesheets",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 140
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Single Meeting",
-      "next_states": [],
-      "order": 0,
-      "slug": "single",
-      "type": "reuse_policy",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 141
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Multiple Meetings",
-      "next_states": [],
-      "order": 0,
-      "slug": "multiple",
-      "type": "reuse_policy",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 142
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Active",
-      "next_states": [],
-      "order": 1,
-      "slug": "active",
-      "type": "review",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 143
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Deleted",
-      "next_states": [],
-      "order": 2,
-      "slug": "deleted",
-      "type": "review",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 144
-  },
-  {
-    "fields": {
-      "desc": "In some areas, it can be desirable to wait for multiple interoperable implementations before progressing a draft to be an RFC, and in some WGs this is required.  This state should be entered after WG Last Call has completed.",
-      "name": "Waiting for Implementation",
-      "next_states": [],
-      "order": 8,
-      "slug": "waiting-for-implementation",
-      "type": "draft-stream-ietf",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 145
-  },
-  {
-    "fields": {
-      "desc": "Held by WG, see document history for details.",
-      "name": "Held by WG",
-      "next_states": [],
-      "order": 9,
-      "slug": "held-by-wg",
-      "type": "draft-stream-ietf",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 146
-  },
-  {
-    "fields": {
-      "desc": "Replaced",
-      "name": "Replaced",
-      "next_states": [],
-      "order": 0,
-      "slug": "repl",
-      "type": "draft-stream-iab",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 147
-  },
-  {
-    "fields": {
-      "desc": "Replaced",
-      "name": "Replaced",
-      "next_states": [],
-      "order": 0,
-      "slug": "repl",
-      "type": "draft-stream-ise",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 148
-  },
-  {
-    "fields": {
-      "desc": "Replaced",
-      "name": "Replaced",
-      "next_states": [],
-      "order": 0,
-      "slug": "repl",
-      "type": "draft-stream-irtf",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 149
-  },
-  {
-    "fields": {
-      "desc": "The IESG has not started processing this draft, or has stopped processing it without publicastion.",
-      "name": "I-D Exists",
-      "next_states": [
-        16,
-        11
-      ],
-      "order": 0,
-      "slug": "idexists",
-      "type": "draft-iesg",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 150
-  },
-  {
-    "fields": {
-      "desc": "One or more registries need experts assigned",
-      "name": "Need IANA Expert(s)",
-      "next_states": [],
-      "order": 0,
-      "slug": "need-experts",
-      "type": "draft-iana-experts",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 151
-  },
-  {
-    "fields": {
-      "desc": "One or more expert reviews have been assigned",
-      "name": "Reviews assigned",
-      "next_states": [],
-      "order": 1,
-      "slug": "reviews-assigned",
-      "type": "draft-iana-experts",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 152
-  },
-  {
-    "fields": {
-      "desc": "Some expert reviewers have identified issues",
-      "name": "Issues identified",
-      "next_states": [],
-      "order": 2,
-      "slug": "expert-issues",
-      "type": "draft-iana-experts",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 153
-  },
-  {
-    "fields": {
-      "desc": "All expert reviews have been completed with no blocking issues",
-      "name": "Expert Reviews OK",
-      "next_states": [],
-      "order": 2,
-      "slug": "reviewers-ok",
-      "type": "draft-iana-experts",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 154
-  },
-  {
-    "fields": {
-      "desc": "Tooling Issue; an update is needed to one or more of the tools in the publication pipeline before this document can be published",
-      "name": "TI",
-      "next_states": [],
-      "order": 0,
-      "slug": "tooling-issue",
-      "type": "draft-rfceditor",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 155
-  },
-  {
-    "fields": {
-      "desc": "IRSG Review",
-      "name": "IRSG Review",
-      "next_states": [],
-      "order": 0,
-      "slug": "irsg_review",
-      "type": "draft-stream-irtf",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 156
-  },
-  {
-    "fields": {
-      "desc": "This charter's group was replaced.",
-      "name": "Replaced",
-      "next_states": [],
-      "order": 0,
-      "slug": "replaced",
-      "type": "charter",
-      "used": true
-    },
-    "model": "doc.state",
-    "pk": 157
-  },
-  {
-    "fields": {
-      "label": "State"
-    },
-    "model": "doc.statetype",
-    "pk": "agenda"
-  },
-  {
-    "fields": {
-      "label": "State"
-    },
-    "model": "doc.statetype",
-    "pk": "bluesheets"
-  },
-  {
-    "fields": {
-      "label": "State"
-    },
-    "model": "doc.statetype",
-    "pk": "charter"
-  },
-  {
-    "fields": {
-      "label": "Conflict Review State"
-    },
-    "model": "doc.statetype",
-    "pk": "conflrev"
-  },
-  {
-    "fields": {
-      "label": "State"
-    },
-    "model": "doc.statetype",
-    "pk": "draft"
-  },
-  {
-    "fields": {
-      "label": "IANA state"
-    },
-    "model": "doc.statetype",
-    "pk": "draft-iana"
-  },
-  {
-    "fields": {
-      "label": "IANA Action state"
-    },
-    "model": "doc.statetype",
-    "pk": "draft-iana-action"
-  },
-  {
-    "fields": {
-      "label": "IANA Experts State"
-    },
-    "model": "doc.statetype",
-    "pk": "draft-iana-experts"
-  },
-  {
-    "fields": {
-      "label": "IANA Review state"
-    },
-    "model": "doc.statetype",
-    "pk": "draft-iana-review"
-  },
-  {
-    "fields": {
-      "label": "IESG state"
-    },
-    "model": "doc.statetype",
-    "pk": "draft-iesg"
-  },
-  {
-    "fields": {
-      "label": "RFC Editor state"
-    },
-    "model": "doc.statetype",
-    "pk": "draft-rfceditor"
-  },
-  {
-    "fields": {
-      "label": "IAB state"
-    },
-    "model": "doc.statetype",
-    "pk": "draft-stream-iab"
-  },
-  {
-    "fields": {
-      "label": "IETF WG state"
-    },
-    "model": "doc.statetype",
-    "pk": "draft-stream-ietf"
-  },
-  {
-    "fields": {
-      "label": "IRTF state"
-    },
-    "model": "doc.statetype",
-    "pk": "draft-stream-irtf"
-  },
-  {
-    "fields": {
-      "label": "ISE state"
-    },
-    "model": "doc.statetype",
-    "pk": "draft-stream-ise"
-  },
-  {
-    "fields": {
-      "label": "State"
-    },
-    "model": "doc.statetype",
-    "pk": "liai-att"
-  },
-  {
-    "fields": {
-      "label": "Liason Statement State"
-    },
-    "model": "doc.statetype",
-    "pk": "liaison"
-  },
-  {
-    "fields": {
-      "label": "State"
-    },
-    "model": "doc.statetype",
-    "pk": "minutes"
-  },
-  {
-    "fields": {
-      "label": "State"
-    },
-    "model": "doc.statetype",
-    "pk": "recording"
-  },
-  {
-    "fields": {
-      "label": "Policy"
-    },
-    "model": "doc.statetype",
-    "pk": "reuse_policy"
-  },
-  {
-    "fields": {
-      "label": "Review"
-    },
-    "model": "doc.statetype",
-    "pk": "review"
-  },
-  {
-    "fields": {
-      "label": "Shepherd's Writeup State"
-    },
-    "model": "doc.statetype",
-    "pk": "shepwrit"
-  },
-  {
-    "fields": {
-      "label": "State"
-    },
-    "model": "doc.statetype",
-    "pk": "slides"
-  },
-  {
-    "fields": {
-      "label": "RFC Status Change state"
-    },
-    "model": "doc.statetype",
-    "pk": "statchg"
-  },
-  {
-    "fields": {
-      "about_page": "ietf.group.views.group_about",
-      "acts_like_wg": false,
-      "admin_roles": "[\"chair\"]",
-      "agenda_type": "ietf",
-      "create_wiki": true,
-      "custom_group_roles": false,
-      "customize_workflow": false,
-      "default_tab": "ietf.group.views.group_about",
-      "default_used_roles": "[\"matman\",\"ad\",\"chair\",\"lead\"]",
-      "docman_roles": "[\"chair\"]",
-      "groupman_authroles": "[\"Secretariat\"]",
-      "groupman_roles": "[\"chair\",\"lead\",\"delegate\"]",
-      "has_chartering_process": false,
-      "has_default_jabber": true,
-      "has_documents": false,
-      "has_meetings": true,
-      "has_milestones": false,
-      "has_nonsession_materials": false,
-      "has_reviews": false,
-      "has_session_materials": true,
-      "is_schedulable": true,
-      "material_types": "[\"slides\"]",
-      "matman_roles": "[\"chair\",\"lead\",\"delegate\",\"matman\"]",
-      "req_subm_approval": true,
-      "role_order": "[\"chair\",\"lead\",\"delegate\",\"matman\"]",
-      "show_on_agenda": true
-    },
-    "model": "group.groupfeatures",
-    "pk": "adhoc"
-  },
-  {
-    "fields": {
-      "about_page": "ietf.group.views.group_about",
-      "acts_like_wg": false,
-      "admin_roles": "[\"chair\"]",
-      "agenda_type": "ietf",
-      "create_wiki": false,
-      "custom_group_roles": false,
-      "customize_workflow": false,
-      "default_tab": "ietf.group.views.group_about",
-      "default_used_roles": "[\"member\",\"chair\"]",
-      "docman_roles": "[\"chair\"]",
-      "groupman_authroles": "[\"Secretariat\"]",
-      "groupman_roles": "[\"chair\"]",
-      "has_chartering_process": false,
-      "has_default_jabber": false,
-      "has_documents": false,
-      "has_meetings": false,
-      "has_milestones": false,
-      "has_nonsession_materials": false,
-      "has_reviews": false,
-      "has_session_materials": false,
-      "is_schedulable": false,
-      "material_types": "[\"slides\"]",
-      "matman_roles": "[\"chair\"]",
-      "req_subm_approval": false,
-      "role_order": "[\"chair\"]",
-      "show_on_agenda": false
-    },
-    "model": "group.groupfeatures",
-    "pk": "admin"
-  },
-  {
-    "fields": {
-      "about_page": "ietf.group.views.group_about",
-      "acts_like_wg": true,
-      "admin_roles": "[\"chair\"]",
-      "agenda_type": "ietf",
-      "create_wiki": true,
-      "custom_group_roles": true,
-      "customize_workflow": false,
-      "default_tab": "ietf.group.views.group_about",
-      "default_used_roles": "[\"ad\",\"chair\",\"secr\"]",
-      "docman_roles": "[\"chair\",\"delegate\",\"secr\"]",
-      "groupman_authroles": "[\"Secretariat\",\"Area Director\"]",
-      "groupman_roles": "[\"ad\",\"chair\",\"delegate\"]",
-      "has_chartering_process": false,
-      "has_default_jabber": false,
-      "has_documents": true,
-      "has_meetings": true,
-      "has_milestones": false,
-      "has_nonsession_materials": false,
-      "has_reviews": false,
-      "has_session_materials": true,
-      "is_schedulable": true,
-      "material_types": "[\"slides\"]",
-      "matman_roles": "[\"ad\",\"chair\",\"delegate\",\"secr\"]",
-      "req_subm_approval": true,
-      "role_order": "[\"chair\",\"secr\"]",
-      "show_on_agenda": true
-    },
-    "model": "group.groupfeatures",
-    "pk": "ag"
-  },
-  {
-    "fields": {
-      "about_page": "ietf.group.views.group_about",
-      "acts_like_wg": false,
-      "admin_roles": "[\"ad\"]",
-      "agenda_type": "ietf",
-      "create_wiki": true,
-      "custom_group_roles": true,
-      "customize_workflow": false,
-      "default_tab": "ietf.group.views.group_about",
-      "default_used_roles": "[\"ad\"]",
-      "docman_roles": "[\"ad\",\"delegate\",\"secr\"]",
-      "groupman_authroles": "[\"Secretariat\"]",
-      "groupman_roles": "[\"ad\"]",
-      "has_chartering_process": false,
-      "has_default_jabber": false,
-      "has_documents": false,
-      "has_meetings": false,
-      "has_milestones": false,
-      "has_nonsession_materials": false,
-      "has_reviews": false,
-      "has_session_materials": false,
-      "is_schedulable": false,
-      "material_types": "[\"slides\"]",
-      "matman_roles": "[\"ad\",\"chair\",\"delegate\",\"secr\"]",
-      "req_subm_approval": true,
-      "role_order": "[\"chair\",\"secr\"]",
-      "show_on_agenda": false
-    },
-    "model": "group.groupfeatures",
-    "pk": "area"
-  },
-  {
-    "fields": {
-      "about_page": "ietf.group.views.group_about",
-      "acts_like_wg": false,
-      "admin_roles": "[\"chair\",\"secr\"]",
-      "agenda_type": null,
-      "create_wiki": true,
-      "custom_group_roles": true,
-      "customize_workflow": false,
-      "default_tab": "ietf.group.views.group_about",
-      "default_used_roles": "[\"ad\",\"chair\",\"reviewer\",\"secr\"]",
-      "docman_roles": "[]",
-      "groupman_authroles": "[\"Secretariat\"]",
-      "groupman_roles": "[\"ad\",\"secr\"]",
-      "has_chartering_process": false,
-      "has_default_jabber": false,
-      "has_documents": false,
-      "has_meetings": false,
-      "has_milestones": false,
-      "has_nonsession_materials": false,
-      "has_reviews": false,
-      "has_session_materials": false,
-      "is_schedulable": false,
-      "material_types": "[\"slides\"]",
-      "matman_roles": "[\"ad\",\"chair\",\"delegate\",\"secr\"]",
-      "req_subm_approval": true,
-      "role_order": "[\"chair\",\"secr\"]",
-      "show_on_agenda": false
-    },
-    "model": "group.groupfeatures",
-    "pk": "dir"
-  },
-  {
-    "fields": {
-      "about_page": "ietf.group.views.group_about",
-      "acts_like_wg": false,
-      "admin_roles": "[\"chair\"]",
-      "agenda_type": "ietf",
-      "create_wiki": false,
-      "custom_group_roles": true,
-      "customize_workflow": false,
-      "default_tab": "ietf.group.views.group_about",
-      "default_used_roles": "[\"chair\"]",
-      "docman_roles": "[\"chair\"]",
-      "groupman_authroles": "[\"Secretariat\"]",
-      "groupman_roles": "[]",
-      "has_chartering_process": false,
-      "has_default_jabber": false,
-      "has_documents": false,
-      "has_meetings": true,
-      "has_milestones": false,
-      "has_nonsession_materials": false,
-      "has_reviews": false,
-      "has_session_materials": false,
-      "is_schedulable": false,
-      "material_types": "[\"slides\"]",
-      "matman_roles": "[\"chair\",\"delegate\"]",
-      "req_subm_approval": true,
-      "role_order": "[\"chair\",\"secr\"]",
-      "show_on_agenda": true
-    },
-    "model": "group.groupfeatures",
-    "pk": "iab"
-  },
-  {
-    "fields": {
-      "about_page": "ietf.group.views.group_about",
-      "acts_like_wg": false,
-      "admin_roles": "[\"chair\"]",
-      "agenda_type": "ietf",
-      "create_wiki": false,
-      "custom_group_roles": false,
-      "customize_workflow": false,
-      "default_tab": "ietf.group.views.group_about",
-      "default_used_roles": "[\"auth\"]",
-      "docman_roles": "[\"chair\"]",
-      "groupman_authroles": "[\"Secretariat\"]",
-      "groupman_roles": "[\"chair\"]",
-      "has_chartering_process": false,
-      "has_default_jabber": false,
-      "has_documents": false,
-      "has_meetings": false,
-      "has_milestones": false,
-      "has_nonsession_materials": false,
-      "has_reviews": false,
-      "has_session_materials": false,
-      "is_schedulable": false,
-      "material_types": "[\"slides\"]",
-      "matman_roles": "[\"chair\"]",
-      "req_subm_approval": false,
-      "role_order": "[\"chair\"]",
-      "show_on_agenda": false
-    },
-    "model": "group.groupfeatures",
-    "pk": "iana"
-  },
-  {
-    "fields": {
-      "about_page": "ietf.group.views.group_about",
-      "acts_like_wg": false,
-      "admin_roles": "[\"chair\"]",
-      "agenda_type": "ad",
-      "create_wiki": false,
-      "custom_group_roles": true,
-      "customize_workflow": false,
-      "default_tab": "ietf.group.views.group_about",
-      "default_used_roles": "[]",
-      "docman_roles": "[\"chair\"]",
-      "groupman_authroles": "[\"Secretariat\"]",
-      "groupman_roles": "[\"chair\",\"delegate\"]",
-      "has_chartering_process": false,
-      "has_default_jabber": false,
-      "has_documents": false,
-      "has_meetings": false,
-      "has_milestones": false,
-      "has_nonsession_materials": false,
-      "has_reviews": false,
-      "has_session_materials": false,
-      "is_schedulable": false,
-      "material_types": "\"[]\"",
-      "matman_roles": "[\"chair\",\"delegate\",\"member\"]",
-      "req_subm_approval": true,
-      "role_order": "[\"chair\",\"delegate\",\"member\"]",
-      "show_on_agenda": false
-    },
-    "model": "group.groupfeatures",
-    "pk": "iesg"
-  },
-  {
-    "fields": {
-      "about_page": "ietf.group.views.group_about",
-      "acts_like_wg": false,
-      "admin_roles": "[\"chair\",\"lead\"]",
-      "agenda_type": "ietf",
-      "create_wiki": false,
-      "custom_group_roles": true,
-      "customize_workflow": false,
-      "default_tab": "ietf.group.views.group_about",
-      "default_used_roles": "[\"ad\",\"member\",\"comdir\",\"delegate\",\"execdir\",\"recman\",\"secr\",\"trac-editor\",\"trac-admin\",\"chair\"]",
-      "docman_roles": "[\"chair\"]",
-      "groupman_authroles": "[\"Secretariat\"]",
-      "groupman_roles": "[\"chair\",\"delegate\"]",
-      "has_chartering_process": false,
-      "has_default_jabber": false,
-      "has_documents": false,
-      "has_meetings": true,
-      "has_milestones": false,
-      "has_nonsession_materials": false,
-      "has_reviews": false,
-      "has_session_materials": true,
-      "is_schedulable": false,
-      "material_types": "[\"slides\"]",
-      "matman_roles": "[\"chair\",\"delegate\"]",
-      "req_subm_approval": true,
-      "role_order": "[\"chair\",\"secr\"]",
-      "show_on_agenda": false
-    },
-    "model": "group.groupfeatures",
-    "pk": "ietf"
-  },
-  {
-    "fields": {
-      "about_page": "ietf.group.views.group_about",
-      "acts_like_wg": false,
-      "admin_roles": "[\"chair\"]",
-      "agenda_type": null,
-      "create_wiki": false,
-      "custom_group_roles": true,
-      "customize_workflow": false,
-      "default_tab": "ietf.group.views.group_about",
-      "default_used_roles": "[\"ad\"]",
-      "docman_roles": "[\"auth\"]",
-      "groupman_authroles": "[]",
-      "groupman_roles": "[]",
-      "has_chartering_process": false,
-      "has_default_jabber": false,
-      "has_documents": false,
-      "has_meetings": false,
-      "has_milestones": false,
-      "has_nonsession_materials": false,
-      "has_reviews": false,
-      "has_session_materials": false,
-      "is_schedulable": false,
-      "material_types": "[\"slides\"]",
-      "matman_roles": "[]",
-      "req_subm_approval": false,
-      "role_order": "[\"chair\",\"secr\"]",
-      "show_on_agenda": false
-    },
-    "model": "group.groupfeatures",
-    "pk": "individ"
-  },
-  {
-    "fields": {
-      "about_page": "ietf.group.views.group_about",
-      "acts_like_wg": false,
-      "admin_roles": "[\"chair\"]",
-      "agenda_type": "ietf",
-      "create_wiki": false,
-      "custom_group_roles": true,
-      "customize_workflow": false,
-      "default_tab": "ietf.group.views.group_about",
-      "default_used_roles": "[\"member\",\"atlarge\",\"chair\"]",
-      "docman_roles": "[]",
-      "groupman_authroles": "[\"Secretariat\"]",
-      "groupman_roles": "[\"chair\",\"delegate\"]",
-      "has_chartering_process": false,
-      "has_default_jabber": false,
-      "has_documents": false,
-      "has_meetings": false,
-      "has_milestones": false,
-      "has_nonsession_materials": false,
-      "has_reviews": false,
-      "has_session_materials": false,
-      "is_schedulable": false,
-      "material_types": "[\"slides\"]",
-      "matman_roles": "[\"chair\",\"delegate\",\"secr\"]",
-      "req_subm_approval": true,
-      "role_order": "[\"chair\",\"secr\"]",
-      "show_on_agenda": false
-    },
-    "model": "group.groupfeatures",
-    "pk": "irtf"
-  },
-  {
-    "fields": {
-      "about_page": "ietf.group.views.group_about",
-      "acts_like_wg": false,
-      "admin_roles": "[\"chair\",\"lead\"]",
-      "agenda_type": "ad",
-      "create_wiki": false,
-      "custom_group_roles": true,
-      "customize_workflow": false,
-      "default_tab": "ietf.group.views.group_about",
-      "default_used_roles": "[\"chair\"]",
-      "docman_roles": "[\"chair\"]",
-      "groupman_authroles": "[\"Secretariat\"]",
-      "groupman_roles": "[\"chair\",\"delegate\"]",
-      "has_chartering_process": false,
-      "has_default_jabber": false,
-      "has_documents": true,
-      "has_meetings": false,
-      "has_milestones": false,
-      "has_nonsession_materials": false,
-      "has_reviews": false,
-      "has_session_materials": false,
-      "is_schedulable": false,
-      "material_types": "[\"slides\"]",
-      "matman_roles": "[\"chair\",\"delegate\"]",
-      "req_subm_approval": true,
-      "role_order": "[\"chair\",\"delegate\"]",
-      "show_on_agenda": false
-    },
-    "model": "group.groupfeatures",
-    "pk": "ise"
-  },
-  {
-    "fields": {
-      "about_page": "ietf.group.views.group_about",
-      "acts_like_wg": false,
-      "admin_roles": "[\"chair\"]",
-      "agenda_type": null,
-      "create_wiki": false,
-      "custom_group_roles": true,
-      "customize_workflow": false,
-      "default_tab": "ietf.group.views.group_about",
-      "default_used_roles": "[\"chair\",\"ceo\"]",
-      "docman_roles": "[]",
-      "groupman_authroles": "[\"Secretariat\"]",
-      "groupman_roles": "[\"chair\"]",
-      "has_chartering_process": false,
-      "has_default_jabber": false,
-      "has_documents": false,
-      "has_meetings": false,
-      "has_milestones": false,
-      "has_nonsession_materials": false,
-      "has_reviews": false,
-      "has_session_materials": false,
-      "is_schedulable": false,
-      "material_types": "[\"slides\"]",
-      "matman_roles": "[\"chair\",\"secr\"]",
-      "req_subm_approval": true,
-      "role_order": "[\"chair\",\"secr\"]",
-      "show_on_agenda": false
-    },
-    "model": "group.groupfeatures",
-    "pk": "isoc"
-  },
-  {
-    "fields": {
-      "about_page": "ietf.group.views.group_about",
-      "acts_like_wg": false,
-      "admin_roles": "[\"chair\",\"advisor\"]",
-      "agenda_type": "side",
-      "create_wiki": true,
-      "custom_group_roles": true,
-      "customize_workflow": false,
-      "default_tab": "ietf.group.views.group_about",
-      "default_used_roles": "[\"member\",\"advisor\",\"liaison\",\"chair\",\"techadv\"]",
-      "docman_roles": "[\"chair\"]",
-      "groupman_authroles": "[\"Secretariat\"]",
-      "groupman_roles": "[\"chair\",\"advisor\"]",
-      "has_chartering_process": false,
-      "has_default_jabber": false,
-      "has_documents": false,
-      "has_meetings": false,
-      "has_milestones": false,
-      "has_nonsession_materials": false,
-      "has_reviews": false,
-      "has_session_materials": false,
-      "is_schedulable": false,
-      "material_types": "[\"slides\"]",
-      "matman_roles": "[\"chair\"]",
-      "req_subm_approval": true,
-      "role_order": "[\"chair\",\"member\",\"advisor\"]",
-      "show_on_agenda": false
-    },
-    "model": "group.groupfeatures",
-    "pk": "nomcom"
-  },
-  {
-    "fields": {
-      "about_page": "ietf.group.views.group_about",
-      "acts_like_wg": false,
-      "admin_roles": "[\"lead\"]",
-      "agenda_type": "ad",
-      "create_wiki": false,
-      "custom_group_roles": true,
-      "customize_workflow": false,
-      "default_tab": "ietf.group.views.group_about",
-      "default_used_roles": "[\"member\",\"chair\",\"lead\"]",
-      "docman_roles": "[\"lead\",\"chair\",\"secr\"]",
-      "groupman_authroles": "[\"Secretariat\",\"IAB\"]",
-      "groupman_roles": "[\"lead\",\"chair\",\"secr\"]",
-      "has_chartering_process": false,
-      "has_default_jabber": false,
-      "has_documents": true,
-      "has_meetings": true,
-      "has_milestones": true,
-      "has_nonsession_materials": false,
-      "has_reviews": false,
-      "has_session_materials": false,
-      "is_schedulable": false,
-      "material_types": "[\"slides\"]",
-      "matman_roles": "[\"lead\",\"chair\",\"secr\"]",
-      "req_subm_approval": false,
-      "role_order": "[\"lead\",\"chair\",\"secr\"]",
-      "show_on_agenda": false
-    },
-    "model": "group.groupfeatures",
-    "pk": "program"
-  },
-  {
-    "fields": {
-      "about_page": "ietf.group.views.group_about",
-      "acts_like_wg": false,
-      "admin_roles": "[\"chair\",\"secr\"]",
-      "agenda_type": null,
-      "create_wiki": true,
-      "custom_group_roles": true,
-      "customize_workflow": false,
-      "default_tab": "ietf.group.views.review_requests",
-      "default_used_roles": "[\"ad\",\"chair\",\"reviewer\",\"secr\"]",
-      "docman_roles": "[\"secr\"]",
-      "groupman_authroles": "[\"Secretariat\"]",
-      "groupman_roles": "[\"ad\",\"secr\"]",
-      "has_chartering_process": false,
-      "has_default_jabber": false,
-      "has_documents": false,
-      "has_meetings": false,
-      "has_milestones": false,
-      "has_nonsession_materials": false,
-      "has_reviews": true,
-      "has_session_materials": false,
-      "is_schedulable": false,
-      "material_types": "[\"slides\"]",
-      "matman_roles": "[\"ad\",\"secr\"]",
-      "req_subm_approval": true,
-      "role_order": "[\"chair\",\"secr\"]",
-      "show_on_agenda": false
-    },
-    "model": "group.groupfeatures",
-    "pk": "review"
-  },
-  {
-    "fields": {
-      "about_page": "ietf.group.views.group_about",
-      "acts_like_wg": false,
-      "admin_roles": "[\"chair\"]",
-      "agenda_type": "side",
-      "create_wiki": false,
-      "custom_group_roles": true,
-      "customize_workflow": false,
-      "default_tab": "ietf.group.views.group_about",
-      "default_used_roles": "[\"auth\",\"chair\"]",
-      "docman_roles": "[]",
-      "groupman_authroles": "[\"Secretariat\"]",
-      "groupman_roles": "[]",
-      "has_chartering_process": false,
-      "has_default_jabber": false,
-      "has_documents": false,
-      "has_meetings": false,
-      "has_milestones": false,
-      "has_nonsession_materials": false,
-      "has_reviews": false,
-      "has_session_materials": false,
-      "is_schedulable": false,
-      "material_types": "[\"slides\"]",
-      "matman_roles": "[]",
-      "req_subm_approval": true,
-      "role_order": "[\"chair\",\"secr\"]",
-      "show_on_agenda": false
-    },
-    "model": "group.groupfeatures",
-    "pk": "rfcedtyp"
-  },
-  {
-    "fields": {
-      "about_page": "ietf.group.views.group_about",
-      "acts_like_wg": true,
-      "admin_roles": "[\"chair\"]",
-      "agenda_type": "ietf",
-      "create_wiki": true,
-      "custom_group_roles": false,
-      "customize_workflow": true,
-      "default_tab": "ietf.group.views.group_documents",
-      "default_used_roles": "[\"chair\",\"techadv\",\"secr\",\"delegate\"]",
-      "docman_roles": "[\"chair\",\"delegate\",\"secr\"]",
-      "groupman_authroles": "[\"Secretariat\",\"IRTF Chair\"]",
-      "groupman_roles": "[\"chair\",\"delegate\"]",
-      "has_chartering_process": true,
-      "has_default_jabber": true,
-      "has_documents": true,
-      "has_meetings": true,
-      "has_milestones": true,
-      "has_nonsession_materials": false,
-      "has_reviews": false,
-      "has_session_materials": true,
-      "is_schedulable": true,
-      "material_types": "[\"slides\"]",
-      "matman_roles": "[\"chair\",\"delegate\",\"secr\"]",
-      "req_subm_approval": true,
-      "role_order": "[\"chair\",\"delegate\",\"secr\"]",
-      "show_on_agenda": true
-    },
-    "model": "group.groupfeatures",
-    "pk": "rg"
-  },
-  {
-    "fields": {
-      "about_page": "ietf.group.views.group_about",
-      "acts_like_wg": false,
-      "admin_roles": "[\"chair\"]",
-      "agenda_type": null,
-      "create_wiki": false,
-      "custom_group_roles": true,
-      "customize_workflow": false,
-      "default_tab": "ietf.group.views.group_about",
-      "default_used_roles": "[\"liaiman\",\"ceo\",\"coord\",\"auth\",\"chair\"]",
-      "docman_roles": "[\"liaiman\",\"matman\"]",
-      "groupman_authroles": "[\"Secretariat\"]",
-      "groupman_roles": "[]",
-      "has_chartering_process": false,
-      "has_default_jabber": false,
-      "has_documents": false,
-      "has_meetings": false,
-      "has_milestones": false,
-      "has_nonsession_materials": false,
-      "has_reviews": false,
-      "has_session_materials": false,
-      "is_schedulable": false,
-      "material_types": "[\"slides\"]",
-      "matman_roles": "[]",
-      "req_subm_approval": true,
-      "role_order": "[\"liaiman\"]",
-      "show_on_agenda": false
-    },
-    "model": "group.groupfeatures",
-    "pk": "sdo"
-  },
-  {
-    "fields": {
-      "about_page": "ietf.group.views.group_about",
-      "acts_like_wg": false,
-      "admin_roles": "[\"chair\"]",
-      "agenda_type": "ietf",
-      "create_wiki": true,
-      "custom_group_roles": true,
-      "customize_workflow": false,
-      "default_tab": "ietf.group.views.group_about",
-      "default_used_roles": "[\"ad\",\"member\",\"delegate\",\"secr\",\"liaison\",\"atlarge\",\"chair\",\"matman\",\"techadv\"]",
-      "docman_roles": "[\"chair\"]",
-      "groupman_authroles": "[\"Secretariat\"]",
-      "groupman_roles": "[\"chair\"]",
-      "has_chartering_process": false,
-      "has_default_jabber": false,
-      "has_documents": false,
-      "has_meetings": true,
-      "has_milestones": false,
-      "has_nonsession_materials": true,
-      "has_reviews": false,
-      "has_session_materials": false,
-      "is_schedulable": false,
-      "material_types": "[\"slides\"]",
-      "matman_roles": "[\"chair\",\"matman\"]",
-      "req_subm_approval": false,
-      "role_order": "[\"chair\",\"member\",\"matman\"]",
-      "show_on_agenda": false
-    },
-    "model": "group.groupfeatures",
-    "pk": "team"
-  },
-  {
-    "fields": {
-      "about_page": "ietf.group.views.group_about",
-      "acts_like_wg": true,
-      "admin_roles": "[\"chair\"]",
-      "agenda_type": "ietf",
-      "create_wiki": true,
-      "custom_group_roles": false,
-      "customize_workflow": true,
-      "default_tab": "ietf.group.views.group_documents",
-      "default_used_roles": "[\"ad\",\"editor\",\"delegate\",\"secr\",\"chair\",\"matman\",\"techadv\"]",
-      "docman_roles": "[\"chair\",\"delegate\",\"secr\"]",
-      "groupman_authroles": "[\"Secretariat\",\"Area Director\"]",
-      "groupman_roles": "[\"ad\",\"chair\",\"delegate\",\"secr\"]",
-      "has_chartering_process": true,
-      "has_default_jabber": true,
-      "has_documents": true,
-      "has_meetings": true,
-      "has_milestones": true,
-      "has_nonsession_materials": false,
-      "has_reviews": false,
-      "has_session_materials": true,
-      "is_schedulable": true,
-      "material_types": "[\"slides\"]",
-      "matman_roles": "[\"ad\",\"chair\",\"delegate\",\"secr\"]",
-      "req_subm_approval": true,
-      "role_order": "[\"chair\",\"secr\",\"delegate\"]",
-      "show_on_agenda": true
-    },
-    "model": "group.groupfeatures",
-    "pk": "wg"
-  },
-  {
-    "fields": {
-      "cc": [
-        "doc_notify",
-        "group_chairs",
-        "group_mail_list",
-        "group_steering_group"
-      ],
-      "desc": "Recipients when a charter is approved",
-      "to": [
-        "ietf_announce"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "ballot_approved_charter"
-  },
-  {
-    "fields": {
-      "cc": [
-        "iana",
-        "iesg",
-        "ietf_announce"
-      ],
-      "desc": "Recipients when a conflict review ballot is approved",
-      "to": [
-        "conflict_review_steering_group",
-        "conflict_review_stream_manager",
-        "doc_affecteddoc_authors",
-        "doc_affecteddoc_group_chairs",
-        "doc_affecteddoc_notify",
-        "doc_notify"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "ballot_approved_conflrev"
-  },
-  {
-    "fields": {
-      "cc": [
-        "doc_ad",
-        "doc_authors",
-        "doc_group_chairs",
-        "doc_group_mail_list",
-        "doc_notify",
-        "doc_shepherd",
-        "iesg",
-        "rfc_editor"
-      ],
-      "desc": "Recipients when an IETF stream document ballot is approved",
-      "to": [
-        "ietf_announce"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "ballot_approved_ietf_stream"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients for IANA message when an IETF stream document ballot is approved",
-      "to": [
-        "iana_approve"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "ballot_approved_ietf_stream_iana"
-  },
-  {
-    "fields": {
-      "cc": [
-        "doc_affecteddoc_authors",
-        "doc_affecteddoc_group_chairs",
-        "doc_affecteddoc_notify",
-        "doc_notify",
-        "iana",
-        "iesg",
-        "rfc_editor"
-      ],
-      "desc": "Recipients when a status change is approved",
-      "to": [
-        "ietf_announce"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "ballot_approved_status_change"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients when a ballot is deferred to or undeferred from a future telechat",
-      "to": [
-        "conflict_review_stream_manager",
-        "doc_affecteddoc_authors",
-        "doc_affecteddoc_group_chairs",
-        "doc_affecteddoc_notify",
-        "doc_authors",
-        "doc_group_chairs",
-        "doc_notify",
-        "doc_shepherd",
-        "iesg",
-        "iesg_secretary"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "ballot_deferred"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients when the RFC Editor note for a document is changed after the document has been approved",
-      "to": [
-        "iesg",
-        "rfc_editor"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "ballot_ednote_changed_late"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients when a ballot is issued",
-      "to": [
-        "iesg",
-        "iesg_secretary"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "ballot_issued"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients for IANA message when a ballot is issued",
-      "to": [
-        "iana_eval"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "ballot_issued_iana"
-  },
-  {
-    "fields": {
-      "cc": [
-        "conflict_review_stream_manager",
-        "doc_affecteddoc_authors",
-        "doc_affecteddoc_group_chairs",
-        "doc_affecteddoc_notify",
-        "doc_authors",
-        "doc_group_chairs",
-        "doc_group_mail_list",
-        "doc_notify",
-        "doc_shepherd"
-      ],
-      "desc": "Recipients when a new ballot position (with discusses, other blocking positions, or comments) is saved",
-      "to": [
-        "iesg"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "ballot_saved"
-  },
-  {
-    "fields": {
-      "cc": [
-        "group_mail_list"
-      ],
-      "desc": "Recipients for a charter external review",
-      "to": [
-        "ietf_announce"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "charter_external_review"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients for a message to new-work about a charter review",
-      "to": [
-        "new_work"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "charter_external_review_new_work"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients for message noting that internal review has started on a charter",
-      "to": [
-        "group_steering_group",
-        "iab"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "charter_internal_review"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients for message to adminstrators when a charter state edit needs followon administrative action",
-      "to": [
-        "iesg_secretary"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "charter_state_edit_admin_needed"
-  },
-  {
-    "fields": {
-      "cc": [
-        "conflict_review_steering_group",
-        "conflict_review_stream_manager",
-        "doc_affecteddoc_authors",
-        "doc_affecteddoc_group_chairs",
-        "doc_affecteddoc_notify",
-        "doc_notify",
-        "iesg"
-      ],
-      "desc": "Recipients when the responsible AD for a conflict review is changed",
-      "to": []
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "conflrev_ad_changed"
-  },
-  {
-    "fields": {
-      "cc": [
-        "conflict_review_steering_group",
-        "conflict_review_stream_manager",
-        "doc_affecteddoc_authors",
-        "doc_affecteddoc_group_chairs",
-        "doc_affecteddoc_notify",
-        "doc_notify",
-        "iesg"
-      ],
-      "desc": "Recipients for a stream manager's request for an IETF conflict review",
-      "to": [
-        "iesg_secretary"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "conflrev_requested"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients for IANA message when a stream manager requests an IETF conflict review",
-      "to": [
-        "iana_eval"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "conflrev_requested_iana"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients for a message when a new comment is manually entered into the document's history",
-      "to": [
-        "doc_authors",
-        "doc_group_chairs",
-        "doc_group_responsible_directors",
-        "doc_non_ietf_stream_manager",
-        "doc_shepherd"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "doc_added_comment"
-  },
-  {
-    "fields": {
-      "cc": [
-        "doc_ad",
-        "doc_notify",
-        "doc_shepherd"
-      ],
-      "desc": "Recipients for notification that a document has been adopted by a group",
-      "to": [
-        "doc_authors",
-        "doc_group_chairs",
-        "doc_group_mail_list"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "doc_adopted_by_group"
-  },
-  {
-    "fields": {
-      "cc": [
-        "doc_group_chairs",
-        "doc_group_responsible_directors",
-        "doc_notify",
-        "doc_shepherd"
-      ],
-      "desc": "Recipients for notification of a document's expiration",
-      "to": [
-        "doc_authors"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "doc_expired"
-  },
-  {
-    "fields": {
-      "cc": [
-        "doc_group_chairs",
-        "doc_group_responsible_directors",
-        "doc_notify",
-        "doc_shepherd"
-      ],
-      "desc": "Recipients for notification of impending expiration of a document",
-      "to": [
-        "doc_authors"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "doc_expires_soon"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients when IANA state information for a document changes ",
-      "to": [
-        "doc_ad",
-        "doc_affecteddoc_authors",
-        "doc_affecteddoc_group_chairs",
-        "doc_affecteddoc_notify",
-        "doc_authors",
-        "doc_group_chairs",
-        "doc_notify",
-        "doc_shepherd"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "doc_iana_state_changed"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients for a message when the IESG begins processing a document ",
-      "to": [
-        "doc_ad",
-        "doc_authors",
-        "doc_group_chairs",
-        "doc_shepherd"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "doc_iesg_processing_started"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients for a message when a document's intended publication status changes",
-      "to": [
-        "doc_authors",
-        "doc_group_chairs",
-        "doc_group_responsible_directors",
-        "doc_non_ietf_stream_manager",
-        "doc_shepherd"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "doc_intended_status_changed"
-  },
-  {
-    "fields": {
-      "cc": [
-        "doc_authors",
-        "doc_group_chairs",
-        "doc_notify",
-        "doc_shepherd",
-        "iesg",
-        "iesg_secretary"
-      ],
-      "desc": "Recipients when a document is taken out of the RFC's editor queue before publication",
-      "to": [
-        "iana",
-        "rfc_editor"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "doc_pulled_from_rfc_queue"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients when what a document replaces or is replaced by changes",
-      "to": [
-        "doc_authors_expanded"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "doc_replacement_changed"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients for suggestions that this doc replaces or is replace by some other document",
-      "to": [
-        "doc_group_chairs",
-        "doc_group_responsible_directors",
-        "doc_non_ietf_stream_manager",
-        "iesg_secretary"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "doc_replacement_suggested"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients when a document's state is manually edited",
-      "to": [
-        "doc_ad",
-        "doc_affecteddoc_authors",
-        "doc_affecteddoc_group_chairs",
-        "doc_affecteddoc_notify",
-        "doc_authors",
-        "doc_group_chairs",
-        "doc_group_responsible_directors",
-        "doc_notify",
-        "doc_shepherd"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "doc_state_edited"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients for notification when a document's stream changes",
-      "to": [
-        "doc_authors",
-        "doc_notify",
-        "stream_managers"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "doc_stream_changed"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients when the stream state of a document is manually edited",
-      "to": [
-        "doc_authors",
-        "doc_group_chairs",
-        "doc_group_delegates",
-        "doc_shepherd"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "doc_stream_state_edited"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients when a document's telechat date or other telechat specific details are changed",
-      "to": [
-        "conflict_review_steering_group",
-        "conflict_review_stream_manager",
-        "doc_affecteddoc_authors",
-        "doc_affecteddoc_group_chairs",
-        "doc_affecteddoc_notify",
-        "doc_authors",
-        "doc_group_chairs",
-        "doc_notify",
-        "doc_shepherd",
-        "iesg",
-        "iesg_secretary"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "doc_telechat_details_changed"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients when a comment is added to a group's history",
-      "to": [
-        "group_chairs",
-        "group_responsible_directors",
-        "group_secretaries"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "group_added_comment"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients when the set of approved milestones for a group are edited",
-      "to": [
-        "group_mail_list"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "group_approved_milestones_edited"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients for message requesting closure of a group",
-      "to": [
-        "iesg_secretary"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "group_closure_requested"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients when any of a group's milestones are edited",
-      "to": [
-        "group_chairs",
-        "group_responsible_directors"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "group_milestones_edited"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients for a message noting changes in a group's personnel",
-      "to": [
-        "group_chairs",
-        "group_changed_personnel",
-        "group_responsible_directors",
-        "group_secretaries",
-        "iesg_secretary"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "group_personnel_change"
-  },
-  {
-    "fields": {
-      "cc": [
-        "conflict_review_stream_manager",
-        "doc_affecteddoc_authors",
-        "doc_affecteddoc_group_chairs",
-        "doc_affecteddoc_notify",
-        "doc_authors",
-        "doc_group_chairs",
-        "doc_group_mail_list",
-        "doc_notify",
-        "doc_shepherd"
-      ],
-      "desc": "Recipients when a new ballot position (with discusses, other blocking positions, or comments) is saved",
-      "to": [
-        "iesg"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "iesg_ballot_saved"
-  },
-  {
-    "fields": {
-      "cc": [
-        "group_mail_list"
-      ],
-      "desc": "Recipients when an interim meeting is announced",
-      "to": [
-        "group_stream_announce",
-        "ietf_announce"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "interim_announced"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients when an interim meeting is approved and an announcement needs to be sent",
-      "to": [
-        "iesg_secretary"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "interim_approved"
-  },
-  {
-    "fields": {
-      "cc": [
-        "group_chairs",
-        "group_mail_list",
-        "logged_in_person"
-      ],
-      "desc": "Recipients when an interim meeting is cancelled",
-      "to": [
-        "group_stream_announce",
-        "ietf_announce"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "interim_cancelled"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients when the secretary follows up on an IPR disclosure submission",
-      "to": [
-        "ipr_submitter"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "ipr_disclosure_followup"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients when an IPR disclosure is submitted",
-      "to": [
-        "ipr_requests"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "ipr_disclosure_submitted"
-  },
-  {
-    "fields": {
-      "cc": [
-        "doc_ipr_group_or_ad",
-        "ipr_announce"
-      ],
-      "desc": "Recipients when an IPR disclosure calls out a given document",
-      "to": [
-        "doc_authors"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "ipr_posted_on_doc"
-  },
-  {
-    "fields": {
-      "cc": [
-        "ipr_updatedipr_contacts",
-        "ipr_updatedipr_holders"
-      ],
-      "desc": "Recipients for a message confirming that a disclosure has been posted",
-      "to": [
-        "ipr_submitter"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "ipr_posting_confirmation"
-  },
-  {
-    "fields": {
-      "cc": [
-        "doc_affecteddoc_authors",
-        "doc_affecteddoc_group_chairs",
-        "doc_affecteddoc_notify",
-        "doc_authors",
-        "doc_group_chairs",
-        "doc_group_mail_list",
-        "doc_notify",
-        "doc_shepherd"
-      ],
-      "desc": "Recipients when a new IRSG ballot position with comments is saved",
-      "to": [
-        "irsg"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "irsg_ballot_saved"
-  },
-  {
-    "fields": {
-      "cc": [
-        "iesg_secretary"
-      ],
-      "desc": "Recipients when a last call has expired",
-      "to": [
-        "doc_ad",
-        "doc_authors",
-        "doc_notify",
-        "doc_shepherd"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "last_call_expired"
-  },
-  {
-    "fields": {
-      "cc": [
-        "doc_ad",
-        "doc_affecteddoc_authors",
-        "doc_affecteddoc_group_chairs",
-        "doc_affecteddoc_notify",
-        "doc_authors",
-        "doc_group_chairs",
-        "doc_group_mail_list",
-        "doc_notify",
-        "doc_shepherd"
-      ],
-      "desc": "Recipients when a last call is issued",
-      "to": [
-        "ietf_announce"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "last_call_issued"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients for IANA message when a last call is issued",
-      "to": [
-        "iana_last_call"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "last_call_issued_iana"
-  },
-  {
-    "fields": {
-      "cc": [
-        "doc_ad",
-        "doc_notify",
-        "doc_shepherd"
-      ],
-      "desc": "Recipients when AD requests a last call",
-      "to": [
-        "iesg_secretary"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "last_call_requested"
-  },
-  {
-    "fields": {
-      "cc": [
-        "liaison_admin"
-      ],
-      "desc": "Recipients for a message that a pending liaison statement needs approval",
-      "to": [
-        "liaison_approvers"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "liaison_approval_requested"
-  },
-  {
-    "fields": {
-      "cc": [
-        "liaison_cc",
-        "liaison_response_contacts",
-        "liaison_technical_contacts"
-      ],
-      "desc": "Recipients for a message about a liaison statement deadline that is approaching.",
-      "to": [
-        "liaison_to_contacts"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "liaison_deadline_soon"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients for a message requesting an updated list of authorized individuals",
-      "to": [
-        "liaison_manager"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "liaison_manager_update_request"
-  },
-  {
-    "fields": {
-      "cc": [
-        "liaison_cc",
-        "liaison_response_contacts",
-        "liaison_technical_contacts"
-      ],
-      "desc": "Recipient for a message when a new liaison statement is posted",
-      "to": [
-        "liaison_to_contacts"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "liaison_statement_posted"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients for a message confirming a comment was made",
-      "to": [
-        "commenter"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "nomcom_comment_receipt_requested"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients for the questionairre that nominees should complete",
-      "to": [
-        "nominee"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "nomcom_questionnaire"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients for a message reminding a nominee to return a completed questionairre response",
-      "to": [
-        "nominee"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "nomcom_questionnaire_reminder"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipeints of message reminding a nominee to accept or decline a nomination",
-      "to": [
-        "nominee"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "nomination_accept_reminder"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients for a message noting that a nomination caused a new Person record to be created in the datatracker",
-      "to": [
-        "ietf_secretariat",
-        "nomcom_chair"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "nomination_created_person"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients the first time a person is nominated for a position, asking them to accept or decline the nomination",
-      "to": [
-        "nominee"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "nomination_new_nominee"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients for a message confirming a nomination was made",
-      "to": [
-        "nominator"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "nomination_receipt_requested"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients for a message noting a new nomination has been received",
-      "to": [
-        "nomcom_chair"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "nomination_received"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients for a message requesting that duplicated Person records be merged ",
-      "to": [
-        "ietf_secretariat"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "person_merge_requested"
-  },
-  {
-    "fields": {
-      "cc": [
-        "doc_group_chairs",
-        "doc_group_mail_list",
-        "doc_notify",
-        "doc_shepherd",
-        "iesg_secretary"
-      ],
-      "desc": "Recipients when a draft is submitted to the IESG",
-      "to": [
-        "doc_ad"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "pubreq_iesg"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients when a non-IETF stream manager requests publication",
-      "to": [
-        "rfc_editor"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "pubreq_rfced"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients for IANA message when a non-IETF stream manager requests publication",
-      "to": [
-        "iana_approve"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "pubreq_rfced_iana"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients when a draft resurrection request has been completed",
-      "to": [
-        "doc_ad",
-        "iesg_secretary"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "resurrection_completed"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients of a request to change the state of a draft away from 'Dead'",
-      "to": [
-        "internet_draft_requests"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "resurrection_requested"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients for a change to a review assignment",
-      "to": [
-        "review_assignment_reviewer",
-        "review_assignment_review_req_by",
-        "review_secretaries"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "review_assignment_changed"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients when an review team secretary send a summary of open review assignments",
-      "to": [
-        "group_mail_list"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "review_assignments_summarized"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients for a change to a reviewer's availability",
-      "to": [
-        "group_secretaries",
-        "review_reviewer"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "review_availability_changed"
-  },
-  {
-    "fields": {
-      "cc": [
-        "ietf_last_call",
-        "review_doc_all_parties",
-        "review_doc_group_mail_list"
-      ],
-      "desc": "Default template for recipients when an review is completed - customised mail triggers are used/created per team and review type.",
-      "to": [
-        "review_team_mail_list"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "review_completed"
-  },
-  {
-    "fields": {
-      "cc": [
-        "review_doc_all_parties",
-        "review_doc_group_mail_list"
-      ],
-      "desc": "Recipients when a artart ReviewTypeName object review is completed",
-      "to": [
-        "review_team_mail_list"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "review_completed_artart_early"
-  },
-  {
-    "fields": {
-      "cc": [
-        "ietf_last_call",
-        "review_doc_all_parties",
-        "review_doc_group_mail_list"
-      ],
-      "desc": "Recipients when a artart ReviewTypeName object review is completed",
-      "to": [
-        "review_team_mail_list"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "review_completed_artart_lc"
-  },
-  {
-    "fields": {
-      "cc": [
-        "ietf_last_call",
-        "review_doc_all_parties",
-        "review_doc_group_mail_list"
-      ],
-      "desc": "Recipients when a artart ReviewTypeName object review is completed",
-      "to": [
-        "review_team_mail_list"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "review_completed_artart_telechat"
-  },
-  {
-    "fields": {
-      "cc": [
-        "review_doc_all_parties",
-        "review_doc_group_mail_list"
-      ],
-      "desc": "Recipients when a genart ReviewTypeName object review is completed",
-      "to": [
-        "review_team_mail_list"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "review_completed_genart_early"
-  },
-  {
-    "fields": {
-      "cc": [
-        "ietf_last_call",
-        "review_doc_all_parties",
-        "review_doc_group_mail_list"
-      ],
-      "desc": "Recipients when a genart ReviewTypeName object review is completed",
-      "to": [
-        "review_team_mail_list"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "review_completed_genart_lc"
-  },
-  {
-    "fields": {
-      "cc": [
-        "ietf_last_call",
-        "review_doc_all_parties",
-        "review_doc_group_mail_list"
-      ],
-      "desc": "Recipients when a genart ReviewTypeName object review is completed",
-      "to": [
-        "review_team_mail_list"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "review_completed_genart_telechat"
-  },
-  {
-    "fields": {
-      "cc": [
-        "review_doc_all_parties",
-        "review_doc_group_mail_list"
-      ],
-      "desc": "Recipients when a i18ndir ReviewTypeName object review is completed",
-      "to": [
-        "review_team_mail_list"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "review_completed_i18ndir_early"
-  },
-  {
-    "fields": {
-      "cc": [
-        "ietf_last_call",
-        "review_doc_all_parties",
-        "review_doc_group_mail_list"
-      ],
-      "desc": "Recipients when a i18ndir ReviewTypeName object review is completed",
-      "to": [
-        "review_team_mail_list"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "review_completed_i18ndir_lc"
-  },
-  {
-    "fields": {
-      "cc": [
-        "ietf_last_call",
-        "review_doc_all_parties",
-        "review_doc_group_mail_list"
-      ],
-      "desc": "Recipients when a i18ndir ReviewTypeName object review is completed",
-      "to": [
-        "review_team_mail_list"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "review_completed_i18ndir_telechat"
-  },
-  {
-    "fields": {
-      "cc": [
-        "review_doc_all_parties",
-        "review_doc_group_mail_list"
-      ],
-      "desc": "Recipients when a intdir ReviewTypeName object review is completed",
-      "to": [
-        "review_team_mail_list"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "review_completed_intdir_early"
-  },
-  {
-    "fields": {
-      "cc": [
-        "ietf_last_call",
-        "review_doc_all_parties",
-        "review_doc_group_mail_list"
-      ],
-      "desc": "Recipients when a intdir ReviewTypeName object review is completed",
-      "to": [
-        "review_team_mail_list"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "review_completed_intdir_lc"
-  },
-  {
-    "fields": {
-      "cc": [
-        "ietf_last_call",
-        "review_doc_all_parties",
-        "review_doc_group_mail_list"
-      ],
-      "desc": "Recipients when a intdir ReviewTypeName object review is completed",
-      "to": [
-        "review_team_mail_list"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "review_completed_intdir_telechat"
-  },
-  {
-    "fields": {
-      "cc": [
-        "review_doc_all_parties",
-        "review_doc_group_mail_list"
-      ],
-      "desc": "Recipients when a iotdir ReviewTypeName object review is completed",
-      "to": [
-        "review_team_mail_list"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "review_completed_iotdir_early"
-  },
-  {
-    "fields": {
-      "cc": [
-        "ietf_last_call",
-        "review_doc_all_parties",
-        "review_doc_group_mail_list"
-      ],
-      "desc": "Recipients when a iotdir ReviewTypeName object review is completed",
-      "to": [
-        "review_team_mail_list"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "review_completed_iotdir_lc"
-  },
-  {
-    "fields": {
-      "cc": [
-        "ietf_last_call",
-        "review_doc_all_parties",
-        "review_doc_group_mail_list"
-      ],
-      "desc": "Recipients when a iotdir ReviewTypeName object review is completed",
-      "to": [
-        "review_team_mail_list"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "review_completed_iotdir_telechat"
-  },
-  {
-    "fields": {
-      "cc": [
-        "review_doc_all_parties",
-        "review_doc_group_mail_list"
-      ],
-      "desc": "Recipients when a opsdir ReviewTypeName object review is completed",
-      "to": [
-        "review_team_mail_list"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "review_completed_opsdir_early"
-  },
-  {
-    "fields": {
-      "cc": [
-        "ietf_last_call",
-        "review_doc_all_parties",
-        "review_doc_group_mail_list"
-      ],
-      "desc": "Recipients when a opsdir ReviewTypeName object review is completed",
-      "to": [
-        "review_team_mail_list"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "review_completed_opsdir_lc"
-  },
-  {
-    "fields": {
-      "cc": [
-        "ietf_last_call",
-        "review_doc_all_parties",
-        "review_doc_group_mail_list"
-      ],
-      "desc": "Recipients when a opsdir ReviewTypeName object review is completed",
-      "to": [
-        "review_team_mail_list"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "review_completed_opsdir_telechat"
-  },
-  {
-    "fields": {
-      "cc": [
-        "review_doc_all_parties",
-        "review_doc_group_mail_list"
-      ],
-      "desc": "Recipients when a rtgdir ReviewTypeName object review is completed",
-      "to": [
-        "review_team_mail_list"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "review_completed_rtgdir_early"
-  },
-  {
-    "fields": {
-      "cc": [
-        "ietf_last_call",
-        "review_doc_all_parties",
-        "review_doc_group_mail_list"
-      ],
-      "desc": "Recipients when a rtgdir ReviewTypeName object review is completed",
-      "to": [
-        "review_team_mail_list"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "review_completed_rtgdir_lc"
-  },
-  {
-    "fields": {
-      "cc": [
-        "ietf_last_call",
-        "review_doc_all_parties",
-        "review_doc_group_mail_list"
-      ],
-      "desc": "Recipients when a rtgdir ReviewTypeName object review is completed",
-      "to": [
-        "review_team_mail_list"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "review_completed_rtgdir_telechat"
-  },
-  {
-    "fields": {
-      "cc": [
-        "review_doc_all_parties",
-        "review_doc_group_mail_list"
-      ],
-      "desc": "Recipients when a secdir ReviewTypeName object review is completed",
-      "to": [
-        "review_team_mail_list"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "review_completed_secdir_early"
-  },
-  {
-    "fields": {
-      "cc": [
-        "ietf_last_call",
-        "review_doc_all_parties",
-        "review_doc_group_mail_list"
-      ],
-      "desc": "Recipients when a secdir ReviewTypeName object review is completed",
-      "to": [
-        "review_team_mail_list"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "review_completed_secdir_lc"
-  },
-  {
-    "fields": {
-      "cc": [
-        "ietf_last_call",
-        "review_doc_all_parties",
-        "review_doc_group_mail_list"
-      ],
-      "desc": "Recipients when a secdir ReviewTypeName object review is completed",
-      "to": [
-        "review_team_mail_list"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "review_completed_secdir_telechat"
-  },
-  {
-    "fields": {
-      "cc": [
-        "review_doc_all_parties",
-        "review_doc_group_mail_list"
-      ],
-      "desc": "Recipients when a tsvart ReviewTypeName object review is completed",
-      "to": [
-        "review_team_mail_list"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "review_completed_tsvart_early"
-  },
-  {
-    "fields": {
-      "cc": [
-        "ietf_last_call",
-        "review_doc_all_parties",
-        "review_doc_group_mail_list"
-      ],
-      "desc": "Recipients when a tsvart ReviewTypeName object review is completed",
-      "to": [
-        "review_team_mail_list"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "review_completed_tsvart_lc"
-  },
-  {
-    "fields": {
-      "cc": [
-        "ietf_last_call",
-        "review_doc_all_parties",
-        "review_doc_group_mail_list"
-      ],
-      "desc": "Recipients when a tsvart ReviewTypeName object review is completed",
-      "to": [
-        "review_team_mail_list"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "review_completed_tsvart_telechat"
-  },
-  {
-    "fields": {
-      "cc": [
-        "review_doc_all_parties",
-        "review_doc_group_mail_list"
-      ],
-      "desc": "Recipients when a yangdoctors ReviewTypeName object review is completed",
-      "to": [
-        "review_team_mail_list"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "review_completed_yangdoctors_early"
-  },
-  {
-    "fields": {
-      "cc": [
-        "ietf_last_call",
-        "review_doc_all_parties",
-        "review_doc_group_mail_list"
-      ],
-      "desc": "Recipients when a yangdoctors ReviewTypeName object review is completed",
-      "to": [
-        "review_team_mail_list"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "review_completed_yangdoctors_lc"
-  },
-  {
-    "fields": {
-      "cc": [
-        "ietf_last_call",
-        "review_doc_all_parties",
-        "review_doc_group_mail_list"
-      ],
-      "desc": "Recipients when a yangdoctors ReviewTypeName object review is completed",
-      "to": [
-        "review_team_mail_list"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "review_completed_yangdoctors_telechat"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients when a team notifies area directors when a review with one of a certain set of results (typically results indicating problem) is submitted",
-      "to": [
-        "review_doc_ad",
-        "review_team_ads"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "review_notify_ad"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients for overdue review assignment reminders",
-      "to": [
-        "group_secretaries"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "review_reminder_overdue_assignment"
-  },
-  {
-    "fields": {
-      "cc": [
-        "review_req_requested_by",
-        "review_secretaries"
-      ],
-      "desc": "Recipients for a change to a review request",
-      "to": [
-        "review_req_reviewers"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "review_req_changed"
-  },
-  {
-    "fields": {
-      "cc": [
-        "group_responsible_directors"
-      ],
-      "desc": "Recipients when a group is sent a reminder to submit minutes for a session",
-      "to": [
-        "group_chairs",
-        "group_secretaries"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "session_minutes_reminder"
-  },
-  {
-    "fields": {
-      "cc": [
-        "group_chairs",
-        "group_mail_list",
-        "group_responsible_directors",
-        "logged_in_person"
-      ],
-      "desc": "Recipients for a message cancelling a session request",
-      "to": [
-        "session_requests"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "session_request_cancelled"
-  },
-  {
-    "fields": {
-      "cc": [
-        "group_chairs",
-        "group_mail_list",
-        "group_responsible_directors",
-        "logged_in_person"
-      ],
-      "desc": "Recipients for a message noting a group plans to not meet",
-      "to": [
-        "session_requests"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "session_request_not_meeting"
-  },
-  {
-    "fields": {
-      "cc": [
-        "group_chairs",
-        "group_mail_list",
-        "group_responsible_directors",
-        "logged_in_person"
-      ],
-      "desc": "Recipients for a normal meeting session request",
-      "to": [
-        "session_requests"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "session_requested"
-  },
-  {
-    "fields": {
-      "cc": [
-        "group_chairs",
-        "logged_in_person",
-        "session_requests"
-      ],
-      "desc": "Recipients for a meeting session request for more than 2 sessions",
-      "to": [
-        "group_responsible_directors"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "session_requested_long"
-  },
-  {
-    "fields": {
-      "cc": [
-        "group_mail_list",
-        "group_responsible_directors"
-      ],
-      "desc": "Recipients for details when a session has been scheduled",
-      "to": [
-        "group_chairs",
-        "session_requester"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "session_scheduled"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients when slides are proposed for a given session",
-      "to": [
-        "group_chairs",
-        "group_responsible_directors",
-        "group_secretaries"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "slides_proposed"
-  },
-  {
-    "fields": {
-      "cc": [
-        "submission_group_mail_list"
-      ],
-      "desc": "Recipients for the announcement of a successfully submitted draft",
-      "to": [
-        "id_announce"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "sub_announced"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients for the announcement to the authors of a successfully submitted draft",
-      "to": [
-        "submission_authors",
-        "submission_confirmers"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "sub_announced_to_authors"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients for a message requesting group chair approval of a draft submission",
-      "to": [
-        "submission_group_chairs"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "sub_chair_approval_requested"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients for a message requesting confirmation of a draft submission",
-      "to": [
-        "submission_confirmers"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "sub_confirmation_requested"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients for a message with the full URL for managing a draft submission",
-      "to": [
-        "submission_confirmers"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "sub_management_url_requested"
-  },
-  {
-    "fields": {
-      "cc": [
-        "submission_authors",
-        "submission_group_chairs",
-        "submission_submitter"
-      ],
-      "desc": "Recipients for a manual post request for a draft submission",
-      "to": [
-        "internet_draft_requests"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "sub_manual_post_requested"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients for notification of a new version of an existing document",
-      "to": [
-        "doc_ad",
-        "doc_discussing_ads",
-        "doc_non_ietf_stream_manager",
-        "doc_notify",
-        "rfc_editor_if_doc_in_queue"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "sub_new_version"
-  },
-  {
-    "fields": {
-      "cc": [],
-      "desc": "Recipients when a new IETF WG -00 draft is announced",
-      "to": [
-        "new_wg_doc_list"
-      ]
-    },
-    "model": "mailtrigger.mailtrigger",
-    "pk": "sub_new_wg_00"
-  },
-  {
-    "fields": {
-      "desc": "The person providing a comment to nomcom",
-      "template": "{{commenter}}"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "commenter"
-  },
-  {
-    "fields": {
-      "desc": "The steering group (e.g. IRSG) of a document being reviewed for IETF stream conflicts",
-      "template": null
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "conflict_review_steering_group"
-  },
-  {
-    "fields": {
-      "desc": "The stream manager of a document being reviewed for IETF stream conflicts",
-      "template": null
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "conflict_review_stream_manager"
-  },
-  {
-    "fields": {
-      "desc": "The document's responsible Area Director",
-      "template": "{% if doc.ad %}<{{doc.ad.email_address}}>{% endif %}"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "doc_ad"
-  },
-  {
-    "fields": {
-      "desc": "The authors of the subject documents of a conflict-review or status-change",
-      "template": null
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "doc_affecteddoc_authors"
-  },
-  {
-    "fields": {
-      "desc": "The chairs of groups of the subject documents of a conflict-review or status-change",
-      "template": null
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "doc_affecteddoc_group_chairs"
-  },
-  {
-    "fields": {
-      "desc": "The notify field of the subject documents of a conflict-review or status-change",
-      "template": null
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "doc_affecteddoc_notify"
-  },
-  {
-    "fields": {
-      "desc": "The document's authors",
-      "template": "{% if doc.type_id == \"draft\" %}<{{doc.name}}@ietf.org>{% endif %}"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "doc_authors"
-  },
-  {
-    "fields": {
-      "desc": "The authors of the document, without using the draft aliases",
-      "template": "{{doc.author_list}}"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "doc_authors_expanded"
-  },
-  {
-    "fields": {
-      "desc": "Any ADs holding an active DISCUSS position on a given document",
-      "template": null
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "doc_discussing_ads"
-  },
-  {
-    "fields": {
-      "desc": "The document's group chairs (if the document is assigned to a working or research group)",
-      "template": null
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "doc_group_chairs"
-  },
-  {
-    "fields": {
-      "desc": "The document's group delegates (if the document is assigned to a working or research group)",
-      "template": null
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "doc_group_delegates"
-  },
-  {
-    "fields": {
-      "desc": "The list address of the document's group",
-      "template": null
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "doc_group_mail_list"
-  },
-  {
-    "fields": {
-      "desc": "The document's group's responsible AD(s) or IRTF chair",
-      "template": null
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "doc_group_responsible_directors"
-  },
-  {
-    "fields": {
-      "desc": "Leadership for a document that has a new IPR disclosure",
-      "template": null
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "doc_ipr_group_or_ad"
-  },
-  {
-    "fields": {
-      "desc": "The document's stream manager if the document is not in the IETF stream",
-      "template": null
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "doc_non_ietf_stream_manager"
-  },
-  {
-    "fields": {
-      "desc": "The addresses in the document's notify field",
-      "template": "{{doc.notify}}"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "doc_notify"
-  },
-  {
-    "fields": {
-      "desc": "The document's shepherd",
-      "template": "{% if doc.shepherd %}<{{doc.shepherd.address}}>{% endif %}"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "doc_shepherd"
-  },
-  {
-    "fields": {
-      "desc": "The manager of the document's stream",
-      "template": null
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "doc_stream_manager"
-  },
-  {
-    "fields": {
-      "desc": "The group's chairs",
-      "template": "{% if group and group.acronym %}<{{group.acronym}}-chairs@ietf.org>{% endif %}"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "group_chairs"
-  },
-  {
-    "fields": {
-      "desc": "Any personnel who were added or deleted when a group's personnel changes",
-      "template": "{% if changed_personnel %} {{ changed_personnel | join:\", \" }} {% endif %}"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "group_changed_personnel"
-  },
-  {
-    "fields": {
-      "desc": "The group's mailing list",
-      "template": "{% if group.list_email %}<{{ group.list_email }}>{% endif %}"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "group_mail_list"
-  },
-  {
-    "fields": {
-      "desc": "The group's responsible AD(s) or IRTF chair",
-      "template": null
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "group_responsible_directors"
-  },
-  {
-    "fields": {
-      "desc": "The group's secretaries",
-      "template": null
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "group_secretaries"
-  },
-  {
-    "fields": {
-      "desc": "The group's steering group (IESG or IRSG)",
-      "template": null
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "group_steering_group"
-  },
-  {
-    "fields": {
-      "desc": "The group's stream's announce list",
-      "template": "{% if group.type_id == 'wg' %}IETF-Announce <ietf-announce@ietf.org>{% elif group.type_id == 'rg' %}IRTF-Announce <irtf-announce@irtf.org>{% endif %}"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "group_stream_announce"
-  },
-  {
-    "fields": {
-      "desc": "The IAB",
-      "template": "The IAB <iab@iab.org>"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "iab"
-  },
-  {
-    "fields": {
-      "desc": "IANA",
-      "template": "<iana@iana.org>"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "iana"
-  },
-  {
-    "fields": {
-      "desc": "IANA's draft approval address",
-      "template": "IANA <drafts-approval@icann.org>"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "iana_approve"
-  },
-  {
-    "fields": {
-      "desc": "IANA's draft evaluation address",
-      "template": "IANA <drafts-eval@icann.org>"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "iana_eval"
-  },
-  {
-    "fields": {
-      "desc": "IANA's draft last call address",
-      "template": "IANA <drafts-lastcall@icann.org>"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "iana_last_call"
-  },
-  {
-    "fields": {
-      "desc": "The I-D-Announce Email List",
-      "template": "<i-d-announce@ietf.org>"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "id_announce"
-  },
-  {
-    "fields": {
-      "desc": "The IESG",
-      "template": "The IESG <iesg@ietf.org>"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "iesg"
-  },
-  {
-    "fields": {
-      "desc": "The Secretariat",
-      "template": "<iesg-secretary@ietf.org>"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "iesg_secretary"
-  },
-  {
-    "fields": {
-      "desc": "The IETF Announce list",
-      "template": "IETF-Announce <ietf-announce@ietf.org>"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "ietf_announce"
-  },
-  {
-    "fields": {
-      "desc": "The IETF general discussion list",
-      "template": "ietf@ietf.org"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "ietf_general"
-  },
-  {
-    "fields": {
-      "desc": "The IETF Last Call list",
-      "template": "last-call@ietf.org"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "ietf_last_call"
-  },
-  {
-    "fields": {
-      "desc": "The Secretariat",
-      "template": "<ietf-secretariat-reply@ietf.org>"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "ietf_secretariat"
-  },
-  {
-    "fields": {
-      "desc": "The internet drafts ticketing system",
-      "template": "<internet-drafts@ietf.org>"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "internet_draft_requests"
-  },
-  {
-    "fields": {
-      "desc": "The IETF IPR announce list",
-      "template": "ipr-announce@ietf.org"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "ipr_announce"
-  },
-  {
-    "fields": {
-      "desc": "The ipr disclosure handling system",
-      "template": "<ietf-ipr@ietf.org>"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "ipr_requests"
-  },
-  {
-    "fields": {
-      "desc": "The submitter of an IPR disclosure",
-      "template": "{% if ipr.submitter_email %}{{ ipr.submitter_email }}{% endif %}"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "ipr_submitter"
-  },
-  {
-    "fields": {
-      "desc": "The submitter (or ietf participant if the submitter is not available) of all IPR disclosures updated directly by this disclosure, without recursing to what the updated disclosures might have updated.",
-      "template": null
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "ipr_updatedipr_contacts"
-  },
-  {
-    "fields": {
-      "desc": "The holders of all IPR disclosures updated by disclosure and disclosures updated by those and so on.",
-      "template": null
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "ipr_updatedipr_holders"
-  },
-  {
-    "fields": {
-      "desc": "The IRSG",
-      "template": "The IRSG <irsg@irtf.org>"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "irsg"
-  },
-  {
-    "fields": {
-      "desc": "Alias for secretariat liaison administration",
-      "template": "<statements@ietf.org>"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "liaison_admin"
-  },
-  {
-    "fields": {
-      "desc": "The set of people who can approve this liasion statemetns",
-      "template": "{{liaison.approver_emails|join:\", \"}}"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "liaison_approvers"
-  },
-  {
-    "fields": {
-      "desc": "The addresses captured in the Cc field of the liaison statement form",
-      "template": "{{liaison.cc_contacts}}"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "liaison_cc"
-  },
-  {
-    "fields": {
-      "desc": "The assigned liaison manager for an external group ",
-      "template": null
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "liaison_manager"
-  },
-  {
-    "fields": {
-      "desc": "The addresses captured in the response contact field of the liaison statement form",
-      "template": "{{liaison.response_contacts}}"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "liaison_response_contacts"
-  },
-  {
-    "fields": {
-      "desc": "The addresses captured in the technical contact field of the liaison statement form",
-      "template": "{{liaison.technical_contacts}}"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "liaison_technical_contacts"
-  },
-  {
-    "fields": {
-      "desc": "The addresses captured in the To field of the liaison statement form",
-      "template": "{{liaison.to_contacts}}"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "liaison_to_contacts"
-  },
-  {
-    "fields": {
-      "desc": "The person currently logged into the datatracker who initiated a given action",
-      "template": "{% if person and person.email_address %}<{{ person.email_address }}>{% endif %}"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "logged_in_person"
-  },
-  {
-    "fields": {
-      "desc": "The email list for announcing new WG -00 submissions",
-      "template": "<new-wg-docs@ietf.org>"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "new_wg_doc_list"
-  },
-  {
-    "fields": {
-      "desc": "The IETF New Work list",
-      "template": "<new-work@ietf.org>"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "new_work"
-  },
-  {
-    "fields": {
-      "desc": "The chair of a given nomcom",
-      "template": "{{nomcom.group.get_chair.email.address}}"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "nomcom_chair"
-  },
-  {
-    "fields": {
-      "desc": "The person that submitted a nomination to nomcom",
-      "template": "{{nominator}}"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "nominator"
-  },
-  {
-    "fields": {
-      "desc": "The person nominated for a position",
-      "template": "{{nominee}}"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "nominee"
-  },
-  {
-    "fields": {
-      "desc": "The requester of an assigned review",
-      "template": "{% if not skip_review_requested_by %}{{review_assignment.review_request.requested_by.email_address}}{% endif %}"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "review_assignment_review_req_by"
-  },
-  {
-    "fields": {
-      "desc": "The reviewer assigned to a review assignment",
-      "template": "{% if not skip_review_reviewer %}{{review_assignment.reviewer.email_address}}{% endif %}"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "review_assignment_reviewer"
-  },
-  {
-    "fields": {
-      "desc": "The reviewed document's responsible area director",
-      "template": "{% if review_req.doc.ad %}{{review_req.doc.ad.email_address}}{% endif %}"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "review_doc_ad"
-  },
-  {
-    "fields": {
-      "desc": "The .all alias for the document being reviewed",
-      "template": "{% if review_req.doc.type_id == 'draft' %}<{{review_req.doc.name}}.all@ietf.org>{% endif %}"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "review_doc_all_parties"
-  },
-  {
-    "fields": {
-      "desc": "The working group list for the document being reviewed",
-      "template": "{{review_req.doc.group.list_email}}"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "review_doc_group_mail_list"
-  },
-  {
-    "fields": {
-      "desc": "The requester of a review",
-      "template": "{% if not skip_review_requested_by %}{{review_req.requested_by.email_address}}{% endif %}"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "review_req_requested_by"
-  },
-  {
-    "fields": {
-      "desc": "All reviewers assigned to a review request",
-      "template": null
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "review_req_reviewers"
-  },
-  {
-    "fields": {
-      "desc": "A single reviewer",
-      "template": "{{reviewer.email_address}}"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "review_reviewer"
-  },
-  {
-    "fields": {
-      "desc": "The secretaries of the review team of a review request or assignment",
-      "template": null
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "review_secretaries"
-  },
-  {
-    "fields": {
-      "desc": "The ADs of the team reviewing the document",
-      "template": null
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "review_team_ads"
-  },
-  {
-    "fields": {
-      "desc": "The review team's email list",
-      "template": "{{review_req.team.list_email}}"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "review_team_mail_list"
-  },
-  {
-    "fields": {
-      "desc": "The RFC Editor",
-      "template": "<rfc-editor@rfc-editor.org>"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "rfc_editor"
-  },
-  {
-    "fields": {
-      "desc": "The RFC Editor if a document is in the RFC Editor queue",
-      "template": null
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "rfc_editor_if_doc_in_queue"
-  },
-  {
-    "fields": {
-      "desc": "The person that requested a meeting slot for a given group",
-      "template": null
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "session_requester"
-  },
-  {
-    "fields": {
-      "desc": "The session request ticketing system",
-      "template": "<session-request@ietf.org>"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "session_requests"
-  },
-  {
-    "fields": {
-      "desc": "The managers of any related streams",
-      "template": null
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "stream_managers"
-  },
-  {
-    "fields": {
-      "desc": "The authors of a submitted draft",
-      "template": null
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "submission_authors"
-  },
-  {
-    "fields": {
-      "desc": "The people who can confirm a draft submission",
-      "template": null
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "submission_confirmers"
-  },
-  {
-    "fields": {
-      "desc": "The chairs of a submitted draft belonging to a group",
-      "template": null
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "submission_group_chairs"
-  },
-  {
-    "fields": {
-      "desc": "The mailing list of the group associated with a submitted document",
-      "template": ""
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "submission_group_mail_list"
-  },
-  {
-    "fields": {
-      "desc": "IETF manual post handling",
-      "template": "<ietf-manualpost@ietf.org>"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "submission_manualpost_handling"
-  },
-  {
-    "fields": {
-      "desc": "The person that submitted a draft",
-      "template": "{{submission.submitter}}"
-    },
-    "model": "mailtrigger.recipient",
-    "pk": "submission_submitter"
-  },
-  {
-    "fields": {
-      "name": "Area meetings cannot conflict with anything else in their area",
-      "penalty": 1000
-    },
-    "model": "meeting.businessconstraint",
-    "pk": "area_overlapping_in_area"
-  },
-  {
-    "fields": {
-      "name": "Area meetings cannot conflict with anything else in their area",
-      "penalty": 10000
-    },
-    "model": "meeting.businessconstraint",
-    "pk": "area_overlapping_in_area"
-  },
-  {
-    "fields": {
-      "name": "Area meetings cannot conflict with other area meetings",
-      "penalty": 500
-    },
-    "model": "meeting.businessconstraint",
-    "pk": "area_overlapping_other_area"
-  },
-  {
-    "fields": {
-      "name": "Area meetings cannot conflict with other area meetings",
-      "penalty": 100000
-    },
-    "model": "meeting.businessconstraint",
-    "pk": "area_overlapping_other_area"
-  },
-  {
-    "fields": {
-      "name": "BoFs cannot conflict with any area-wide meetings (of any area)",
-      "penalty": 1000
-    },
-    "model": "meeting.businessconstraint",
-    "pk": "bof_overlapping_area_meeting"
-  },
-  {
-    "fields": {
-      "name": "BoFs cannot conflict with any area-wide meetings (of any area)",
-      "penalty": 10000
-    },
-    "model": "meeting.businessconstraint",
-    "pk": "bof_overlapping_area_meeting"
-  },
-  {
-    "fields": {
-      "name": "BoFs cannot conflict with any other WGs in their area",
-      "penalty": 10000
-    },
-    "model": "meeting.businessconstraint",
-    "pk": "bof_overlapping_area_wg"
-  },
-  {
-    "fields": {
-      "name": "BoFs cannot conflict with any other WGs in their area",
-      "penalty": 100000
-    },
-    "model": "meeting.businessconstraint",
-    "pk": "bof_overlapping_area_wg"
-  },
-  {
-    "fields": {
-      "name": "BoFs cannot conflict with any other BoFs",
-      "penalty": 10000
-    },
-    "model": "meeting.businessconstraint",
-    "pk": "bof_overlapping_bof"
-  },
-  {
-    "fields": {
-      "name": "BoFs cannot conflict with any other BoFs",
-      "penalty": 100000
-    },
-    "model": "meeting.businessconstraint",
-    "pk": "bof_overlapping_bof"
-  },
-  {
-    "fields": {
-      "name": "BoFs cannot conflict with PRGs",
-      "penalty": 10000
-    },
-    "model": "meeting.businessconstraint",
-    "pk": "bof_overlapping_prg"
-  },
-  {
-    "fields": {
-      "name": "BoFs cannot conflict with PRGs",
-      "penalty": 100000
-    },
-    "model": "meeting.businessconstraint",
-    "pk": "bof_overlapping_prg"
-  },
-  {
-    "fields": {
-      "name": "WGs overseen by the same Area Director should not conflict",
-      "penalty": 100
-    },
-    "model": "meeting.businessconstraint",
-    "pk": "session_overlap_ad"
-  },
-  {
-    "fields": {
-      "name": "WGs overseen by the same Area Director should not conflict",
-      "penalty": 100
-    },
-    "model": "meeting.businessconstraint",
-    "pk": "session_overlap_ad"
-  },
-  {
-    "fields": {
-      "name": "Sessions should be scheduled according to requested duration and attendees",
-      "penalty": 100000
-    },
-    "model": "meeting.businessconstraint",
-    "pk": "session_requires_trim"
-  },
-  {
-    "fields": {
-      "name": "Sessions should be scheduled in requested order",
-      "penalty": 100000
-    },
-    "model": "meeting.businessconstraint",
-    "pk": "sessions_out_of_order"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "AD Office Hours",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.agendatypename",
-    "pk": "ad"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "IETF Agenda",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.agendatypename",
-    "pk": "ietf"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Side Meetings",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.agendatypename",
-    "pk": "side"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Workshops",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.agendatypename",
-    "pk": "workshop"
-  },
-  {
-    "fields": {
-      "blocking": false,
-      "desc": "",
-      "name": "Abstain",
-      "order": 4,
-      "used": true
-    },
-    "model": "name.ballotpositionname",
-    "pk": "abstain"
-  },
-  {
-    "fields": {
-      "blocking": true,
-      "desc": "",
-      "name": "Block",
-      "order": 3,
-      "used": true
-    },
-    "model": "name.ballotpositionname",
-    "pk": "block"
-  },
-  {
-    "fields": {
-      "blocking": true,
-      "desc": "",
-      "name": "Discuss",
-      "order": 3,
-      "used": true
-    },
-    "model": "name.ballotpositionname",
-    "pk": "discuss"
-  },
-  {
-    "fields": {
-      "blocking": false,
-      "desc": "",
-      "name": "Need More Time",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.ballotpositionname",
-    "pk": "moretime"
-  },
-  {
-    "fields": {
-      "blocking": false,
-      "desc": "",
-      "name": "No Objection",
-      "order": 2,
-      "used": true
-    },
-    "model": "name.ballotpositionname",
-    "pk": "noobj"
-  },
-  {
-    "fields": {
-      "blocking": false,
-      "desc": "",
-      "name": "No Record",
-      "order": 6,
-      "used": true
-    },
-    "model": "name.ballotpositionname",
-    "pk": "norecord"
-  },
-  {
-    "fields": {
-      "blocking": false,
-      "desc": "",
-      "name": "Not Ready",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.ballotpositionname",
-    "pk": "notready"
-  },
-  {
-    "fields": {
-      "blocking": false,
-      "desc": "",
-      "name": "Recuse",
-      "order": 5,
-      "used": true
-    },
-    "model": "name.ballotpositionname",
-    "pk": "recuse"
-  },
-  {
-    "fields": {
-      "blocking": false,
-      "desc": "",
-      "name": "Yes",
-      "order": 1,
-      "used": true
-    },
-    "model": "name.ballotpositionname",
-    "pk": "yes"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "editor_label": "(person)",
-      "name": "Person must be present",
-      "order": 0,
-      "penalty": 10000,
-      "used": true
-    },
-    "model": "name.constraintname",
-    "pk": "bethere"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "editor_label": "(2)",
-      "name": "Conflicts with (secondary)",
-      "order": 0,
-      "penalty": 10000,
-      "used": true
-    },
-    "model": "name.constraintname",
-    "pk": "conflic2"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "editor_label": "(3)",
-      "name": "Conflicts with (tertiary)",
-      "order": 0,
-      "penalty": 100000,
-      "used": true
-    },
-    "model": "name.constraintname",
-    "pk": "conflic3"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "editor_label": "(1)",
-      "name": "Conflicts with",
-      "order": 0,
-      "penalty": 100000,
-      "used": true
-    },
-    "model": "name.constraintname",
-    "pk": "conflict"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "editor_label": "time_relation",
-      "name": "Preference for time between sessions",
-      "order": 0,
-      "penalty": 1000,
-      "used": true
-    },
-    "model": "name.constraintname",
-    "pk": "time_relation"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "editor_label": "timerange",
-      "name": "Can't meet within timerange",
-      "order": 0,
-      "penalty": 1000000,
-      "used": true
-    },
-    "model": "name.constraintname",
-    "pk": "timerange"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "editor_label": "wg_adjacent",
-      "name": "Request for adjacent scheduling with another WG",
-      "order": 0,
-      "penalty": 1000,
-      "used": true
-    },
-    "model": "name.constraintname",
-    "pk": "wg_adjacent"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Africa",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.continentname",
-    "pk": "africa"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Antarctica",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.continentname",
-    "pk": "antarctica"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Asia",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.continentname",
-    "pk": "asia"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Europe",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.continentname",
-    "pk": "europe"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "North America",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.continentname",
-    "pk": "north-america"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Oceania",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.continentname",
-    "pk": "oceania"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "South America",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.continentname",
-    "pk": "south-america"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": false,
-      "name": "Andorra",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "AD"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "United Arab Emirates",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "AE"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Afghanistan",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "AF"
-  },
-  {
-    "fields": {
-      "continent": "north-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Antigua and Barbuda",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "AG"
-  },
-  {
-    "fields": {
-      "continent": "north-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Anguilla",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "AI"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": false,
-      "name": "Albania",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "AL"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Armenia",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "AM"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Angola",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "AO"
-  },
-  {
-    "fields": {
-      "continent": "antarctica",
-      "desc": "",
-      "in_eu": false,
-      "name": "Antarctica",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "AQ"
-  },
-  {
-    "fields": {
-      "continent": "south-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Argentina",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "AR"
-  },
-  {
-    "fields": {
-      "continent": "oceania",
-      "desc": "",
-      "in_eu": false,
-      "name": "American Samoa",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "AS"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": true,
-      "name": "Austria",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "AT"
-  },
-  {
-    "fields": {
-      "continent": "oceania",
-      "desc": "",
-      "in_eu": false,
-      "name": "Australia",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "AU"
-  },
-  {
-    "fields": {
-      "continent": "north-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Aruba",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "AW"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": false,
-      "name": "ƅland Islands",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "AX"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Azerbaijan",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "AZ"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": false,
-      "name": "Bosnia and Herzegovina",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "BA"
-  },
-  {
-    "fields": {
-      "continent": "north-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Barbados",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "BB"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Bangladesh",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "BD"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": true,
-      "name": "Belgium",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "BE"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Burkina Faso",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "BF"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": true,
-      "name": "Bulgaria",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "BG"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Bahrain",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "BH"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Burundi",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "BI"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Benin",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "BJ"
-  },
-  {
-    "fields": {
-      "continent": "north-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Saint BarthƩlemy",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "BL"
-  },
-  {
-    "fields": {
-      "continent": "north-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Bermuda",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "BM"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Brunei",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "BN"
-  },
-  {
-    "fields": {
-      "continent": "south-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Bolivia",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "BO"
-  },
-  {
-    "fields": {
-      "continent": "north-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Bonaire, Sint Eustatius and Saba",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "BQ"
-  },
-  {
-    "fields": {
-      "continent": "south-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Brazil",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "BR"
-  },
-  {
-    "fields": {
-      "continent": "north-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Bahamas",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "BS"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Bhutan",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "BT"
-  },
-  {
-    "fields": {
-      "continent": "antarctica",
-      "desc": "",
-      "in_eu": false,
-      "name": "Bouvet Island",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "BV"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Botswana",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "BW"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": false,
-      "name": "Belarus",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "BY"
-  },
-  {
-    "fields": {
-      "continent": "north-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Belize",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "BZ"
-  },
-  {
-    "fields": {
-      "continent": "north-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Canada",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "CA"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Cocos (Keeling) Islands",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "CC"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Congo (the Democratic Republic of the)",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "CD"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Central African Republic",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "CF"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Congo",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "CG"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": false,
-      "name": "Switzerland",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "CH"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "CĆ“te d'Ivoire",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "CI"
-  },
-  {
-    "fields": {
-      "continent": "oceania",
-      "desc": "",
-      "in_eu": false,
-      "name": "Cook Islands",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "CK"
-  },
-  {
-    "fields": {
-      "continent": "south-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Chile",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "CL"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Cameroon",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "CM"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "China",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "CN"
-  },
-  {
-    "fields": {
-      "continent": "south-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Colombia",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "CO"
-  },
-  {
-    "fields": {
-      "continent": "north-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Costa Rica",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "CR"
-  },
-  {
-    "fields": {
-      "continent": "north-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Cuba",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "CU"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Cabo Verde",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "CV"
-  },
-  {
-    "fields": {
-      "continent": "north-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "CuraƧao",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "CW"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Christmas Island",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "CX"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": true,
-      "name": "Cyprus",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "CY"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": true,
-      "name": "Czech Republic",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "CZ"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": true,
-      "name": "Germany",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "DE"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Djibouti",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "DJ"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": true,
-      "name": "Denmark",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "DK"
-  },
-  {
-    "fields": {
-      "continent": "north-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Dominica",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "DM"
-  },
-  {
-    "fields": {
-      "continent": "north-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Dominican Republic",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "DO"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Algeria",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "DZ"
-  },
-  {
-    "fields": {
-      "continent": "south-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Ecuador",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "EC"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": true,
-      "name": "Estonia",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "EE"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Egypt",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "EG"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Western Sahara",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "EH"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Eritrea",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "ER"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": true,
-      "name": "Spain",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "ES"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Ethiopia",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "ET"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": true,
-      "name": "Finland",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "FI"
-  },
-  {
-    "fields": {
-      "continent": "oceania",
-      "desc": "",
-      "in_eu": false,
-      "name": "Fiji",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "FJ"
-  },
-  {
-    "fields": {
-      "continent": "south-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Falkland Islands  [Malvinas]",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "FK"
-  },
-  {
-    "fields": {
-      "continent": "oceania",
-      "desc": "",
-      "in_eu": false,
-      "name": "Micronesia (Federated States of)",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "FM"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": false,
-      "name": "Faroe Islands",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "FO"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": true,
-      "name": "France",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "FR"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Gabon",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "GA"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": true,
-      "name": "United Kingdom",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "GB"
-  },
-  {
-    "fields": {
-      "continent": "north-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Grenada",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "GD"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Georgia",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "GE"
-  },
-  {
-    "fields": {
-      "continent": "south-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "French Guiana",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "GF"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": false,
-      "name": "Guernsey",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "GG"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Ghana",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "GH"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": false,
-      "name": "Gibraltar",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "GI"
-  },
-  {
-    "fields": {
-      "continent": "north-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Greenland",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "GL"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Gambia",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "GM"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Guinea",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "GN"
-  },
-  {
-    "fields": {
-      "continent": "north-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Guadeloupe",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "GP"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Equatorial Guinea",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "GQ"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": true,
-      "name": "Greece",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "GR"
-  },
-  {
-    "fields": {
-      "continent": "antarctica",
-      "desc": "",
-      "in_eu": false,
-      "name": "South Georgia and the South Sandwich Islands",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "GS"
-  },
-  {
-    "fields": {
-      "continent": "north-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Guatemala",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "GT"
-  },
-  {
-    "fields": {
-      "continent": "oceania",
-      "desc": "",
-      "in_eu": false,
-      "name": "Guam",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "GU"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Guinea-Bissau",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "GW"
-  },
-  {
-    "fields": {
-      "continent": "south-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Guyana",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "GY"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Hong Kong",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "HK"
-  },
-  {
-    "fields": {
-      "continent": "antarctica",
-      "desc": "",
-      "in_eu": false,
-      "name": "Heard Island and McDonald Islands",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "HM"
-  },
-  {
-    "fields": {
-      "continent": "north-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Honduras",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "HN"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": true,
-      "name": "Croatia",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "HR"
-  },
-  {
-    "fields": {
-      "continent": "north-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Haiti",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "HT"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": true,
-      "name": "Hungary",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "HU"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Indonesia",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "ID"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": true,
-      "name": "Ireland",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "IE"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Israel",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "IL"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": false,
-      "name": "Isle of Man",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "IM"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "India",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "IN"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "British Indian Ocean Territory",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "IO"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Iraq",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "IQ"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Iran",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "IR"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": false,
-      "name": "Iceland",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "IS"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": true,
-      "name": "Italy",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "IT"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": false,
-      "name": "Jersey",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "JE"
-  },
-  {
-    "fields": {
-      "continent": "north-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Jamaica",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "JM"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Jordan",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "JO"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Japan",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "JP"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Kenya",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "KE"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Kyrgyzstan",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "KG"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Cambodia",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "KH"
-  },
-  {
-    "fields": {
-      "continent": "oceania",
-      "desc": "",
-      "in_eu": false,
-      "name": "Kiribati",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "KI"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Comoros",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "KM"
-  },
-  {
-    "fields": {
-      "continent": "north-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Saint Kitts and Nevis",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "KN"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "North Korea",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "KP"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "South Korea",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "KR"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Kuwait",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "KW"
-  },
-  {
-    "fields": {
-      "continent": "north-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Cayman Islands",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "KY"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Kazakhstan",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "KZ"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Laos",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "LA"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Lebanon",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "LB"
-  },
-  {
-    "fields": {
-      "continent": "north-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Saint Lucia",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "LC"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": false,
-      "name": "Liechtenstein",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "LI"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Sri Lanka",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "LK"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Liberia",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "LR"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Lesotho",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "LS"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": true,
-      "name": "Lithuania",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "LT"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": true,
-      "name": "Luxembourg",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "LU"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": true,
-      "name": "Latvia",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "LV"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Libya",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "LY"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Morocco",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "MA"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": false,
-      "name": "Monaco",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "MC"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": false,
-      "name": "Moldova",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "MD"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": false,
-      "name": "Montenegro",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "ME"
-  },
-  {
-    "fields": {
-      "continent": "north-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Saint Martin (French part)",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "MF"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Madagascar",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "MG"
-  },
-  {
-    "fields": {
-      "continent": "oceania",
-      "desc": "",
-      "in_eu": false,
-      "name": "Marshall Islands",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "MH"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": false,
-      "name": "Macedonia",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "MK"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Mali",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "ML"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Myanmar",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "MM"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Mongolia",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "MN"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Macao",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "MO"
-  },
-  {
-    "fields": {
-      "continent": "oceania",
-      "desc": "",
-      "in_eu": false,
-      "name": "Northern Mariana Islands",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "MP"
-  },
-  {
-    "fields": {
-      "continent": "north-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Martinique",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "MQ"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Mauritania",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "MR"
-  },
-  {
-    "fields": {
-      "continent": "north-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Montserrat",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "MS"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": true,
-      "name": "Malta",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "MT"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Mauritius",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "MU"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Maldives",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "MV"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Malawi",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "MW"
-  },
-  {
-    "fields": {
-      "continent": "north-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Mexico",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "MX"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Malaysia",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "MY"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Mozambique",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "MZ"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Namibia",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "NA"
-  },
-  {
-    "fields": {
-      "continent": "oceania",
-      "desc": "",
-      "in_eu": false,
-      "name": "New Caledonia",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "NC"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Niger",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "NE"
-  },
-  {
-    "fields": {
-      "continent": "oceania",
-      "desc": "",
-      "in_eu": false,
-      "name": "Norfolk Island",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "NF"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Nigeria",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "NG"
-  },
-  {
-    "fields": {
-      "continent": "north-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Nicaragua",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "NI"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": true,
-      "name": "Netherlands",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "NL"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": false,
-      "name": "Norway",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "NO"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Nepal",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "NP"
-  },
-  {
-    "fields": {
-      "continent": "oceania",
-      "desc": "",
-      "in_eu": false,
-      "name": "Nauru",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "NR"
-  },
-  {
-    "fields": {
-      "continent": "oceania",
-      "desc": "",
-      "in_eu": false,
-      "name": "Niue",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "NU"
-  },
-  {
-    "fields": {
-      "continent": "oceania",
-      "desc": "",
-      "in_eu": false,
-      "name": "New Zealand",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "NZ"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Oman",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "OM"
-  },
-  {
-    "fields": {
-      "continent": "north-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Panama",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "PA"
-  },
-  {
-    "fields": {
-      "continent": "south-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Peru",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "PE"
-  },
-  {
-    "fields": {
-      "continent": "oceania",
-      "desc": "",
-      "in_eu": false,
-      "name": "French Polynesia",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "PF"
-  },
-  {
-    "fields": {
-      "continent": "oceania",
-      "desc": "",
-      "in_eu": false,
-      "name": "Papua New Guinea",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "PG"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Philippines",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "PH"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Pakistan",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "PK"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": true,
-      "name": "Poland",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "PL"
-  },
-  {
-    "fields": {
-      "continent": "north-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Saint Pierre and Miquelon",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "PM"
-  },
-  {
-    "fields": {
-      "continent": "oceania",
-      "desc": "",
-      "in_eu": false,
-      "name": "Pitcairn",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "PN"
-  },
-  {
-    "fields": {
-      "continent": "north-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Puerto Rico",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "PR"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Palestine, State of",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "PS"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": true,
-      "name": "Portugal",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "PT"
-  },
-  {
-    "fields": {
-      "continent": "oceania",
-      "desc": "",
-      "in_eu": false,
-      "name": "Palau",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "PW"
-  },
-  {
-    "fields": {
-      "continent": "south-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Paraguay",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "PY"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Qatar",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "QA"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "RĆ©union",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "RE"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": true,
-      "name": "Romania",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "RO"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": false,
-      "name": "Serbia",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "RS"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": false,
-      "name": "Russia",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "RU"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Rwanda",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "RW"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Saudi Arabia",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "SA"
-  },
-  {
-    "fields": {
-      "continent": "oceania",
-      "desc": "",
-      "in_eu": false,
-      "name": "Solomon Islands",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "SB"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Seychelles",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "SC"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Sudan",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "SD"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": true,
-      "name": "Sweden",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "SE"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Singapore",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "SG"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Saint Helena, Ascension and Tristan da Cunha",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "SH"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": true,
-      "name": "Slovenia",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "SI"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": false,
-      "name": "Svalbard and Jan Mayen",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "SJ"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": true,
-      "name": "Slovakia",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "SK"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Sierra Leone",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "SL"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": false,
-      "name": "San Marino",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "SM"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Senegal",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "SN"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Somalia",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "SO"
-  },
-  {
-    "fields": {
-      "continent": "south-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Suriname",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "SR"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "South Sudan",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "SS"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Sao Tome and Principe",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "ST"
-  },
-  {
-    "fields": {
-      "continent": "north-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "El Salvador",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "SV"
-  },
-  {
-    "fields": {
-      "continent": "north-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Sint Maarten (Dutch part)",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "SX"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Syria",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "SY"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Swaziland",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "SZ"
-  },
-  {
-    "fields": {
-      "continent": "north-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Turks and Caicos Islands",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "TC"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Chad",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "TD"
-  },
-  {
-    "fields": {
-      "continent": "antarctica",
-      "desc": "",
-      "in_eu": false,
-      "name": "French Southern Territories",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "TF"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Togo",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "TG"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Thailand",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "TH"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Tajikistan",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "TJ"
-  },
-  {
-    "fields": {
-      "continent": "oceania",
-      "desc": "",
-      "in_eu": false,
-      "name": "Tokelau",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "TK"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Timor-Leste",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "TL"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Turkmenistan",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "TM"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Tunisia",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "TN"
-  },
-  {
-    "fields": {
-      "continent": "oceania",
-      "desc": "",
-      "in_eu": false,
-      "name": "Tonga",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "TO"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": false,
-      "name": "Turkey",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "TR"
-  },
-  {
-    "fields": {
-      "continent": "north-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Trinidad and Tobago",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "TT"
-  },
-  {
-    "fields": {
-      "continent": "oceania",
-      "desc": "",
-      "in_eu": false,
-      "name": "Tuvalu",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "TV"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Taiwan",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "TW"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Tanzania",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "TZ"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": false,
-      "name": "Ukraine",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "UA"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Uganda",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "UG"
-  },
-  {
-    "fields": {
-      "continent": "oceania",
-      "desc": "",
-      "in_eu": false,
-      "name": "United States Minor Outlying Islands",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "UM"
-  },
-  {
-    "fields": {
-      "continent": "north-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "United States of America",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "US"
-  },
-  {
-    "fields": {
-      "continent": "south-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Uruguay",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "UY"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Uzbekistan",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "UZ"
-  },
-  {
-    "fields": {
-      "continent": "europe",
-      "desc": "",
-      "in_eu": false,
-      "name": "Holy See",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "VA"
-  },
-  {
-    "fields": {
-      "continent": "north-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Saint Vincent and the Grenadines",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "VC"
-  },
-  {
-    "fields": {
-      "continent": "south-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Venezuela",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "VE"
-  },
-  {
-    "fields": {
-      "continent": "north-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Virgin Islands (British)",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "VG"
-  },
-  {
-    "fields": {
-      "continent": "north-america",
-      "desc": "",
-      "in_eu": false,
-      "name": "Virgin Islands (U.S.)",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "VI"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Vietnam",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "VN"
-  },
-  {
-    "fields": {
-      "continent": "oceania",
-      "desc": "",
-      "in_eu": false,
-      "name": "Vanuatu",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "VU"
-  },
-  {
-    "fields": {
-      "continent": "oceania",
-      "desc": "",
-      "in_eu": false,
-      "name": "Wallis and Futuna",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "WF"
-  },
-  {
-    "fields": {
-      "continent": "oceania",
-      "desc": "",
-      "in_eu": false,
-      "name": "Samoa",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "WS"
-  },
-  {
-    "fields": {
-      "continent": "asia",
-      "desc": "",
-      "in_eu": false,
-      "name": "Yemen",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "YE"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Mayotte",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "YT"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "South Africa",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "ZA"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Zambia",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "ZM"
-  },
-  {
-    "fields": {
-      "continent": "africa",
-      "desc": "",
-      "in_eu": false,
-      "name": "Zimbabwe",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.countryname",
-    "pk": "ZW"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Django",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.dbtemplatetypename",
-    "pk": "django"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Plain",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.dbtemplatetypename",
-    "pk": "plain"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "reStructuredText",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.dbtemplatetypename",
-    "pk": "rst"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "conflict reviews",
-      "order": 0,
-      "revname": "Conflict reviewed by",
-      "used": true
-    },
-    "model": "name.docrelationshipname",
-    "pk": "conflrev"
-  },
-  {
-    "fields": {
-      "desc": "Approval for downref",
-      "name": "approves downref to",
-      "order": 0,
-      "revname": "was approved for downref by",
-      "used": true
-    },
-    "model": "name.docrelationshipname",
-    "pk": "downref-approval"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Obsoletes",
-      "order": 0,
-      "revname": "Obsoleted by",
-      "used": true
-    },
-    "model": "name.docrelationshipname",
-    "pk": "obs"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Possibly Replaces",
-      "order": 0,
-      "revname": "Possibly Replaced By",
-      "used": true
-    },
-    "model": "name.docrelationshipname",
-    "pk": "possibly-replaces"
-  },
-  {
-    "fields": {
-      "desc": "Informative Reference",
-      "name": "informatively references",
-      "order": 0,
-      "revname": "is informatively referenced by",
-      "used": true
-    },
-    "model": "name.docrelationshipname",
-    "pk": "refinfo"
-  },
-  {
-    "fields": {
-      "desc": "Normative Reference",
-      "name": "normatively references",
-      "order": 0,
-      "revname": "is normatively referenced by",
-      "used": true
-    },
-    "model": "name.docrelationshipname",
-    "pk": "refnorm"
-  },
-  {
-    "fields": {
-      "desc": "A reference found in a document which does not have split normative/informative reference sections.",
-      "name": "Reference",
-      "order": 0,
-      "revname": "Referenced by",
-      "used": true
-    },
-    "model": "name.docrelationshipname",
-    "pk": "refold"
-  },
-  {
-    "fields": {
-      "desc": "Reference of unknown type, likely found in the text of the document.",
-      "name": "Possible Reference",
-      "order": 3,
-      "revname": "Possibly Referenced By",
-      "used": true
-    },
-    "model": "name.docrelationshipname",
-    "pk": "refunk"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Replaces",
-      "order": 0,
-      "revname": "Replaced by",
-      "used": true
-    },
-    "model": "name.docrelationshipname",
-    "pk": "replaces"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Moves to BCP",
-      "order": 0,
-      "revname": "Moved to BCP by",
-      "used": true
-    },
-    "model": "name.docrelationshipname",
-    "pk": "tobcp"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Moves to Experimental",
-      "order": 0,
-      "revname": "Moved to Experimental by",
-      "used": true
-    },
-    "model": "name.docrelationshipname",
-    "pk": "toexp"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Moves to Historic",
-      "order": 0,
-      "revname": "Moved to Historic by",
-      "used": true
-    },
-    "model": "name.docrelationshipname",
-    "pk": "tohist"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Moves to Informational",
-      "order": 0,
-      "revname": "Moved to Informational by",
-      "used": true
-    },
-    "model": "name.docrelationshipname",
-    "pk": "toinf"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Moves to Internet Standard",
-      "order": 0,
-      "revname": "Moved to Internet Standard by",
-      "used": true
-    },
-    "model": "name.docrelationshipname",
-    "pk": "tois"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Moves to Proposed Standard",
-      "order": 0,
-      "revname": "Moved to Proposed Standard by",
-      "used": true
-    },
-    "model": "name.docrelationshipname",
-    "pk": "tops"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Updates",
-      "order": 0,
-      "revname": "Updated by",
-      "used": true
-    },
-    "model": "name.docrelationshipname",
-    "pk": "updates"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Stream state should change",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.docremindertypename",
-    "pk": "stream-s"
-  },
-  {
-    "fields": {
-      "desc": "A generic substate indicating that the shepherding AD has the action item to determine appropriate next steps. In particular, the appropriate steps (and the corresponding next state or substate) depend entirely on the nature of the issues that were raised and can only be decided with active involvement of the shepherding AD. Examples include:\n\n- if another AD raises an issue, the shepherding AD may first iterate with the other AD to get a better understanding of the exact issue. Or, the shepherding AD may attempt to argue that the issue is not serious enough to bring to the attention of the authors/WG.\n\n- if a documented issue is forwarded to a WG, some further iteration may be needed before it can be determined whether a new revision is needed or whether the WG response to an issue clarifies the issue sufficiently.\n\n- when a new revision appears, the shepherding AD will first look at the changes to determine whether they believe all outstanding issues have been raised satisfactorily, prior to asking the ADs who raised the original issues to verify the changes.",
-      "name": "AD Followup",
-      "order": 2,
-      "used": true
-    },
-    "model": "name.doctagname",
-    "pk": "ad-f-up"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Approved in minutes",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.doctagname",
-    "pk": "app-min"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Has errata",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.doctagname",
-    "pk": "errata"
-  },
-  {
-    "fields": {
-      "desc": "The document is awaiting review or input from an external party (i.e, someone other than the shepherding AD, the authors, or the WG). See the \"note\" field for more details on who has the action.",
-      "name": "External Party",
-      "order": 3,
-      "used": true
-    },
-    "model": "name.doctagname",
-    "pk": "extpty"
-  },
-  {
-    "fields": {
-      "desc": "The document has IANA actions that are not yet completed.",
-      "name": "IANA",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.doctagname",
-    "pk": "iana"
-  },
-  {
-    "fields": {
-      "desc": "RFC-Editor/IANA Registration Coordination",
-      "name": "IANA coordination",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.doctagname",
-    "pk": "iana-crd"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "IESG Review Completed",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.doctagname",
-    "pk": "iesg-com"
-  },
-  {
-    "fields": {
-      "desc": "Awaiting missing normative reference",
-      "name": "Missing references",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.doctagname",
-    "pk": "missref"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Author or Editor Needed",
-      "order": 4,
-      "used": true
-    },
-    "model": "name.doctagname",
-    "pk": "need-aut"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Editor Needed",
-      "order": 1,
-      "used": true
-    },
-    "model": "name.doctagname",
-    "pk": "need-ed"
-  },
-  {
-    "fields": {
-      "desc": "An updated I-D is needed to address the issues that have been raised.",
-      "name": "Revised I-D Needed",
-      "order": 5,
-      "used": true
-    },
-    "model": "name.doctagname",
-    "pk": "need-rev"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Shepherd Needed",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.doctagname",
-    "pk": "need-sh"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Polled for WG adoption but not adopted",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.doctagname",
-    "pk": "no-adopt"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Other - see Comment Log",
-      "order": 11,
-      "used": true
-    },
-    "model": "name.doctagname",
-    "pk": "other"
-  },
-  {
-    "fields": {
-      "desc": "IESG discussions on the document have raised some issues that need to be brought to the attention of the authors/WG, but those issues have not been written down yet. (It is common for discussions during a telechat to result in such situations. An AD may raise a possible issue during a telechat and only decide as a result of that discussion whether the issue is worth formally writing up and bringing to the attention of the authors/WG). A document stays in the \"Point Raised - Writeup Needed\" state until *ALL* IESG comments that have been raised have been documented.",
-      "name": "Point Raised - writeup needed",
-      "order": 1,
-      "used": false
-    },
-    "model": "name.doctagname",
-    "pk": "point"
-  },
-  {
-    "fields": {
-      "desc": "Holding for normative reference",
-      "name": "Holding for references",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.doctagname",
-    "pk": "ref"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Revised I-D Needed - Issue raised by AD",
-      "order": 8,
-      "used": true
-    },
-    "model": "name.doctagname",
-    "pk": "rev-ad"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Revised I-D Needed - Issue raised by IESG",
-      "order": 9,
-      "used": true
-    },
-    "model": "name.doctagname",
-    "pk": "rev-iesg"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Revised I-D Needed - Issue raised by WG",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.doctagname",
-    "pk": "rev-wg"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Revised I-D Needed - Issue raised by WGLC",
-      "order": 7,
-      "used": true
-    },
-    "model": "name.doctagname",
-    "pk": "rev-wglc"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Review by RFC Editor",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.doctagname",
-    "pk": "rfc-rev"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Document Shepherd Followup",
-      "order": 4,
-      "used": true
-    },
-    "model": "name.doctagname",
-    "pk": "sh-f-up"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Doc Shepherd Follow-up Underway",
-      "order": 10,
-      "used": true
-    },
-    "model": "name.doctagname",
-    "pk": "sheph-u"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Has verified errata",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.doctagname",
-    "pk": "verified-errata"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Via RFC Editor",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.doctagname",
-    "pk": "via-rfc"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Waiting for Dependency on Other Document",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.doctagname",
-    "pk": "w-dep"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Awaiting Expert Review/Resolution of Issues Raised",
-      "order": 1,
-      "used": true
-    },
-    "model": "name.doctagname",
-    "pk": "w-expert"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Awaiting External Review/Resolution of Issues Raised",
-      "order": 2,
-      "used": true
-    },
-    "model": "name.doctagname",
-    "pk": "w-extern"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Awaiting Merge with Other Document",
-      "order": 3,
-      "used": true
-    },
-    "model": "name.doctagname",
-    "pk": "w-merge"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Waiting for Partner Feedback",
-      "order": 2,
-      "used": true
-    },
-    "model": "name.doctagname",
-    "pk": "w-part"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Waiting for Referenced Document",
-      "order": 5,
-      "used": true
-    },
-    "model": "name.doctagname",
-    "pk": "w-refdoc"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Waiting for Referencing Document",
-      "order": 6,
-      "used": true
-    },
-    "model": "name.doctagname",
-    "pk": "w-refing"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Awaiting Reviews",
-      "order": 3,
-      "used": true
-    },
-    "model": "name.doctagname",
-    "pk": "w-review"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Agenda",
-      "order": 0,
-      "prefix": "agenda",
-      "used": true
-    },
-    "model": "name.doctypename",
-    "pk": "agenda"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Bluesheets",
-      "order": 0,
-      "prefix": "bluesheets",
-      "used": true
-    },
-    "model": "name.doctypename",
-    "pk": "bluesheets"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Charter",
-      "order": 0,
-      "prefix": "charter",
-      "used": true
-    },
-    "model": "name.doctypename",
-    "pk": "charter"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Conflict Review",
-      "order": 0,
-      "prefix": "conflict-review",
-      "used": true
-    },
-    "model": "name.doctypename",
-    "pk": "conflrev"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Draft",
-      "order": 0,
-      "prefix": "draft",
-      "used": true
-    },
-    "model": "name.doctypename",
-    "pk": "draft"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Liaison Attachment",
-      "order": 0,
-      "prefix": "liai-att",
-      "used": true
-    },
-    "model": "name.doctypename",
-    "pk": "liai-att"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Liaison",
-      "order": 0,
-      "prefix": "liaison",
-      "used": false
-    },
-    "model": "name.doctypename",
-    "pk": "liaison"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Minutes",
-      "order": 0,
-      "prefix": "minutes",
-      "used": true
-    },
-    "model": "name.doctypename",
-    "pk": "minutes"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Recording",
-      "order": 0,
-      "prefix": "recording",
-      "used": true
-    },
-    "model": "name.doctypename",
-    "pk": "recording"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Review",
-      "order": 0,
-      "prefix": "review",
-      "used": true
-    },
-    "model": "name.doctypename",
-    "pk": "review"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Shepherd's writeup",
-      "order": 0,
-      "prefix": "shepherd",
-      "used": false
-    },
-    "model": "name.doctypename",
-    "pk": "shepwrit"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Slides",
-      "order": 0,
-      "prefix": "slides",
-      "used": true
-    },
-    "model": "name.doctypename",
-    "pk": "slides"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Status Change",
-      "order": 0,
-      "prefix": "status-change",
-      "used": true
-    },
-    "model": "name.doctypename",
-    "pk": "statchg"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Document issue tracker",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.docurltagname",
-    "pk": "issues"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Document source repository",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.docurltagname",
-    "pk": "repository"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Document wiki",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.docurltagname",
-    "pk": "wiki"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Yang impact analysis",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.docurltagname",
-    "pk": "yang-impact-analysis"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Extracted yang module",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.docurltagname",
-    "pk": "yang-module"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Yang module metadata",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.docurltagname",
-    "pk": "yang-module-metadata"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Awaiting Approval from Previous Version Authors",
-      "next_states": [
-        "confirmed",
-        "cancel",
-        "posted"
-      ],
-      "order": 3,
-      "used": true
-    },
-    "model": "name.draftsubmissionstatename",
-    "pk": "aut-appr"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Awaiting Submitter Authentication",
-      "next_states": [
-        "confirmed",
-        "cancel",
-        "posted"
-      ],
-      "order": 2,
-      "used": true
-    },
-    "model": "name.draftsubmissionstatename",
-    "pk": "auth"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Cancelled",
-      "next_states": [],
-      "order": 6,
-      "used": true
-    },
-    "model": "name.draftsubmissionstatename",
-    "pk": "cancel"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Confirmed",
-      "next_states": [
-        "cancel",
-        "posted"
-      ],
-      "order": 0,
-      "used": true
-    },
-    "model": "name.draftsubmissionstatename",
-    "pk": "confirmed"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Awaiting Initial Version Approval",
-      "next_states": [
-        "cancel",
-        "posted"
-      ],
-      "order": 4,
-      "used": true
-    },
-    "model": "name.draftsubmissionstatename",
-    "pk": "grp-appr"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Awaiting Manual Post",
-      "next_states": [
-        "cancel",
-        "posted"
-      ],
-      "order": 5,
-      "used": true
-    },
-    "model": "name.draftsubmissionstatename",
-    "pk": "manual"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Posted",
-      "next_states": [],
-      "order": 7,
-      "used": true
-    },
-    "model": "name.draftsubmissionstatename",
-    "pk": "posted"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Uploaded",
-      "next_states": [
-        "auth",
-        "aut-appr",
-        "grp-appr",
-        "manual",
-        "cancel"
-      ],
-      "order": 1,
-      "used": true
-    },
-    "model": "name.draftsubmissionstatename",
-    "pk": "uploaded"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Manual Post Waiting for Draft",
-      "next_states": [
-        "cancel",
-        "posted"
-      ],
-      "order": 8,
-      "used": true
-    },
-    "model": "name.draftsubmissionstatename",
-    "pk": "waiting-for-draft"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Comment",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.feedbacktypename",
-    "pk": "comment"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Junk",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.feedbacktypename",
-    "pk": "junk"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Nomination",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.feedbacktypename",
-    "pk": "nomina"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Questionnaire response",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.feedbacktypename",
-    "pk": "questio"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Read",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.feedbacktypename",
-    "pk": "read"
-  },
-  {
-    "fields": {
-      "desc": "Augmented Backus-Naur Form",
-      "name": "ABNF",
-      "order": 1,
-      "used": true
-    },
-    "model": "name.formallanguagename",
-    "pk": "abnf"
-  },
-  {
-    "fields": {
-      "desc": "Abstract Syntax Notation One",
-      "name": "ASN.1",
-      "order": 2,
-      "used": true
-    },
-    "model": "name.formallanguagename",
-    "pk": "asn1"
-  },
-  {
-    "fields": {
-      "desc": "Concise Binary Object Representation",
-      "name": "CBOR",
-      "order": 3,
-      "used": true
-    },
-    "model": "name.formallanguagename",
-    "pk": "cbor"
-  },
-  {
-    "fields": {
-      "desc": "Code in the C Programming Language",
-      "name": "C Code",
-      "order": 4,
-      "used": true
-    },
-    "model": "name.formallanguagename",
-    "pk": "ccode"
-  },
-  {
-    "fields": {
-      "desc": "Javascript Object Notation",
-      "name": "JSON",
-      "order": 5,
-      "used": true
-    },
-    "model": "name.formallanguagename",
-    "pk": "json"
-  },
-  {
-    "fields": {
-      "desc": "Extensible Markup Language",
-      "name": "XML",
-      "order": 6,
-      "used": true
-    },
-    "model": "name.formallanguagename",
-    "pk": "xml"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Active",
-      "order": 1,
-      "used": true
-    },
-    "model": "name.groupmilestonestatename",
-    "pk": "active"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Chartering/rechartering",
-      "order": 4,
-      "used": true
-    },
-    "model": "name.groupmilestonestatename",
-    "pk": "charter"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Deleted",
-      "order": 2,
-      "used": true
-    },
-    "model": "name.groupmilestonestatename",
-    "pk": "deleted"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "For review",
-      "order": 3,
-      "used": true
-    },
-    "model": "name.groupmilestonestatename",
-    "pk": "review"
-  },
-  {
-    "fields": {
-      "desc": "Formation of the group (most likely a BoF or Proposed WG) was abandoned",
-      "name": "Abandoned",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.groupstatename",
-    "pk": "abandon"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Active",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.groupstatename",
-    "pk": "active"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "BOF",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.groupstatename",
-    "pk": "bof"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "BOF Concluded",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.groupstatename",
-    "pk": "bof-conc"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Concluded",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.groupstatename",
-    "pk": "conclude"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Dormant",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.groupstatename",
-    "pk": "dormant"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Proposed",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.groupstatename",
-    "pk": "proposed"
-  },
-  {
-    "fields": {
-      "desc": "Replaced by a group with a different acronym",
-      "name": "Replaced",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.groupstatename",
-    "pk": "replaced"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Unknown",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.groupstatename",
-    "pk": "unknown"
-  },
-  {
-    "fields": {
-      "desc": "Ad Hoc schedulable Group Type, for instance HotRfc",
-      "name": "Ad Hoc",
-      "order": 0,
-      "used": true,
-      "verbose_name": "Ad Hoc Group Type"
-    },
-    "model": "name.grouptypename",
-    "pk": "adhoc"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Admin",
-      "order": 0,
-      "used": true,
-      "verbose_name": "Administrative Group"
-    },
-    "model": "name.grouptypename",
-    "pk": "admin"
-  },
-  {
-    "fields": {
-      "desc": "Area group",
-      "name": "AG",
-      "order": 0,
-      "used": true,
-      "verbose_name": "Area Group"
-    },
-    "model": "name.grouptypename",
-    "pk": "ag"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Area",
-      "order": 0,
-      "used": true,
-      "verbose_name": "Area"
-    },
-    "model": "name.grouptypename",
-    "pk": "area"
-  },
-  {
-    "fields": {
-      "desc": "In many areas, the Area Directors have formed an advisory group or directorate.  These comprise experienced members of the IETF and the technical community represented by the area.  The specific name and the details of the role for each group differ from area to area, but  the primary intent is that these groups assist the Area Director(s), e.g., with the review of specifications produced in the area.",
-      "name": "Directorate",
-      "order": 0,
-      "used": true,
-      "verbose_name": "Area Directorate"
-    },
-    "model": "name.grouptypename",
-    "pk": "dir"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "IAB",
-      "order": 0,
-      "used": true,
-      "verbose_name": "Internet Architecture Board"
-    },
-    "model": "name.grouptypename",
-    "pk": "iab"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "IANA",
-      "order": 0,
-      "used": true,
-      "verbose_name": "Internet Assigned Numbers Authority"
-    },
-    "model": "name.grouptypename",
-    "pk": "iana"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "IESG",
-      "order": 0,
-      "used": true,
-      "verbose_name": "Internet Engineering Steering Group"
-    },
-    "model": "name.grouptypename",
-    "pk": "iesg"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "IETF",
-      "order": 0,
-      "used": true,
-      "verbose_name": "Internet Engineering Task Force"
-    },
-    "model": "name.grouptypename",
-    "pk": "ietf"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Individual",
-      "order": 0,
-      "used": true,
-      "verbose_name": "An Individual"
-    },
-    "model": "name.grouptypename",
-    "pk": "individ"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "IRTF",
-      "order": 0,
-      "used": true,
-      "verbose_name": "Internet Research Task Force"
-    },
-    "model": "name.grouptypename",
-    "pk": "irtf"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "ISE",
-      "order": 0,
-      "used": true,
-      "verbose_name": "Independent Stream Editor"
-    },
-    "model": "name.grouptypename",
-    "pk": "ise"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "ISOC",
-      "order": 0,
-      "used": true,
-      "verbose_name": "The Internet Society"
-    },
-    "model": "name.grouptypename",
-    "pk": "isoc"
-  },
-  {
-    "fields": {
-      "desc": "An IETF/IAB Nominating Committee.  Use 'SDO' for external nominating committees.",
-      "name": "Nomcom",
-      "order": 0,
-      "used": true,
-      "verbose_name": "IETF/IAB Nominating Committee"
-    },
-    "model": "name.grouptypename",
-    "pk": "nomcom"
-  },
-  {
-    "fields": {
-      "desc": "Program",
-      "name": "Program",
-      "order": 0,
-      "used": true,
-      "verbose_name": ""
-    },
-    "model": "name.grouptypename",
-    "pk": "program"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Directorate (with reviews)",
-      "order": 0,
-      "used": true,
-      "verbose_name": ""
-    },
-    "model": "name.grouptypename",
-    "pk": "review"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "RFC Editor",
-      "order": 0,
-      "used": true,
-      "verbose_name": "The RFC Editor"
-    },
-    "model": "name.grouptypename",
-    "pk": "rfcedtyp"
-  },
-  {
-    "fields": {
-      "desc": "Research group",
-      "name": "RG",
-      "order": 0,
-      "used": true,
-      "verbose_name": "Research Group"
-    },
-    "model": "name.grouptypename",
-    "pk": "rg"
-  },
-  {
-    "fields": {
-      "desc": "Standards organization",
-      "name": "SDO",
-      "order": 0,
-      "used": true,
-      "verbose_name": "Standards Organization"
-    },
-    "model": "name.grouptypename",
-    "pk": "sdo"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Team",
-      "order": 0,
-      "used": true,
-      "verbose_name": "Team"
-    },
-    "model": "name.grouptypename",
-    "pk": "team"
-  },
-  {
-    "fields": {
-      "desc": "Working group",
-      "name": "WG",
-      "order": 0,
-      "used": true,
-      "verbose_name": "Working Group"
-    },
-    "model": "name.grouptypename",
-    "pk": "wg"
-  },
-  {
-    "fields": {
-      "default_offset_days": -19,
-      "desc": "Internet Draft submission cut-off for -00 drafts by UTC 23:59",
-      "name": "00 ID Cutoff",
-      "order": 0,
-      "used": false
-    },
-    "model": "name.importantdatename",
-    "pk": "00cutoff"
-  },
-  {
-    "fields": {
-      "default_offset_days": -12,
-      "desc": "Internet Draft submission cut-off for revised (-01 and above) drafts by UTC 23:59",
-      "name": "01 ID Cutoff",
-      "order": 0,
-      "used": false
-    },
-    "model": "name.importantdatename",
-    "pk": "01cutoff"
-  },
-  {
-    "fields": {
-      "default_offset_days": -36,
-      "desc": "Cut-off date for Area Directors to approve BOFs at UTC 23:59",
-      "name": "Cut-off BOF approval",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.importantdatename",
-    "pk": "cutoffbofapprove"
-  },
-  {
-    "fields": {
-      "default_offset_days": -43,
-      "desc": "Cut-off date for BOF proposal requests to Area Directors at UTC 23:59",
-      "name": "Cut-off BOF scheduling Requests",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.importantdatename",
-    "pk": "cutoffbofreq"
-  },
-  {
-    "fields": {
-      "default_offset_days": -5,
-      "desc": "Registration cancellation cut-off at UTC 23:59",
-      "name": "Registration Cancellation Cut-off",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.importantdatename",
-    "pk": "cutoffcancel"
-  },
-  {
-    "fields": {
-      "default_offset_days": -1,
-      "desc": "Final Pre-Registration and Pre-Payment cut-off at 17:00 local meeting time",
-      "name": "Pre-Registration Cutoff",
-      "order": 0,
-      "used": false
-    },
-    "model": "name.importantdatename",
-    "pk": "cutoffpre"
-  },
-  {
-    "fields": {
-      "default_offset_days": -24,
-      "desc": "Cut-off date for requests to reschedule Working Group or BOF meetings UTC 23:59",
-      "name": "Cut-off Reschedule Requests",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.importantdatename",
-    "pk": "cutoffresched"
-  },
-  {
-    "fields": {
-      "default_offset_days": -43,
-      "desc": "Cut-off date for requests to schedule Working Group Meetings at UTC 23:59",
-      "name": "Cut-off WG scheduling Requests",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.importantdatename",
-    "pk": "cutoffwgreq"
-  },
-  {
-    "fields": {
-      "default_offset_days": -10,
-      "desc": "Draft Working Group agendas due by UTC 23:59",
-      "name": "Draft Working Group Agendas",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.importantdatename",
-    "pk": "draftwgagenda"
-  },
-  {
-    "fields": {
-      "default_offset_days": -47,
-      "desc": "Early Bird registration and payment cut-off at UTC 23:59",
-      "name": "Earlybird cutoff",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.importantdatename",
-    "pk": "earlybird"
-  },
-  {
-    "fields": {
-      "default_offset_days": -22,
-      "desc": "Final agenda to be published",
-      "name": "Final Agenda",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.importantdatename",
-    "pk": "finalagenda"
-  },
-  {
-    "fields": {
-      "default_offset_days": -12,
-      "desc": "Internet Draft submission cut-off (for all drafts, including -00) by UTC 23:59",
-      "name": "ID Cutoff",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.importantdatename",
-    "pk": "idcutoff"
-  },
-  {
-    "fields": {
-      "default_offset_days": 70,
-      "desc": "Announcement of whether conditions have improved enough to hold an in-person meeting in Madrid, or if IETF 108 will be held as a virtual meeting",
-      "name": "IETF 108 Go-ahead Announcement",
-      "order": 0,
-      "used": false
-    },
-    "model": "name.importantdatename",
-    "pk": "ietf-108-go-ahead"
-  },
-  {
-    "fields": {
-      "default_offset_days": -82,
-      "desc": "IETF Online Registration Opens",
-      "name": "Registration Opens",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.importantdatename",
-    "pk": "openreg"
-  },
-  {
-    "fields": {
-      "default_offset_days": -89,
-      "desc": "Working Group and BOF scheduling begins",
-      "name": "Scheduling Opens",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.importantdatename",
-    "pk": "opensched"
-  },
-  {
-    "fields": {
-      "default_offset_days": -29,
-      "desc": "Preliminary Agenda published for comment",
-      "name": "Preliminary Agenda",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.importantdatename",
-    "pk": "prelimagenda"
-  },
-  {
-    "fields": {
-      "default_offset_days": 27,
-      "desc": "Proceedings submission cutoff date by UTC 23:59",
-      "name": "Proceedings Submission Cut-off",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.importantdatename",
-    "pk": "procsub"
-  },
-  {
-    "fields": {
-      "default_offset_days": 51,
-      "desc": "Proceedings submission corrections cutoff date by UTC 23:59",
-      "name": "Proceedings Submission Revision Cut-off",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.importantdatename",
-    "pk": "revsub"
-  },
-  {
-    "fields": {
-      "default_offset_days": -5,
-      "desc": "Revised Working Group agendas due by UTC 23:59",
-      "name": "Revised Working Group Agendas",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.importantdatename",
-    "pk": "revwgagenda"
-  },
-  {
-    "fields": {
-      "default_offset_days": -12,
-      "desc": "Standard rate registration and payment cut-off at UTC 23:59.",
-      "name": "Standard rate registration ends",
-      "order": 18,
-      "used": true
-    },
-    "model": "name.importantdatename",
-    "pk": "stdratecutoff"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Best Current Practice",
-      "order": 4,
-      "used": true
-    },
-    "model": "name.intendedstdlevelname",
-    "pk": "bcp"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Draft Standard",
-      "order": 2,
-      "used": false
-    },
-    "model": "name.intendedstdlevelname",
-    "pk": "ds"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Experimental",
-      "order": 6,
-      "used": true
-    },
-    "model": "name.intendedstdlevelname",
-    "pk": "exp"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Historic",
-      "order": 7,
-      "used": true
-    },
-    "model": "name.intendedstdlevelname",
-    "pk": "hist"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Informational",
-      "order": 5,
-      "used": true
-    },
-    "model": "name.intendedstdlevelname",
-    "pk": "inf"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Proposed Standard",
-      "order": 1,
-      "used": true
-    },
-    "model": "name.intendedstdlevelname",
-    "pk": "ps"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Internet Standard",
-      "order": 3,
-      "used": true
-    },
-    "model": "name.intendedstdlevelname",
-    "pk": "std"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Parked",
-      "order": 1,
-      "used": true
-    },
-    "model": "name.iprdisclosurestatename",
-    "pk": "parked"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Pending",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.iprdisclosurestatename",
-    "pk": "pending"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Posted",
-      "order": 2,
-      "used": true
-    },
-    "model": "name.iprdisclosurestatename",
-    "pk": "posted"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Rejected",
-      "order": 3,
-      "used": true
-    },
-    "model": "name.iprdisclosurestatename",
-    "pk": "rejected"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Removed",
-      "order": 4,
-      "used": true
-    },
-    "model": "name.iprdisclosurestatename",
-    "pk": "removed"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Changed disclosure metadata",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.ipreventtypename",
-    "pk": "changed_disclosure"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Comment",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.ipreventtypename",
-    "pk": "comment"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Legacy",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.ipreventtypename",
-    "pk": "legacy"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "MsgIn",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.ipreventtypename",
-    "pk": "msgin"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "MsgOut",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.ipreventtypename",
-    "pk": "msgout"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Parked",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.ipreventtypename",
-    "pk": "parked"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Pending",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.ipreventtypename",
-    "pk": "pending"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Posted",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.ipreventtypename",
-    "pk": "posted"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Private Comment",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.ipreventtypename",
-    "pk": "private_comment"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Rejected",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.ipreventtypename",
-    "pk": "rejected"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Removed",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.ipreventtypename",
-    "pk": "removed"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Submitted",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.ipreventtypename",
-    "pk": "submitted"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Update Notify",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.ipreventtypename",
-    "pk": "update_notify"
-  },
-  {
-    "fields": {
-      "desc": "a) No License Required for Implementers",
-      "name": "No License",
-      "order": 1,
-      "used": true
-    },
-    "model": "name.iprlicensetypename",
-    "pk": "no-license"
-  },
-  {
-    "fields": {
-      "desc": "[None selected]",
-      "name": "None Selected",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.iprlicensetypename",
-    "pk": "none-selected"
-  },
-  {
-    "fields": {
-      "desc": "d) Licensing Declaration to be Provided Later (implies a willingness to commit to the provisions of a), b), or c) above to all implementers; otherwise, the next option 'Unwilling to Commit to the Provisions of a), b), or c) Above'. - must be selected)",
-      "name": "Provided Later",
-      "order": 4,
-      "used": true
-    },
-    "model": "name.iprlicensetypename",
-    "pk": "provided-later"
-  },
-  {
-    "fields": {
-      "desc": "c) Reasonable and Non-Discriminatory License to All Implementers with Possible Royalty/Fee",
-      "name": "Reasonable",
-      "order": 3,
-      "used": true
-    },
-    "model": "name.iprlicensetypename",
-    "pk": "reasonable"
-  },
-  {
-    "fields": {
-      "desc": "b) Royalty-Free, Reasonable and Non-Discriminatory License to All Implementers",
-      "name": "Royalty Free",
-      "order": 2,
-      "used": true
-    },
-    "model": "name.iprlicensetypename",
-    "pk": "royalty-free"
-  },
-  {
-    "fields": {
-      "desc": "f) See Text Below for Licensing Declaration",
-      "name": "See Below",
-      "order": 6,
-      "used": true
-    },
-    "model": "name.iprlicensetypename",
-    "pk": "see-below"
-  },
-  {
-    "fields": {
-      "desc": "e) Unwilling to Commit to the Provisions of a), b), or c) Above",
-      "name": "Unwilling to Commit",
-      "order": 5,
-      "used": true
-    },
-    "model": "name.iprlicensetypename",
-    "pk": "unwilling-to-commit"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Approved",
-      "order": 3,
-      "used": true
-    },
-    "model": "name.liaisonstatementeventtypename",
-    "pk": "approved"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Comment",
-      "order": 9,
-      "used": true
-    },
-    "model": "name.liaisonstatementeventtypename",
-    "pk": "comment"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Killed",
-      "order": 5,
-      "used": true
-    },
-    "model": "name.liaisonstatementeventtypename",
-    "pk": "killed"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Modified",
-      "order": 2,
-      "used": true
-    },
-    "model": "name.liaisonstatementeventtypename",
-    "pk": "modified"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "MsgIn",
-      "order": 7,
-      "used": true
-    },
-    "model": "name.liaisonstatementeventtypename",
-    "pk": "msgin"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "MsgOut",
-      "order": 8,
-      "used": true
-    },
-    "model": "name.liaisonstatementeventtypename",
-    "pk": "msgout"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Posted",
-      "order": 4,
-      "used": true
-    },
-    "model": "name.liaisonstatementeventtypename",
-    "pk": "posted"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Private Comment",
-      "order": 10,
-      "used": true
-    },
-    "model": "name.liaisonstatementeventtypename",
-    "pk": "private_comment"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Re-sent",
-      "order": 11,
-      "used": true
-    },
-    "model": "name.liaisonstatementeventtypename",
-    "pk": "resent"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Resurrected",
-      "order": 6,
-      "used": true
-    },
-    "model": "name.liaisonstatementeventtypename",
-    "pk": "resurrected"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Submitted",
-      "order": 1,
-      "used": true
-    },
-    "model": "name.liaisonstatementeventtypename",
-    "pk": "submitted"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "For action",
-      "order": 1,
-      "used": true
-    },
-    "model": "name.liaisonstatementpurposename",
-    "pk": "action"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "For comment",
-      "order": 2,
-      "used": true
-    },
-    "model": "name.liaisonstatementpurposename",
-    "pk": "comment"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "For information",
-      "order": 3,
-      "used": true
-    },
-    "model": "name.liaisonstatementpurposename",
-    "pk": "info"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "In response",
-      "order": 4,
-      "used": true
-    },
-    "model": "name.liaisonstatementpurposename",
-    "pk": "response"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Approved",
-      "order": 2,
-      "used": true
-    },
-    "model": "name.liaisonstatementstate",
-    "pk": "approved"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Dead",
-      "order": 4,
-      "used": true
-    },
-    "model": "name.liaisonstatementstate",
-    "pk": "dead"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Pending",
-      "order": 1,
-      "used": true
-    },
-    "model": "name.liaisonstatementstate",
-    "pk": "pending"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Posted",
-      "order": 3,
-      "used": true
-    },
-    "model": "name.liaisonstatementstate",
-    "pk": "posted"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Action Required",
-      "order": 1,
-      "used": true
-    },
-    "model": "name.liaisonstatementtagname",
-    "pk": "required"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Action Taken",
-      "order": 2,
-      "used": true
-    },
-    "model": "name.liaisonstatementtagname",
-    "pk": "taken"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "IETF",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.meetingtypename",
-    "pk": "ietf"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Interim",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.meetingtypename",
-    "pk": "interim"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Accepted",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.nomineepositionstatename",
-    "pk": "accepted"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Declined",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.nomineepositionstatename",
-    "pk": "declined"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Nominated, pending response",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.nomineepositionstatename",
-    "pk": "pending"
-  },
-  {
-    "fields": {
-      "desc": "The reviewer has accepted the assignment",
-      "name": "Accepted",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.reviewassignmentstatename",
-    "pk": "accepted"
-  },
-  {
-    "fields": {
-      "desc": "The review has been assigned to this reviewer",
-      "name": "Assigned",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.reviewassignmentstatename",
-    "pk": "assigned"
-  },
-  {
-    "fields": {
-      "desc": "The reviewer completed the assignment",
-      "name": "Completed",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.reviewassignmentstatename",
-    "pk": "completed"
-  },
-  {
-    "fields": {
-      "desc": "The reviewer did not provide a review by the deadline",
-      "name": "No Response",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.reviewassignmentstatename",
-    "pk": "no-response"
-  },
-  {
-    "fields": {
-      "desc": "The review was abandoned because of circumstances",
-      "name": "Overtaken By Events",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.reviewassignmentstatename",
-    "pk": "overtaken"
-  },
-  {
-    "fields": {
-      "desc": "The reviewer partially completed the assignment",
-      "name": "Partially Completed",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.reviewassignmentstatename",
-    "pk": "part-completed"
-  },
-  {
-    "fields": {
-      "desc": "The reviewer has rejected the assignment",
-      "name": "Rejected",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.reviewassignmentstatename",
-    "pk": "rejected"
-  },
-  {
-    "fields": {
-      "desc": "The assignment is was imported from an earlier database and its state could not be computed",
-      "name": "Unknown",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.reviewassignmentstatename",
-    "pk": "unknown"
-  },
-  {
-    "fields": {
-      "desc": "The team secretary has withdrawn the assignment",
-      "name": "Withdrawn by Team",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.reviewassignmentstatename",
-    "pk": "withdrawn"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Least recently used",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.reviewerqueuepolicyname",
-    "pk": "LeastRecentlyUsed"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Rotate alphabetically",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.reviewerqueuepolicyname",
-    "pk": "RotateAlphabetically"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Accepted",
-      "order": 2,
-      "used": false
-    },
-    "model": "name.reviewrequeststatename",
-    "pk": "accepted"
-  },
-  {
-    "fields": {
-      "desc": "The ReviewRequest has been assigned to at least one reviewer",
-      "name": "Assigned",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.reviewrequeststatename",
-    "pk": "assigned"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Completed",
-      "order": 10,
-      "used": false
-    },
-    "model": "name.reviewrequeststatename",
-    "pk": "completed"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "No Response",
-      "order": 6,
-      "used": false
-    },
-    "model": "name.reviewrequeststatename",
-    "pk": "no-response"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Team Will not Review Document",
-      "order": 8,
-      "used": true
-    },
-    "model": "name.reviewrequeststatename",
-    "pk": "no-review-document"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Team Will not Review Version",
-      "order": 7,
-      "used": true
-    },
-    "model": "name.reviewrequeststatename",
-    "pk": "no-review-version"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Overtaken by Events",
-      "order": 5,
-      "used": true
-    },
-    "model": "name.reviewrequeststatename",
-    "pk": "overtaken"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Partially Completed",
-      "order": 9,
-      "used": false
-    },
-    "model": "name.reviewrequeststatename",
-    "pk": "part-completed"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Rejected",
-      "order": 3,
-      "used": false
-    },
-    "model": "name.reviewrequeststatename",
-    "pk": "rejected"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Requested",
-      "order": 1,
-      "used": true
-    },
-    "model": "name.reviewrequeststatename",
-    "pk": "requested"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Unknown",
-      "order": 20,
-      "used": false
-    },
-    "model": "name.reviewrequeststatename",
-    "pk": "unknown"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Withdrawn",
-      "order": 4,
-      "used": true
-    },
-    "model": "name.reviewrequeststatename",
-    "pk": "withdrawn"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Almost Ready",
-      "order": 6,
-      "used": true
-    },
-    "model": "name.reviewresultname",
-    "pk": "almost-ready"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Has Issues",
-      "order": 2,
-      "used": true
-    },
-    "model": "name.reviewresultname",
-    "pk": "issues"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Has Nits",
-      "order": 3,
-      "used": true
-    },
-    "model": "name.reviewresultname",
-    "pk": "nits"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Not Ready",
-      "order": 4,
-      "used": true
-    },
-    "model": "name.reviewresultname",
-    "pk": "not-ready"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Ready",
-      "order": 9,
-      "used": true
-    },
-    "model": "name.reviewresultname",
-    "pk": "ready"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Ready with Issues",
-      "order": 7,
-      "used": true
-    },
-    "model": "name.reviewresultname",
-    "pk": "ready-issues"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Ready with Nits",
-      "order": 8,
-      "used": true
-    },
-    "model": "name.reviewresultname",
-    "pk": "ready-nits"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "On the Right Track",
-      "order": 5,
-      "used": true
-    },
-    "model": "name.reviewresultname",
-    "pk": "right-track"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Serious Issues",
-      "order": 1,
-      "used": true
-    },
-    "model": "name.reviewresultname",
-    "pk": "serious-issues"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Early",
-      "order": 1,
-      "used": true
-    },
-    "model": "name.reviewtypename",
-    "pk": "early"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Last Call",
-      "order": 2,
-      "used": true
-    },
-    "model": "name.reviewtypename",
-    "pk": "lc"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Telechat",
-      "order": 3,
-      "used": true
-    },
-    "model": "name.reviewtypename",
-    "pk": "telechat"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Area Director",
-      "order": 2,
-      "used": true
-    },
-    "model": "name.rolename",
-    "pk": "ad"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Administrative Director",
-      "order": 3,
-      "used": true
-    },
-    "model": "name.rolename",
-    "pk": "admdir"
-  },
-  {
-    "fields": {
-      "desc": "Advisor in a group that has explicit membership, such as the NomCom",
-      "name": "Advisor",
-      "order": 4,
-      "used": true
-    },
-    "model": "name.rolename",
-    "pk": "advisor"
-  },
-  {
-    "fields": {
-      "desc": "Authorised to send announcements to the ietf-announce and other lists",
-      "name": "List Announcer",
-      "order": 12,
-      "used": true
-    },
-    "model": "name.rolename",
-    "pk": "announce"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "At Large Member",
-      "order": 10,
-      "used": true
-    },
-    "model": "name.rolename",
-    "pk": "atlarge"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Authorized Individual",
-      "order": 5,
-      "used": true
-    },
-    "model": "name.rolename",
-    "pk": "auth"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "CEO",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.rolename",
-    "pk": "ceo"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Chair",
-      "order": 1,
-      "used": true
-    },
-    "model": "name.rolename",
-    "pk": "chair"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Communications Director",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.rolename",
-    "pk": "comdir"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Co-ordinator",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.rolename",
-    "pk": "coord"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Delegate",
-      "order": 6,
-      "used": true
-    },
-    "model": "name.rolename",
-    "pk": "delegate"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Editor",
-      "order": 5,
-      "used": true
-    },
-    "model": "name.rolename",
-    "pk": "editor"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Executive Director",
-      "order": 2,
-      "used": true
-    },
-    "model": "name.rolename",
-    "pk": "execdir"
-  },
-  {
-    "fields": {
-      "desc": "Lead member (such as the Lead of an IAB program)",
-      "name": "Lead",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.rolename",
-    "pk": "lead"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Liaison Manager",
-      "order": 4,
-      "used": true
-    },
-    "model": "name.rolename",
-    "pk": "liaiman"
-  },
-  {
-    "fields": {
-      "desc": "Liaison group member in a group that has explicit membership, such as the NomCom",
-      "name": "Liaison Member",
-      "order": 11,
-      "used": true
-    },
-    "model": "name.rolename",
-    "pk": "liaison"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Materials Manager",
-      "order": 13,
-      "used": true
-    },
-    "model": "name.rolename",
-    "pk": "matman"
-  },
-  {
-    "fields": {
-      "desc": "Regular group member in a group that has explicit membership, such as the NomCom",
-      "name": "Member",
-      "order": 7,
-      "used": true
-    },
-    "model": "name.rolename",
-    "pk": "member"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Incoming Area Director",
-      "order": 3,
-      "used": true
-    },
-    "model": "name.rolename",
-    "pk": "pre-ad"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Recording Manager",
-      "order": 13,
-      "used": true
-    },
-    "model": "name.rolename",
-    "pk": "recman"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Reviewer",
-      "order": 14,
-      "used": true
-    },
-    "model": "name.rolename",
-    "pk": "reviewer"
-  },
-  {
-    "fields": {
-      "desc": "A role for API access by external scripts or entities, such as the mail archive, registrations system, etc.",
-      "name": "Automation Robot",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.rolename",
-    "pk": "robot"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Secretary",
-      "order": 6,
-      "used": true
-    },
-    "model": "name.rolename",
-    "pk": "secr"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Tech Advisor",
-      "order": 4,
-      "used": true
-    },
-    "model": "name.rolename",
-    "pk": "techadv"
-  },
-  {
-    "fields": {
-      "desc": "Assigned permission TRAC_ADMIN in datatracker-managed Trac Wiki instances",
-      "name": "Trac Admin",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.rolename",
-    "pk": "trac-admin"
-  },
-  {
-    "fields": {
-      "desc": "Provides log-in permission to restricted Trac instances.  Used by the generate_apache_perms management command, called from ../../scripts/Cron-runner",
-      "name": "Trac Editor",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.rolename",
-    "pk": "trac-editor"
-  },
-  {
-    "fields": {
-      "desc": "Audio streaming support",
-      "name": "Audio Stream",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.roomresourcename",
-    "pk": "audiostream"
-  },
-  {
-    "fields": {
-      "desc": "Experimental room setup (boardroom and classroom) subject to availability",
-      "name": "Boardroom Layout",
-      "order": 0,
-      "used": false
-    },
-    "model": "name.roomresourcename",
-    "pk": "boardroom"
-  },
-  {
-    "fields": {
-      "desc": "Flipchars",
-      "name": "Flipcharts",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.roomresourcename",
-    "pk": "flipcharts"
-  },
-  {
-    "fields": {
-      "desc": "The room will have a meetecho wrangler",
-      "name": "Meetecho Support",
-      "order": 0,
-      "used": false
-    },
-    "model": "name.roomresourcename",
-    "pk": "meetecho"
-  },
-  {
-    "fields": {
-      "desc": "The room will have a second computer projector",
-      "name": "second LCD projector",
-      "order": 0,
-      "used": false
-    },
-    "model": "name.roomresourcename",
-    "pk": "proj2"
-  },
-  {
-    "fields": {
-      "desc": "The room will have a computer projector",
-      "name": "LCD projector",
-      "order": 0,
-      "used": false
-    },
-    "model": "name.roomresourcename",
-    "pk": "project"
-  },
-  {
-    "fields": {
-      "desc": "Experimental Room Setup (U-Shape and classroom, subject to availability)",
-      "name": "Experimental Room Setup (U-Shape and classroom)",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.roomresourcename",
-    "pk": "u-shape"
-  },
-  {
-    "fields": {
-      "desc": "Web streaming support",
-      "name": "WebEx",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.roomresourcename",
-    "pk": "webex"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Approved",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.sessionstatusname",
-    "pk": "appr"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Waiting for Approval",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.sessionstatusname",
-    "pk": "apprw"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Cancelled",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.sessionstatusname",
-    "pk": "canceled"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Cancelled - Pre Announcement",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.sessionstatusname",
-    "pk": "canceledpa"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Deleted",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.sessionstatusname",
-    "pk": "deleted"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Disapproved",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.sessionstatusname",
-    "pk": "disappr"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Not meeting",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.sessionstatusname",
-    "pk": "notmeet"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Scheduled",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.sessionstatusname",
-    "pk": "sched"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Scheduled - Announcement to be sent",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.sessionstatusname",
-    "pk": "scheda"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Waiting for Scheduling",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.sessionstatusname",
-    "pk": "schedw"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Best Current Practice",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.stdlevelname",
-    "pk": "bcp"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Draft Standard",
-      "order": 0,
-      "used": false
-    },
-    "model": "name.stdlevelname",
-    "pk": "ds"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Experimental",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.stdlevelname",
-    "pk": "exp"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Historic",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.stdlevelname",
-    "pk": "hist"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Informational",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.stdlevelname",
-    "pk": "inf"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Proposed Standard",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.stdlevelname",
-    "pk": "ps"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Internet Standard",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.stdlevelname",
-    "pk": "std"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Unknown",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.stdlevelname",
-    "pk": "unkn"
-  },
-  {
-    "fields": {
-      "desc": "IAB stream",
-      "name": "IAB",
-      "order": 4,
-      "used": true
-    },
-    "model": "name.streamname",
-    "pk": "iab"
-  },
-  {
-    "fields": {
-      "desc": "IETF stream",
-      "name": "IETF",
-      "order": 1,
-      "used": true
-    },
-    "model": "name.streamname",
-    "pk": "ietf"
-  },
-  {
-    "fields": {
-      "desc": "IRTF Stream",
-      "name": "IRTF",
-      "order": 3,
-      "used": true
-    },
-    "model": "name.streamname",
-    "pk": "irtf"
-  },
-  {
-    "fields": {
-      "desc": "Independent Submission Editor stream",
-      "name": "ISE",
-      "order": 2,
-      "used": true
-    },
-    "model": "name.streamname",
-    "pk": "ise"
-  },
-  {
-    "fields": {
-      "desc": "Legacy stream",
-      "name": "Legacy",
-      "order": 5,
-      "used": true
-    },
-    "model": "name.streamname",
-    "pk": "legacy"
-  },
-  {
-    "fields": {
-      "desc": "Friday early afternoon",
-      "name": "friday-afternoon-early",
-      "order": 13,
-      "used": true
-    },
-    "model": "name.timerangename",
-    "pk": "friday-afternoon-early"
-  },
-  {
-    "fields": {
-      "desc": "Friday late afternoon",
-      "name": "friday-afternoon-late",
-      "order": 14,
-      "used": true
-    },
-    "model": "name.timerangename",
-    "pk": "friday-afternoon-late"
-  },
-  {
-    "fields": {
-      "desc": "Friday morning",
-      "name": "friday-morning",
-      "order": 12,
-      "used": true
-    },
-    "model": "name.timerangename",
-    "pk": "friday-morning"
-  },
-  {
-    "fields": {
-      "desc": "Monday early afternoon",
-      "name": "monday-afternoon-early",
-      "order": 1,
-      "used": true
-    },
-    "model": "name.timerangename",
-    "pk": "monday-afternoon-early"
-  },
-  {
-    "fields": {
-      "desc": "Monday late afternoon",
-      "name": "monday-afternoon-late",
-      "order": 2,
-      "used": true
-    },
-    "model": "name.timerangename",
-    "pk": "monday-afternoon-late"
-  },
-  {
-    "fields": {
-      "desc": "Monday morning",
-      "name": "monday-morning",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.timerangename",
-    "pk": "monday-morning"
-  },
-  {
-    "fields": {
-      "desc": "Thursday early afternoon",
-      "name": "thursday-afternoon-early",
-      "order": 10,
-      "used": true
-    },
-    "model": "name.timerangename",
-    "pk": "thursday-afternoon-early"
-  },
-  {
-    "fields": {
-      "desc": "Thursday late afternoon",
-      "name": "thursday-afternoon-late",
-      "order": 11,
-      "used": true
-    },
-    "model": "name.timerangename",
-    "pk": "thursday-afternoon-late"
-  },
-  {
-    "fields": {
-      "desc": "Thursday morning",
-      "name": "thursday-morning",
-      "order": 9,
-      "used": true
-    },
-    "model": "name.timerangename",
-    "pk": "thursday-morning"
-  },
-  {
-    "fields": {
-      "desc": "Tuesday early afternoon",
-      "name": "tuesday-afternoon-early",
-      "order": 4,
-      "used": true
-    },
-    "model": "name.timerangename",
-    "pk": "tuesday-afternoon-early"
-  },
-  {
-    "fields": {
-      "desc": "Tuesday late afternoon",
-      "name": "tuesday-afternoon-late",
-      "order": 5,
-      "used": true
-    },
-    "model": "name.timerangename",
-    "pk": "tuesday-afternoon-late"
-  },
-  {
-    "fields": {
-      "desc": "Tuesday morning",
-      "name": "tuesday-morning",
-      "order": 3,
-      "used": true
-    },
-    "model": "name.timerangename",
-    "pk": "tuesday-morning"
-  },
-  {
-    "fields": {
-      "desc": "Wednesday early afternoon",
-      "name": "wednesday-afternoon-early",
-      "order": 7,
-      "used": true
-    },
-    "model": "name.timerangename",
-    "pk": "wednesday-afternoon-early"
-  },
-  {
-    "fields": {
-      "desc": "Wednesday late afternoon",
-      "name": "wednesday-afternoon-late",
-      "order": 8,
-      "used": true
-    },
-    "model": "name.timerangename",
-    "pk": "wednesday-afternoon-late"
-  },
-  {
-    "fields": {
-      "desc": "Wednesday morning",
-      "name": "wednesday-morning",
-      "order": 6,
-      "used": true
-    },
-    "model": "name.timerangename",
-    "pk": "wednesday-morning"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Break",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.timeslottypename",
-    "pk": "break"
-  },
-  {
-    "fields": {
-      "desc": "Leadership Meetings",
-      "name": "Leadership",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.timeslottypename",
-    "pk": "lead"
-  },
-  {
-    "fields": {
-      "desc": "Other Meetings Not Published on Agenda",
-      "name": "Off Agenda",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.timeslottypename",
-    "pk": "offagenda"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Other",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.timeslottypename",
-    "pk": "other"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Plenary",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.timeslottypename",
-    "pk": "plenary"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Registration",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.timeslottypename",
-    "pk": "reg"
-  },
-  {
-    "fields": {
-      "desc": "",
-      "name": "Regular",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.timeslottypename",
-    "pk": "regular"
-  },
-  {
-    "fields": {
-      "desc": "A room has been reserved for use by another body the timeslot indicated",
-      "name": "Room Reserved",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.timeslottypename",
-    "pk": "reserved"
-  },
-  {
-    "fields": {
-      "desc": "A room was not booked for the timeslot indicated",
-      "name": "Room Unavailable",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.timeslottypename",
-    "pk": "unavail"
-  },
-  {
-    "fields": {
-      "desc": "Anyone who can log in",
-      "name": "General",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.topicaudiencename",
-    "pk": "general"
-  },
-  {
-    "fields": {
-      "desc": "Members of this nomcom",
-      "name": "Nomcom Members",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.topicaudiencename",
-    "pk": "nomcom"
-  },
-  {
-    "fields": {
-      "desc": "Anyone who has accepted a Nomination for an open position",
-      "name": "Nominees",
-      "order": 0,
-      "used": true
-    },
-    "model": "name.topicaudiencename",
-    "pk": "nominees"
-  },
-  {
-    "fields": {
-      "alias": "AD",
-      "country": "AD"
-    },
-    "model": "stats.countryalias",
-    "pk": 1
-  },
-  {
-    "fields": {
-      "alias": "AE",
-      "country": "AE"
-    },
-    "model": "stats.countryalias",
-    "pk": 2
-  },
-  {
-    "fields": {
-      "alias": "AF",
-      "country": "AF"
-    },
-    "model": "stats.countryalias",
-    "pk": 3
-  },
-  {
-    "fields": {
-      "alias": "AG",
-      "country": "AG"
-    },
-    "model": "stats.countryalias",
-    "pk": 4
-  },
-  {
-    "fields": {
-      "alias": "AI",
-      "country": "AI"
-    },
-    "model": "stats.countryalias",
-    "pk": 5
-  },
-  {
-    "fields": {
-      "alias": "AL",
-      "country": "AL"
-    },
-    "model": "stats.countryalias",
-    "pk": 6
-  },
-  {
-    "fields": {
-      "alias": "AM",
-      "country": "AM"
-    },
-    "model": "stats.countryalias",
-    "pk": 7
-  },
-  {
-    "fields": {
-      "alias": "AO",
-      "country": "AO"
-    },
-    "model": "stats.countryalias",
-    "pk": 8
-  },
-  {
-    "fields": {
-      "alias": "AQ",
-      "country": "AQ"
-    },
-    "model": "stats.countryalias",
-    "pk": 9
-  },
-  {
-    "fields": {
-      "alias": "AR",
-      "country": "AR"
-    },
-    "model": "stats.countryalias",
-    "pk": 10
-  },
-  {
-    "fields": {
-      "alias": "AS",
-      "country": "AS"
-    },
-    "model": "stats.countryalias",
-    "pk": 11
-  },
-  {
-    "fields": {
-      "alias": "AT",
-      "country": "AT"
-    },
-    "model": "stats.countryalias",
-    "pk": 12
-  },
-  {
-    "fields": {
-      "alias": "AU",
-      "country": "AU"
-    },
-    "model": "stats.countryalias",
-    "pk": 13
-  },
-  {
-    "fields": {
-      "alias": "AW",
-      "country": "AW"
-    },
-    "model": "stats.countryalias",
-    "pk": 14
-  },
-  {
-    "fields": {
-      "alias": "AX",
-      "country": "AX"
-    },
-    "model": "stats.countryalias",
-    "pk": 15
-  },
-  {
-    "fields": {
-      "alias": "AZ",
-      "country": "AZ"
-    },
-    "model": "stats.countryalias",
-    "pk": 16
-  },
-  {
-    "fields": {
-      "alias": "BA",
-      "country": "BA"
-    },
-    "model": "stats.countryalias",
-    "pk": 17
-  },
-  {
-    "fields": {
-      "alias": "BB",
-      "country": "BB"
-    },
-    "model": "stats.countryalias",
-    "pk": 18
-  },
-  {
-    "fields": {
-      "alias": "BD",
-      "country": "BD"
-    },
-    "model": "stats.countryalias",
-    "pk": 19
-  },
-  {
-    "fields": {
-      "alias": "BE",
-      "country": "BE"
-    },
-    "model": "stats.countryalias",
-    "pk": 20
-  },
-  {
-    "fields": {
-      "alias": "BF",
-      "country": "BF"
-    },
-    "model": "stats.countryalias",
-    "pk": 21
-  },
-  {
-    "fields": {
-      "alias": "BG",
-      "country": "BG"
-    },
-    "model": "stats.countryalias",
-    "pk": 22
-  },
-  {
-    "fields": {
-      "alias": "BH",
-      "country": "BH"
-    },
-    "model": "stats.countryalias",
-    "pk": 23
-  },
-  {
-    "fields": {
-      "alias": "BI",
-      "country": "BI"
-    },
-    "model": "stats.countryalias",
-    "pk": 24
-  },
-  {
-    "fields": {
-      "alias": "BJ",
-      "country": "BJ"
-    },
-    "model": "stats.countryalias",
-    "pk": 25
-  },
-  {
-    "fields": {
-      "alias": "BL",
-      "country": "BL"
-    },
-    "model": "stats.countryalias",
-    "pk": 26
-  },
-  {
-    "fields": {
-      "alias": "BM",
-      "country": "BM"
-    },
-    "model": "stats.countryalias",
-    "pk": 27
-  },
-  {
-    "fields": {
-      "alias": "BN",
-      "country": "BN"
-    },
-    "model": "stats.countryalias",
-    "pk": 28
-  },
-  {
-    "fields": {
-      "alias": "BO",
-      "country": "BO"
-    },
-    "model": "stats.countryalias",
-    "pk": 29
-  },
-  {
-    "fields": {
-      "alias": "BQ",
-      "country": "BQ"
-    },
-    "model": "stats.countryalias",
-    "pk": 30
-  },
-  {
-    "fields": {
-      "alias": "BR",
-      "country": "BR"
-    },
-    "model": "stats.countryalias",
-    "pk": 31
-  },
-  {
-    "fields": {
-      "alias": "BS",
-      "country": "BS"
-    },
-    "model": "stats.countryalias",
-    "pk": 32
-  },
-  {
-    "fields": {
-      "alias": "BT",
-      "country": "BT"
-    },
-    "model": "stats.countryalias",
-    "pk": 33
-  },
-  {
-    "fields": {
-      "alias": "BV",
-      "country": "BV"
-    },
-    "model": "stats.countryalias",
-    "pk": 34
-  },
-  {
-    "fields": {
-      "alias": "BW",
-      "country": "BW"
-    },
-    "model": "stats.countryalias",
-    "pk": 35
-  },
-  {
-    "fields": {
-      "alias": "BY",
-      "country": "BY"
-    },
-    "model": "stats.countryalias",
-    "pk": 36
-  },
-  {
-    "fields": {
-      "alias": "BZ",
-      "country": "BZ"
-    },
-    "model": "stats.countryalias",
-    "pk": 37
-  },
-  {
-    "fields": {
-      "alias": "CA",
-      "country": "CA"
-    },
-    "model": "stats.countryalias",
-    "pk": 38
-  },
-  {
-    "fields": {
-      "alias": "CC",
-      "country": "CC"
-    },
-    "model": "stats.countryalias",
-    "pk": 39
-  },
-  {
-    "fields": {
-      "alias": "CD",
-      "country": "CD"
-    },
-    "model": "stats.countryalias",
-    "pk": 40
-  },
-  {
-    "fields": {
-      "alias": "CF",
-      "country": "CF"
-    },
-    "model": "stats.countryalias",
-    "pk": 41
-  },
-  {
-    "fields": {
-      "alias": "CG",
-      "country": "CG"
-    },
-    "model": "stats.countryalias",
-    "pk": 42
-  },
-  {
-    "fields": {
-      "alias": "CH",
-      "country": "CH"
-    },
-    "model": "stats.countryalias",
-    "pk": 43
-  },
-  {
-    "fields": {
-      "alias": "CI",
-      "country": "CI"
-    },
-    "model": "stats.countryalias",
-    "pk": 44
-  },
-  {
-    "fields": {
-      "alias": "CK",
-      "country": "CK"
-    },
-    "model": "stats.countryalias",
-    "pk": 45
-  },
-  {
-    "fields": {
-      "alias": "CL",
-      "country": "CL"
-    },
-    "model": "stats.countryalias",
-    "pk": 46
-  },
-  {
-    "fields": {
-      "alias": "CM",
-      "country": "CM"
-    },
-    "model": "stats.countryalias",
-    "pk": 47
-  },
-  {
-    "fields": {
-      "alias": "CN",
-      "country": "CN"
-    },
-    "model": "stats.countryalias",
-    "pk": 48
-  },
-  {
-    "fields": {
-      "alias": "CO",
-      "country": "CO"
-    },
-    "model": "stats.countryalias",
-    "pk": 49
-  },
-  {
-    "fields": {
-      "alias": "CR",
-      "country": "CR"
-    },
-    "model": "stats.countryalias",
-    "pk": 50
-  },
-  {
-    "fields": {
-      "alias": "CU",
-      "country": "CU"
-    },
-    "model": "stats.countryalias",
-    "pk": 51
-  },
-  {
-    "fields": {
-      "alias": "CV",
-      "country": "CV"
-    },
-    "model": "stats.countryalias",
-    "pk": 52
-  },
-  {
-    "fields": {
-      "alias": "CW",
-      "country": "CW"
-    },
-    "model": "stats.countryalias",
-    "pk": 53
-  },
-  {
-    "fields": {
-      "alias": "CX",
-      "country": "CX"
-    },
-    "model": "stats.countryalias",
-    "pk": 54
-  },
-  {
-    "fields": {
-      "alias": "CY",
-      "country": "CY"
-    },
-    "model": "stats.countryalias",
-    "pk": 55
-  },
-  {
-    "fields": {
-      "alias": "CZ",
-      "country": "CZ"
-    },
-    "model": "stats.countryalias",
-    "pk": 56
-  },
-  {
-    "fields": {
-      "alias": "DE",
-      "country": "DE"
-    },
-    "model": "stats.countryalias",
-    "pk": 57
-  },
-  {
-    "fields": {
-      "alias": "DJ",
-      "country": "DJ"
-    },
-    "model": "stats.countryalias",
-    "pk": 58
-  },
-  {
-    "fields": {
-      "alias": "DK",
-      "country": "DK"
-    },
-    "model": "stats.countryalias",
-    "pk": 59
-  },
-  {
-    "fields": {
-      "alias": "DM",
-      "country": "DM"
-    },
-    "model": "stats.countryalias",
-    "pk": 60
-  },
-  {
-    "fields": {
-      "alias": "DO",
-      "country": "DO"
-    },
-    "model": "stats.countryalias",
-    "pk": 61
-  },
-  {
-    "fields": {
-      "alias": "DZ",
-      "country": "DZ"
-    },
-    "model": "stats.countryalias",
-    "pk": 62
-  },
-  {
-    "fields": {
-      "alias": "EC",
-      "country": "EC"
-    },
-    "model": "stats.countryalias",
-    "pk": 63
-  },
-  {
-    "fields": {
-      "alias": "EE",
-      "country": "EE"
-    },
-    "model": "stats.countryalias",
-    "pk": 64
-  },
-  {
-    "fields": {
-      "alias": "EG",
-      "country": "EG"
-    },
-    "model": "stats.countryalias",
-    "pk": 65
-  },
-  {
-    "fields": {
-      "alias": "EH",
-      "country": "EH"
-    },
-    "model": "stats.countryalias",
-    "pk": 66
-  },
-  {
-    "fields": {
-      "alias": "ER",
-      "country": "ER"
-    },
-    "model": "stats.countryalias",
-    "pk": 67
-  },
-  {
-    "fields": {
-      "alias": "ES",
-      "country": "ES"
-    },
-    "model": "stats.countryalias",
-    "pk": 68
-  },
-  {
-    "fields": {
-      "alias": "ET",
-      "country": "ET"
-    },
-    "model": "stats.countryalias",
-    "pk": 69
-  },
-  {
-    "fields": {
-      "alias": "FI",
-      "country": "FI"
-    },
-    "model": "stats.countryalias",
-    "pk": 70
-  },
-  {
-    "fields": {
-      "alias": "FJ",
-      "country": "FJ"
-    },
-    "model": "stats.countryalias",
-    "pk": 71
-  },
-  {
-    "fields": {
-      "alias": "FK",
-      "country": "FK"
-    },
-    "model": "stats.countryalias",
-    "pk": 72
-  },
-  {
-    "fields": {
-      "alias": "FM",
-      "country": "FM"
-    },
-    "model": "stats.countryalias",
-    "pk": 73
-  },
-  {
-    "fields": {
-      "alias": "FO",
-      "country": "FO"
-    },
-    "model": "stats.countryalias",
-    "pk": 74
-  },
-  {
-    "fields": {
-      "alias": "FR",
-      "country": "FR"
-    },
-    "model": "stats.countryalias",
-    "pk": 75
-  },
-  {
-    "fields": {
-      "alias": "GA",
-      "country": "GA"
-    },
-    "model": "stats.countryalias",
-    "pk": 76
-  },
-  {
-    "fields": {
-      "alias": "GB",
-      "country": "GB"
-    },
-    "model": "stats.countryalias",
-    "pk": 77
-  },
-  {
-    "fields": {
-      "alias": "GD",
-      "country": "GD"
-    },
-    "model": "stats.countryalias",
-    "pk": 78
-  },
-  {
-    "fields": {
-      "alias": "GE",
-      "country": "GE"
-    },
-    "model": "stats.countryalias",
-    "pk": 79
-  },
-  {
-    "fields": {
-      "alias": "GF",
-      "country": "GF"
-    },
-    "model": "stats.countryalias",
-    "pk": 80
-  },
-  {
-    "fields": {
-      "alias": "GG",
-      "country": "GG"
-    },
-    "model": "stats.countryalias",
-    "pk": 81
-  },
-  {
-    "fields": {
-      "alias": "GH",
-      "country": "GH"
-    },
-    "model": "stats.countryalias",
-    "pk": 82
-  },
-  {
-    "fields": {
-      "alias": "GI",
-      "country": "GI"
-    },
-    "model": "stats.countryalias",
-    "pk": 83
-  },
-  {
-    "fields": {
-      "alias": "GL",
-      "country": "GL"
-    },
-    "model": "stats.countryalias",
-    "pk": 84
-  },
-  {
-    "fields": {
-      "alias": "GM",
-      "country": "GM"
-    },
-    "model": "stats.countryalias",
-    "pk": 85
-  },
-  {
-    "fields": {
-      "alias": "GN",
-      "country": "GN"
-    },
-    "model": "stats.countryalias",
-    "pk": 86
-  },
-  {
-    "fields": {
-      "alias": "GP",
-      "country": "GP"
-    },
-    "model": "stats.countryalias",
-    "pk": 87
-  },
-  {
-    "fields": {
-      "alias": "GQ",
-      "country": "GQ"
-    },
-    "model": "stats.countryalias",
-    "pk": 88
-  },
-  {
-    "fields": {
-      "alias": "GR",
-      "country": "GR"
-    },
-    "model": "stats.countryalias",
-    "pk": 89
-  },
-  {
-    "fields": {
-      "alias": "GS",
-      "country": "GS"
-    },
-    "model": "stats.countryalias",
-    "pk": 90
-  },
-  {
-    "fields": {
-      "alias": "GT",
-      "country": "GT"
-    },
-    "model": "stats.countryalias",
-    "pk": 91
-  },
-  {
-    "fields": {
-      "alias": "GU",
-      "country": "GU"
-    },
-    "model": "stats.countryalias",
-    "pk": 92
-  },
-  {
-    "fields": {
-      "alias": "GW",
-      "country": "GW"
-    },
-    "model": "stats.countryalias",
-    "pk": 93
-  },
-  {
-    "fields": {
-      "alias": "GY",
-      "country": "GY"
-    },
-    "model": "stats.countryalias",
-    "pk": 94
-  },
-  {
-    "fields": {
-      "alias": "HK",
-      "country": "HK"
-    },
-    "model": "stats.countryalias",
-    "pk": 95
-  },
-  {
-    "fields": {
-      "alias": "HM",
-      "country": "HM"
-    },
-    "model": "stats.countryalias",
-    "pk": 96
-  },
-  {
-    "fields": {
-      "alias": "HN",
-      "country": "HN"
-    },
-    "model": "stats.countryalias",
-    "pk": 97
-  },
-  {
-    "fields": {
-      "alias": "HR",
-      "country": "HR"
-    },
-    "model": "stats.countryalias",
-    "pk": 98
-  },
-  {
-    "fields": {
-      "alias": "HT",
-      "country": "HT"
-    },
-    "model": "stats.countryalias",
-    "pk": 99
-  },
-  {
-    "fields": {
-      "alias": "HU",
-      "country": "HU"
-    },
-    "model": "stats.countryalias",
-    "pk": 100
-  },
-  {
-    "fields": {
-      "alias": "ID",
-      "country": "ID"
-    },
-    "model": "stats.countryalias",
-    "pk": 101
-  },
-  {
-    "fields": {
-      "alias": "IE",
-      "country": "IE"
-    },
-    "model": "stats.countryalias",
-    "pk": 102
-  },
-  {
-    "fields": {
-      "alias": "IL",
-      "country": "IL"
-    },
-    "model": "stats.countryalias",
-    "pk": 103
-  },
-  {
-    "fields": {
-      "alias": "IM",
-      "country": "IM"
-    },
-    "model": "stats.countryalias",
-    "pk": 104
-  },
-  {
-    "fields": {
-      "alias": "IN",
-      "country": "IN"
-    },
-    "model": "stats.countryalias",
-    "pk": 105
-  },
-  {
-    "fields": {
-      "alias": "IO",
-      "country": "IO"
-    },
-    "model": "stats.countryalias",
-    "pk": 106
-  },
-  {
-    "fields": {
-      "alias": "IQ",
-      "country": "IQ"
-    },
-    "model": "stats.countryalias",
-    "pk": 107
-  },
-  {
-    "fields": {
-      "alias": "IR",
-      "country": "IR"
-    },
-    "model": "stats.countryalias",
-    "pk": 108
-  },
-  {
-    "fields": {
-      "alias": "IS",
-      "country": "IS"
-    },
-    "model": "stats.countryalias",
-    "pk": 109
-  },
-  {
-    "fields": {
-      "alias": "IT",
-      "country": "IT"
-    },
-    "model": "stats.countryalias",
-    "pk": 110
-  },
-  {
-    "fields": {
-      "alias": "JE",
-      "country": "JE"
-    },
-    "model": "stats.countryalias",
-    "pk": 111
-  },
-  {
-    "fields": {
-      "alias": "JM",
-      "country": "JM"
-    },
-    "model": "stats.countryalias",
-    "pk": 112
-  },
-  {
-    "fields": {
-      "alias": "JO",
-      "country": "JO"
-    },
-    "model": "stats.countryalias",
-    "pk": 113
-  },
-  {
-    "fields": {
-      "alias": "JP",
-      "country": "JP"
-    },
-    "model": "stats.countryalias",
-    "pk": 114
-  },
-  {
-    "fields": {
-      "alias": "KE",
-      "country": "KE"
-    },
-    "model": "stats.countryalias",
-    "pk": 115
-  },
-  {
-    "fields": {
-      "alias": "KG",
-      "country": "KG"
-    },
-    "model": "stats.countryalias",
-    "pk": 116
-  },
-  {
-    "fields": {
-      "alias": "KH",
-      "country": "KH"
-    },
-    "model": "stats.countryalias",
-    "pk": 117
-  },
-  {
-    "fields": {
-      "alias": "KI",
-      "country": "KI"
-    },
-    "model": "stats.countryalias",
-    "pk": 118
-  },
-  {
-    "fields": {
-      "alias": "KM",
-      "country": "KM"
-    },
-    "model": "stats.countryalias",
-    "pk": 119
-  },
-  {
-    "fields": {
-      "alias": "KN",
-      "country": "KN"
-    },
-    "model": "stats.countryalias",
-    "pk": 120
-  },
-  {
-    "fields": {
-      "alias": "KP",
-      "country": "KP"
-    },
-    "model": "stats.countryalias",
-    "pk": 121
-  },
-  {
-    "fields": {
-      "alias": "KR",
-      "country": "KR"
-    },
-    "model": "stats.countryalias",
-    "pk": 122
-  },
-  {
-    "fields": {
-      "alias": "KW",
-      "country": "KW"
-    },
-    "model": "stats.countryalias",
-    "pk": 123
-  },
-  {
-    "fields": {
-      "alias": "KY",
-      "country": "KY"
-    },
-    "model": "stats.countryalias",
-    "pk": 124
-  },
-  {
-    "fields": {
-      "alias": "KZ",
-      "country": "KZ"
-    },
-    "model": "stats.countryalias",
-    "pk": 125
-  },
-  {
-    "fields": {
-      "alias": "LA",
-      "country": "LA"
-    },
-    "model": "stats.countryalias",
-    "pk": 126
-  },
-  {
-    "fields": {
-      "alias": "LB",
-      "country": "LB"
-    },
-    "model": "stats.countryalias",
-    "pk": 127
-  },
-  {
-    "fields": {
-      "alias": "LC",
-      "country": "LC"
-    },
-    "model": "stats.countryalias",
-    "pk": 128
-  },
-  {
-    "fields": {
-      "alias": "LI",
-      "country": "LI"
-    },
-    "model": "stats.countryalias",
-    "pk": 129
-  },
-  {
-    "fields": {
-      "alias": "LK",
-      "country": "LK"
-    },
-    "model": "stats.countryalias",
-    "pk": 130
-  },
-  {
-    "fields": {
-      "alias": "LR",
-      "country": "LR"
-    },
-    "model": "stats.countryalias",
-    "pk": 131
-  },
-  {
-    "fields": {
-      "alias": "LS",
-      "country": "LS"
-    },
-    "model": "stats.countryalias",
-    "pk": 132
-  },
-  {
-    "fields": {
-      "alias": "LT",
-      "country": "LT"
-    },
-    "model": "stats.countryalias",
-    "pk": 133
-  },
-  {
-    "fields": {
-      "alias": "LU",
-      "country": "LU"
-    },
-    "model": "stats.countryalias",
-    "pk": 134
-  },
-  {
-    "fields": {
-      "alias": "LV",
-      "country": "LV"
-    },
-    "model": "stats.countryalias",
-    "pk": 135
-  },
-  {
-    "fields": {
-      "alias": "LY",
-      "country": "LY"
-    },
-    "model": "stats.countryalias",
-    "pk": 136
-  },
-  {
-    "fields": {
-      "alias": "MA",
-      "country": "MA"
-    },
-    "model": "stats.countryalias",
-    "pk": 137
-  },
-  {
-    "fields": {
-      "alias": "MC",
-      "country": "MC"
-    },
-    "model": "stats.countryalias",
-    "pk": 138
-  },
-  {
-    "fields": {
-      "alias": "MD",
-      "country": "MD"
-    },
-    "model": "stats.countryalias",
-    "pk": 139
-  },
-  {
-    "fields": {
-      "alias": "ME",
-      "country": "ME"
-    },
-    "model": "stats.countryalias",
-    "pk": 140
-  },
-  {
-    "fields": {
-      "alias": "MF",
-      "country": "MF"
-    },
-    "model": "stats.countryalias",
-    "pk": 141
-  },
-  {
-    "fields": {
-      "alias": "MG",
-      "country": "MG"
-    },
-    "model": "stats.countryalias",
-    "pk": 142
-  },
-  {
-    "fields": {
-      "alias": "MH",
-      "country": "MH"
-    },
-    "model": "stats.countryalias",
-    "pk": 143
-  },
-  {
-    "fields": {
-      "alias": "MK",
-      "country": "MK"
-    },
-    "model": "stats.countryalias",
-    "pk": 144
-  },
-  {
-    "fields": {
-      "alias": "ML",
-      "country": "ML"
-    },
-    "model": "stats.countryalias",
-    "pk": 145
-  },
-  {
-    "fields": {
-      "alias": "MM",
-      "country": "MM"
-    },
-    "model": "stats.countryalias",
-    "pk": 146
-  },
-  {
-    "fields": {
-      "alias": "MN",
-      "country": "MN"
-    },
-    "model": "stats.countryalias",
-    "pk": 147
-  },
-  {
-    "fields": {
-      "alias": "MO",
-      "country": "MO"
-    },
-    "model": "stats.countryalias",
-    "pk": 148
-  },
-  {
-    "fields": {
-      "alias": "MP",
-      "country": "MP"
-    },
-    "model": "stats.countryalias",
-    "pk": 149
-  },
-  {
-    "fields": {
-      "alias": "MQ",
-      "country": "MQ"
-    },
-    "model": "stats.countryalias",
-    "pk": 150
-  },
-  {
-    "fields": {
-      "alias": "MR",
-      "country": "MR"
-    },
-    "model": "stats.countryalias",
-    "pk": 151
-  },
-  {
-    "fields": {
-      "alias": "MS",
-      "country": "MS"
-    },
-    "model": "stats.countryalias",
-    "pk": 152
-  },
-  {
-    "fields": {
-      "alias": "MT",
-      "country": "MT"
-    },
-    "model": "stats.countryalias",
-    "pk": 153
-  },
-  {
-    "fields": {
-      "alias": "MU",
-      "country": "MU"
-    },
-    "model": "stats.countryalias",
-    "pk": 154
-  },
-  {
-    "fields": {
-      "alias": "MV",
-      "country": "MV"
-    },
-    "model": "stats.countryalias",
-    "pk": 155
-  },
-  {
-    "fields": {
-      "alias": "MW",
-      "country": "MW"
-    },
-    "model": "stats.countryalias",
-    "pk": 156
-  },
-  {
-    "fields": {
-      "alias": "MX",
-      "country": "MX"
-    },
-    "model": "stats.countryalias",
-    "pk": 157
-  },
-  {
-    "fields": {
-      "alias": "MY",
-      "country": "MY"
-    },
-    "model": "stats.countryalias",
-    "pk": 158
-  },
-  {
-    "fields": {
-      "alias": "MZ",
-      "country": "MZ"
-    },
-    "model": "stats.countryalias",
-    "pk": 159
-  },
-  {
-    "fields": {
-      "alias": "NA",
-      "country": "NA"
-    },
-    "model": "stats.countryalias",
-    "pk": 160
-  },
-  {
-    "fields": {
-      "alias": "NC",
-      "country": "NC"
-    },
-    "model": "stats.countryalias",
-    "pk": 161
-  },
-  {
-    "fields": {
-      "alias": "NE",
-      "country": "NE"
-    },
-    "model": "stats.countryalias",
-    "pk": 162
-  },
-  {
-    "fields": {
-      "alias": "NF",
-      "country": "NF"
-    },
-    "model": "stats.countryalias",
-    "pk": 163
-  },
-  {
-    "fields": {
-      "alias": "NG",
-      "country": "NG"
-    },
-    "model": "stats.countryalias",
-    "pk": 164
-  },
-  {
-    "fields": {
-      "alias": "NI",
-      "country": "NI"
-    },
-    "model": "stats.countryalias",
-    "pk": 165
-  },
-  {
-    "fields": {
-      "alias": "NL",
-      "country": "NL"
-    },
-    "model": "stats.countryalias",
-    "pk": 166
-  },
-  {
-    "fields": {
-      "alias": "NO",
-      "country": "NO"
-    },
-    "model": "stats.countryalias",
-    "pk": 167
-  },
-  {
-    "fields": {
-      "alias": "NP",
-      "country": "NP"
-    },
-    "model": "stats.countryalias",
-    "pk": 168
-  },
-  {
-    "fields": {
-      "alias": "NR",
-      "country": "NR"
-    },
-    "model": "stats.countryalias",
-    "pk": 169
-  },
-  {
-    "fields": {
-      "alias": "NU",
-      "country": "NU"
-    },
-    "model": "stats.countryalias",
-    "pk": 170
-  },
-  {
-    "fields": {
-      "alias": "NZ",
-      "country": "NZ"
-    },
-    "model": "stats.countryalias",
-    "pk": 171
-  },
-  {
-    "fields": {
-      "alias": "OM",
-      "country": "OM"
-    },
-    "model": "stats.countryalias",
-    "pk": 172
-  },
-  {
-    "fields": {
-      "alias": "PA",
-      "country": "PA"
-    },
-    "model": "stats.countryalias",
-    "pk": 173
-  },
-  {
-    "fields": {
-      "alias": "PE",
-      "country": "PE"
-    },
-    "model": "stats.countryalias",
-    "pk": 174
-  },
-  {
-    "fields": {
-      "alias": "PF",
-      "country": "PF"
-    },
-    "model": "stats.countryalias",
-    "pk": 175
-  },
-  {
-    "fields": {
-      "alias": "PG",
-      "country": "PG"
-    },
-    "model": "stats.countryalias",
-    "pk": 176
-  },
-  {
-    "fields": {
-      "alias": "PH",
-      "country": "PH"
-    },
-    "model": "stats.countryalias",
-    "pk": 177
-  },
-  {
-    "fields": {
-      "alias": "PK",
-      "country": "PK"
-    },
-    "model": "stats.countryalias",
-    "pk": 178
-  },
-  {
-    "fields": {
-      "alias": "PL",
-      "country": "PL"
-    },
-    "model": "stats.countryalias",
-    "pk": 179
-  },
-  {
-    "fields": {
-      "alias": "PM",
-      "country": "PM"
-    },
-    "model": "stats.countryalias",
-    "pk": 180
-  },
-  {
-    "fields": {
-      "alias": "PN",
-      "country": "PN"
-    },
-    "model": "stats.countryalias",
-    "pk": 181
-  },
-  {
-    "fields": {
-      "alias": "PR",
-      "country": "PR"
-    },
-    "model": "stats.countryalias",
-    "pk": 182
-  },
-  {
-    "fields": {
-      "alias": "PS",
-      "country": "PS"
-    },
-    "model": "stats.countryalias",
-    "pk": 183
-  },
-  {
-    "fields": {
-      "alias": "PT",
-      "country": "PT"
-    },
-    "model": "stats.countryalias",
-    "pk": 184
-  },
-  {
-    "fields": {
-      "alias": "PW",
-      "country": "PW"
-    },
-    "model": "stats.countryalias",
-    "pk": 185
-  },
-  {
-    "fields": {
-      "alias": "PY",
-      "country": "PY"
-    },
-    "model": "stats.countryalias",
-    "pk": 186
-  },
-  {
-    "fields": {
-      "alias": "QA",
-      "country": "QA"
-    },
-    "model": "stats.countryalias",
-    "pk": 187
-  },
-  {
-    "fields": {
-      "alias": "RE",
-      "country": "RE"
-    },
-    "model": "stats.countryalias",
-    "pk": 188
-  },
-  {
-    "fields": {
-      "alias": "RO",
-      "country": "RO"
-    },
-    "model": "stats.countryalias",
-    "pk": 189
-  },
-  {
-    "fields": {
-      "alias": "RS",
-      "country": "RS"
-    },
-    "model": "stats.countryalias",
-    "pk": 190
-  },
-  {
-    "fields": {
-      "alias": "RU",
-      "country": "RU"
-    },
-    "model": "stats.countryalias",
-    "pk": 191
-  },
-  {
-    "fields": {
-      "alias": "RW",
-      "country": "RW"
-    },
-    "model": "stats.countryalias",
-    "pk": 192
-  },
-  {
-    "fields": {
-      "alias": "SA",
-      "country": "SA"
-    },
-    "model": "stats.countryalias",
-    "pk": 193
-  },
-  {
-    "fields": {
-      "alias": "SB",
-      "country": "SB"
-    },
-    "model": "stats.countryalias",
-    "pk": 194
-  },
-  {
-    "fields": {
-      "alias": "SC",
-      "country": "SC"
-    },
-    "model": "stats.countryalias",
-    "pk": 195
-  },
-  {
-    "fields": {
-      "alias": "SD",
-      "country": "SD"
-    },
-    "model": "stats.countryalias",
-    "pk": 196
-  },
-  {
-    "fields": {
-      "alias": "SE",
-      "country": "SE"
-    },
-    "model": "stats.countryalias",
-    "pk": 197
-  },
-  {
-    "fields": {
-      "alias": "SG",
-      "country": "SG"
-    },
-    "model": "stats.countryalias",
-    "pk": 198
-  },
-  {
-    "fields": {
-      "alias": "SH",
-      "country": "SH"
-    },
-    "model": "stats.countryalias",
-    "pk": 199
-  },
-  {
-    "fields": {
-      "alias": "SI",
-      "country": "SI"
-    },
-    "model": "stats.countryalias",
-    "pk": 200
-  },
-  {
-    "fields": {
-      "alias": "SJ",
-      "country": "SJ"
-    },
-    "model": "stats.countryalias",
-    "pk": 201
-  },
-  {
-    "fields": {
-      "alias": "SK",
-      "country": "SK"
-    },
-    "model": "stats.countryalias",
-    "pk": 202
-  },
-  {
-    "fields": {
-      "alias": "SL",
-      "country": "SL"
-    },
-    "model": "stats.countryalias",
-    "pk": 203
-  },
-  {
-    "fields": {
-      "alias": "SM",
-      "country": "SM"
-    },
-    "model": "stats.countryalias",
-    "pk": 204
-  },
-  {
-    "fields": {
-      "alias": "SN",
-      "country": "SN"
-    },
-    "model": "stats.countryalias",
-    "pk": 205
-  },
-  {
-    "fields": {
-      "alias": "SO",
-      "country": "SO"
-    },
-    "model": "stats.countryalias",
-    "pk": 206
-  },
-  {
-    "fields": {
-      "alias": "SR",
-      "country": "SR"
-    },
-    "model": "stats.countryalias",
-    "pk": 207
-  },
-  {
-    "fields": {
-      "alias": "SS",
-      "country": "SS"
-    },
-    "model": "stats.countryalias",
-    "pk": 208
-  },
-  {
-    "fields": {
-      "alias": "ST",
-      "country": "ST"
-    },
-    "model": "stats.countryalias",
-    "pk": 209
-  },
-  {
-    "fields": {
-      "alias": "SV",
-      "country": "SV"
-    },
-    "model": "stats.countryalias",
-    "pk": 210
-  },
-  {
-    "fields": {
-      "alias": "SX",
-      "country": "SX"
-    },
-    "model": "stats.countryalias",
-    "pk": 211
-  },
-  {
-    "fields": {
-      "alias": "SY",
-      "country": "SY"
-    },
-    "model": "stats.countryalias",
-    "pk": 212
-  },
-  {
-    "fields": {
-      "alias": "SZ",
-      "country": "SZ"
-    },
-    "model": "stats.countryalias",
-    "pk": 213
-  },
-  {
-    "fields": {
-      "alias": "TC",
-      "country": "TC"
-    },
-    "model": "stats.countryalias",
-    "pk": 214
-  },
-  {
-    "fields": {
-      "alias": "TD",
-      "country": "TD"
-    },
-    "model": "stats.countryalias",
-    "pk": 215
-  },
-  {
-    "fields": {
-      "alias": "TF",
-      "country": "TF"
-    },
-    "model": "stats.countryalias",
-    "pk": 216
-  },
-  {
-    "fields": {
-      "alias": "TG",
-      "country": "TG"
-    },
-    "model": "stats.countryalias",
-    "pk": 217
-  },
-  {
-    "fields": {
-      "alias": "TH",
-      "country": "TH"
-    },
-    "model": "stats.countryalias",
-    "pk": 218
-  },
-  {
-    "fields": {
-      "alias": "TJ",
-      "country": "TJ"
-    },
-    "model": "stats.countryalias",
-    "pk": 219
-  },
-  {
-    "fields": {
-      "alias": "TK",
-      "country": "TK"
-    },
-    "model": "stats.countryalias",
-    "pk": 220
-  },
-  {
-    "fields": {
-      "alias": "TL",
-      "country": "TL"
-    },
-    "model": "stats.countryalias",
-    "pk": 221
-  },
-  {
-    "fields": {
-      "alias": "TM",
-      "country": "TM"
-    },
-    "model": "stats.countryalias",
-    "pk": 222
-  },
-  {
-    "fields": {
-      "alias": "TN",
-      "country": "TN"
-    },
-    "model": "stats.countryalias",
-    "pk": 223
-  },
-  {
-    "fields": {
-      "alias": "TO",
-      "country": "TO"
-    },
-    "model": "stats.countryalias",
-    "pk": 224
-  },
-  {
-    "fields": {
-      "alias": "TR",
-      "country": "TR"
-    },
-    "model": "stats.countryalias",
-    "pk": 225
-  },
-  {
-    "fields": {
-      "alias": "TT",
-      "country": "TT"
-    },
-    "model": "stats.countryalias",
-    "pk": 226
-  },
-  {
-    "fields": {
-      "alias": "TV",
-      "country": "TV"
-    },
-    "model": "stats.countryalias",
-    "pk": 227
-  },
-  {
-    "fields": {
-      "alias": "TW",
-      "country": "TW"
-    },
-    "model": "stats.countryalias",
-    "pk": 228
-  },
-  {
-    "fields": {
-      "alias": "TZ",
-      "country": "TZ"
-    },
-    "model": "stats.countryalias",
-    "pk": 229
-  },
-  {
-    "fields": {
-      "alias": "UA",
-      "country": "UA"
-    },
-    "model": "stats.countryalias",
-    "pk": 230
-  },
-  {
-    "fields": {
-      "alias": "UG",
-      "country": "UG"
-    },
-    "model": "stats.countryalias",
-    "pk": 231
-  },
-  {
-    "fields": {
-      "alias": "UM",
-      "country": "UM"
-    },
-    "model": "stats.countryalias",
-    "pk": 232
-  },
-  {
-    "fields": {
-      "alias": "US",
-      "country": "US"
-    },
-    "model": "stats.countryalias",
-    "pk": 233
-  },
-  {
-    "fields": {
-      "alias": "UY",
-      "country": "UY"
-    },
-    "model": "stats.countryalias",
-    "pk": 234
-  },
-  {
-    "fields": {
-      "alias": "UZ",
-      "country": "UZ"
-    },
-    "model": "stats.countryalias",
-    "pk": 235
-  },
-  {
-    "fields": {
-      "alias": "VA",
-      "country": "VA"
-    },
-    "model": "stats.countryalias",
-    "pk": 236
-  },
-  {
-    "fields": {
-      "alias": "VC",
-      "country": "VC"
-    },
-    "model": "stats.countryalias",
-    "pk": 237
-  },
-  {
-    "fields": {
-      "alias": "VE",
-      "country": "VE"
-    },
-    "model": "stats.countryalias",
-    "pk": 238
-  },
-  {
-    "fields": {
-      "alias": "VG",
-      "country": "VG"
-    },
-    "model": "stats.countryalias",
-    "pk": 239
-  },
-  {
-    "fields": {
-      "alias": "VI",
-      "country": "VI"
-    },
-    "model": "stats.countryalias",
-    "pk": 240
-  },
-  {
-    "fields": {
-      "alias": "VN",
-      "country": "VN"
-    },
-    "model": "stats.countryalias",
-    "pk": 241
-  },
-  {
-    "fields": {
-      "alias": "VU",
-      "country": "VU"
-    },
-    "model": "stats.countryalias",
-    "pk": 242
-  },
-  {
-    "fields": {
-      "alias": "WF",
-      "country": "WF"
-    },
-    "model": "stats.countryalias",
-    "pk": 243
-  },
-  {
-    "fields": {
-      "alias": "WS",
-      "country": "WS"
-    },
-    "model": "stats.countryalias",
-    "pk": 244
-  },
-  {
-    "fields": {
-      "alias": "YE",
-      "country": "YE"
-    },
-    "model": "stats.countryalias",
-    "pk": 245
-  },
-  {
-    "fields": {
-      "alias": "YT",
-      "country": "YT"
-    },
-    "model": "stats.countryalias",
-    "pk": 246
-  },
-  {
-    "fields": {
-      "alias": "ZA",
-      "country": "ZA"
-    },
-    "model": "stats.countryalias",
-    "pk": 247
-  },
-  {
-    "fields": {
-      "alias": "ZM",
-      "country": "ZM"
-    },
-    "model": "stats.countryalias",
-    "pk": 248
-  },
-  {
-    "fields": {
-      "alias": "ZW",
-      "country": "ZW"
-    },
-    "model": "stats.countryalias",
-    "pk": 249
-  },
-  {
-    "fields": {
-      "alias": "russian federation",
-      "country": "RU"
-    },
-    "model": "stats.countryalias",
-    "pk": 250
-  },
-  {
-    "fields": {
-      "alias": "p. r. china",
-      "country": "CN"
-    },
-    "model": "stats.countryalias",
-    "pk": 251
-  },
-  {
-    "fields": {
-      "alias": "p.r. china",
-      "country": "CN"
-    },
-    "model": "stats.countryalias",
-    "pk": 252
-  },
-  {
-    "fields": {
-      "alias": "p.r.china",
-      "country": "CN"
-    },
-    "model": "stats.countryalias",
-    "pk": 253
-  },
-  {
-    "fields": {
-      "alias": "p.r china",
-      "country": "CN"
-    },
-    "model": "stats.countryalias",
-    "pk": 254
-  },
-  {
-    "fields": {
-      "alias": "p.r. of china",
-      "country": "CN"
-    },
-    "model": "stats.countryalias",
-    "pk": 255
-  },
-  {
-    "fields": {
-      "alias": "PRC",
-      "country": "CN"
-    },
-    "model": "stats.countryalias",
-    "pk": 256
-  },
-  {
-    "fields": {
-      "alias": "P.R.C",
-      "country": "CN"
-    },
-    "model": "stats.countryalias",
-    "pk": 257
-  },
-  {
-    "fields": {
-      "alias": "P.R.C.",
-      "country": "CN"
-    },
-    "model": "stats.countryalias",
-    "pk": 258
-  },
-  {
-    "fields": {
-      "alias": "beijing",
-      "country": "CN"
-    },
-    "model": "stats.countryalias",
-    "pk": 259
-  },
-  {
-    "fields": {
-      "alias": "shenzhen",
-      "country": "CN"
-    },
-    "model": "stats.countryalias",
-    "pk": 260
-  },
-  {
-    "fields": {
-      "alias": "R.O.C.",
-      "country": "TW"
-    },
-    "model": "stats.countryalias",
-    "pk": 261
-  },
-  {
-    "fields": {
-      "alias": "usa",
-      "country": "US"
-    },
-    "model": "stats.countryalias",
-    "pk": 262
-  },
-  {
-    "fields": {
-      "alias": "UAS",
-      "country": "US"
-    },
-    "model": "stats.countryalias",
-    "pk": 263
-  },
-  {
-    "fields": {
-      "alias": "USA.",
-      "country": "US"
-    },
-    "model": "stats.countryalias",
-    "pk": 264
-  },
-  {
-    "fields": {
-      "alias": "u.s.a.",
-      "country": "US"
-    },
-    "model": "stats.countryalias",
-    "pk": 265
-  },
-  {
-    "fields": {
-      "alias": "u. s. a.",
-      "country": "US"
-    },
-    "model": "stats.countryalias",
-    "pk": 266
-  },
-  {
-    "fields": {
-      "alias": "u.s.a",
-      "country": "US"
-    },
-    "model": "stats.countryalias",
-    "pk": 267
-  },
-  {
-    "fields": {
-      "alias": "u.s.",
-      "country": "US"
-    },
-    "model": "stats.countryalias",
-    "pk": 268
-  },
-  {
-    "fields": {
-      "alias": "U.S",
-      "country": "GB"
-    },
-    "model": "stats.countryalias",
-    "pk": 269
-  },
-  {
-    "fields": {
-      "alias": "US of A",
-      "country": "US"
-    },
-    "model": "stats.countryalias",
-    "pk": 270
-  },
-  {
-    "fields": {
-      "alias": "united sates",
-      "country": "US"
-    },
-    "model": "stats.countryalias",
-    "pk": 271
-  },
-  {
-    "fields": {
-      "alias": "united state",
-      "country": "US"
-    },
-    "model": "stats.countryalias",
-    "pk": 272
-  },
-  {
-    "fields": {
-      "alias": "united states",
-      "country": "US"
-    },
-    "model": "stats.countryalias",
-    "pk": 273
-  },
-  {
-    "fields": {
-      "alias": "unites states",
-      "country": "US"
-    },
-    "model": "stats.countryalias",
-    "pk": 274
-  },
-  {
-    "fields": {
-      "alias": "texas",
-      "country": "US"
-    },
-    "model": "stats.countryalias",
-    "pk": 275
-  },
-  {
-    "fields": {
-      "alias": "UK",
-      "country": "GB"
-    },
-    "model": "stats.countryalias",
-    "pk": 276
-  },
-  {
-    "fields": {
-      "alias": "united kingcom",
-      "country": "GB"
-    },
-    "model": "stats.countryalias",
-    "pk": 277
-  },
-  {
-    "fields": {
-      "alias": "great britain",
-      "country": "GB"
-    },
-    "model": "stats.countryalias",
-    "pk": 278
-  },
-  {
-    "fields": {
-      "alias": "england",
-      "country": "GB"
-    },
-    "model": "stats.countryalias",
-    "pk": 279
-  },
-  {
-    "fields": {
-      "alias": "U.K.",
-      "country": "GB"
-    },
-    "model": "stats.countryalias",
-    "pk": 280
-  },
-  {
-    "fields": {
-      "alias": "U.K",
-      "country": "GB"
-    },
-    "model": "stats.countryalias",
-    "pk": 281
-  },
-  {
-    "fields": {
-      "alias": "scotland",
-      "country": "GB"
-    },
-    "model": "stats.countryalias",
-    "pk": 282
-  },
-  {
-    "fields": {
-      "alias": "republic of korea",
-      "country": "KR"
-    },
-    "model": "stats.countryalias",
-    "pk": 283
-  },
-  {
-    "fields": {
-      "alias": "korea",
-      "country": "KR"
-    },
-    "model": "stats.countryalias",
-    "pk": 284
-  },
-  {
-    "fields": {
-      "alias": "korea rep",
-      "country": "KR"
-    },
-    "model": "stats.countryalias",
-    "pk": 285
-  },
-  {
-    "fields": {
-      "alias": "korea (the republic of)",
-      "country": "KR"
-    },
-    "model": "stats.countryalias",
-    "pk": 286
-  },
-  {
-    "fields": {
-      "alias": "the netherlands",
-      "country": "NL"
-    },
-    "model": "stats.countryalias",
-    "pk": 287
-  },
-  {
-    "fields": {
-      "alias": "netherland",
-      "country": "NL"
-    },
-    "model": "stats.countryalias",
-    "pk": 288
-  },
-  {
-    "fields": {
-      "alias": "danmark",
-      "country": "DK"
-    },
-    "model": "stats.countryalias",
-    "pk": 289
-  },
-  {
-    "fields": {
-      "alias": "sweeden",
-      "country": "SE"
-    },
-    "model": "stats.countryalias",
-    "pk": 290
-  },
-  {
-    "fields": {
-      "alias": "swede",
-      "country": "SE"
-    },
-    "model": "stats.countryalias",
-    "pk": 291
-  },
-  {
-    "fields": {
-      "alias": "belgique",
-      "country": "BE"
-    },
-    "model": "stats.countryalias",
-    "pk": 292
-  },
-  {
-    "fields": {
-      "alias": "madrid",
-      "country": "ES"
-    },
-    "model": "stats.countryalias",
-    "pk": 293
-  },
-  {
-    "fields": {
-      "alias": "espana",
-      "country": "ES"
-    },
-    "model": "stats.countryalias",
-    "pk": 294
-  },
-  {
-    "fields": {
-      "alias": "hellas",
-      "country": "GR"
-    },
-    "model": "stats.countryalias",
-    "pk": 295
-  },
-  {
-    "fields": {
-      "alias": "gemany",
-      "country": "DE"
-    },
-    "model": "stats.countryalias",
-    "pk": 296
-  },
-  {
-    "fields": {
-      "alias": "deutschland",
-      "country": "DE"
-    },
-    "model": "stats.countryalias",
-    "pk": 297
-  },
-  {
-    "fields": {
-      "alias": "italia",
-      "country": "IT"
-    },
-    "model": "stats.countryalias",
-    "pk": 298
-  },
-  {
-    "fields": {
-      "alias": "isreal",
-      "country": "IL"
-    },
-    "model": "stats.countryalias",
-    "pk": 299
-  },
-  {
-    "fields": {
-      "alias": "tel aviv",
-      "country": "IL"
-    },
-    "model": "stats.countryalias",
-    "pk": 300
-  },
-  {
-    "fields": {
-      "alias": "UAE",
-      "country": "AE"
-    },
-    "model": "stats.countryalias",
-    "pk": 301
-  },
-  {
-    "fields": {
-      "alias": "grand-duchy of luxembourg",
-      "country": "LU"
-    },
-    "model": "stats.countryalias",
-    "pk": 302
-  },
-  {
-    "fields": {
-      "alias": "brasil",
-      "country": "BR"
-    },
-    "model": "stats.countryalias",
-    "pk": 303
-  },
-  {
-    "fields": {
-      "command": "xym",
-      "switch": "--version",
-      "time": "2020-06-04T00:13:08.473",
-      "used": true,
-      "version": "xym 0.4.8"
-    },
-    "model": "utils.versioninfo",
-    "pk": 1
-  },
-  {
-    "fields": {
-      "command": "pyang",
-      "switch": "--version",
-      "time": "2020-06-04T00:13:09.826",
-      "used": true,
-      "version": "pyang 2.2.1"
-    },
-    "model": "utils.versioninfo",
-    "pk": 2
-  },
-  {
-    "fields": {
-      "command": "yanglint",
-      "switch": "--version",
-      "time": "2020-06-04T00:13:10.047",
-      "used": true,
-      "version": "yanglint SO 1.6.7"
-    },
-    "model": "utils.versioninfo",
-    "pk": 3
-  },
-  {
-    "fields": {
-      "command": "xml2rfc",
-      "switch": "--version",
-      "time": "2020-06-04T00:13:11.820",
-      "used": true,
-      "version": "xml2rfc 2.44.0"
-    },
-    "model": "utils.versioninfo",
-    "pk": 4
-  }
+{
+  "fields": {
+    "content": "{% autoescape off %}{{ assigner.ascii }} has assigned {{ reviewer.person.ascii }} as a reviewer for this document.\r\n\r\n{% if prev_team_reviews %}This team has completed other reviews of this document:{% endif %}{% for assignment in prev_team_reviews %}\r\n- {{ assignment.completed_on }} {{ assignment.reviewer.person.ascii }} -{% if assignment.reviewed_rev %}{{ assignment.reviewed_rev }}{% else %}{{ assignment.review_request.requested_rev }}{% endif %} {{ assignment.result.name }}  \r\n{% endfor %}{% endautoescape %}",
+    "group": null,
+    "path": "/group/defaults/email/review_assigned.txt",
+    "title": "Default template for review assignment email",
+    "type": "django",
+    "variables": ""
+  },
+  "model": "dbtemplate.dbtemplate",
+  "pk": 354
+},
+{
+  "fields": {
+    "doc_type": "charter",
+    "name": "Ready for external review",
+    "order": 1,
+    "positions": [
+      "yes",
+      "noobj",
+      "block",
+      "abstain",
+      "norecord"
+    ],
+    "question": "Is this charter ready for external review?",
+    "slug": "r-extrev",
+    "used": true
+  },
+  "model": "doc.ballottype",
+  "pk": 1
+},
+{
+  "fields": {
+    "doc_type": "charter",
+    "name": "Ready w/o external review",
+    "order": 2,
+    "positions": [
+      "yes",
+      "noobj",
+      "block",
+      "abstain",
+      "norecord"
+    ],
+    "question": "Is this charter ready for external review? Is this charter ready for approval without external review?",
+    "slug": "r-wo-ext",
+    "used": true
+  },
+  "model": "doc.ballottype",
+  "pk": 2
+},
+{
+  "fields": {
+    "doc_type": "charter",
+    "name": "Approve",
+    "order": 3,
+    "positions": [
+      "yes",
+      "noobj",
+      "block",
+      "abstain",
+      "norecord"
+    ],
+    "question": "Do we approve of this charter?",
+    "slug": "approve",
+    "used": true
+  },
+  "model": "doc.ballottype",
+  "pk": 3
+},
+{
+  "fields": {
+    "doc_type": "draft",
+    "name": "Approve",
+    "order": 1,
+    "positions": [
+      "yes",
+      "noobj",
+      "discuss",
+      "abstain",
+      "recuse",
+      "norecord"
+    ],
+    "question": "",
+    "slug": "approve",
+    "used": true
+  },
+  "model": "doc.ballottype",
+  "pk": 4
+},
+{
+  "fields": {
+    "doc_type": "conflrev",
+    "name": "Approve",
+    "order": 0,
+    "positions": [
+      "yes",
+      "noobj",
+      "discuss",
+      "abstain",
+      "recuse",
+      "norecord"
+    ],
+    "question": "Is this the correct conflict review response?",
+    "slug": "conflrev",
+    "used": true
+  },
+  "model": "doc.ballottype",
+  "pk": 5
+},
+{
+  "fields": {
+    "doc_type": "statchg",
+    "name": "Approve",
+    "order": 0,
+    "positions": [
+      "yes",
+      "noobj",
+      "discuss",
+      "abstain",
+      "recuse",
+      "norecord"
+    ],
+    "question": "Do we approve these RFC status changes?",
+    "slug": "statchg",
+    "used": true
+  },
+  "model": "doc.ballottype",
+  "pk": 6
+},
+{
+  "fields": {
+    "doc_type": "draft",
+    "name": "IRSG Approve",
+    "order": 0,
+    "positions": [
+      "moretime",
+      "notready",
+      "yes",
+      "noobj",
+      "recuse"
+    ],
+    "question": "Is this draft ready for publication in the IRTF stream?",
+    "slug": "irsg-approve",
+    "used": true
+  },
+  "model": "doc.ballottype",
+  "pk": 7
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Active",
+    "next_states": [],
+    "order": 1,
+    "slug": "active",
+    "type": "draft",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 1
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Expired",
+    "next_states": [],
+    "order": 2,
+    "slug": "expired",
+    "type": "draft",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 2
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "RFC",
+    "next_states": [],
+    "order": 3,
+    "slug": "rfc",
+    "type": "draft",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 3
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Replaced",
+    "next_states": [],
+    "order": 4,
+    "slug": "repl",
+    "type": "draft",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 4
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Withdrawn by Submitter",
+    "next_states": [],
+    "order": 5,
+    "slug": "auth-rm",
+    "type": "draft",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 5
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Withdrawn by IETF",
+    "next_states": [],
+    "order": 6,
+    "slug": "ietf-rm",
+    "type": "draft",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 6
+},
+{
+  "fields": {
+    "desc": "The ID has been published as an RFC.",
+    "name": "RFC Published",
+    "next_states": [
+      8
+    ],
+    "order": 32,
+    "slug": "pub",
+    "type": "draft-iesg",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 7
+},
+{
+  "fields": {
+    "desc": "Document is \"dead\" and is no longer being tracked. (E.g., it has been replaced by another document with a different name, it has been withdrawn, etc.)",
+    "name": "Dead",
+    "next_states": [
+      16
+    ],
+    "order": 99,
+    "slug": "dead",
+    "type": "draft-iesg",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 8
+},
+{
+  "fields": {
+    "desc": "The IESG has approved the document for publication, but the Secretariat has not yet sent out on official approval message.",
+    "name": "Approved-announcement to be sent",
+    "next_states": [
+      10
+    ],
+    "order": 27,
+    "slug": "approved",
+    "type": "draft-iesg",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 9
+},
+{
+  "fields": {
+    "desc": "The IESG has approved the document for publication, and the Secretariat has sent out the official approval message to the RFC editor.",
+    "name": "Approved-announcement sent",
+    "next_states": [
+      17
+    ],
+    "order": 30,
+    "slug": "ann",
+    "type": "draft-iesg",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 10
+},
+{
+  "fields": {
+    "desc": "An AD is aware of the document and has chosen to place the document in a separate state in order to keep a closer eye on it (for whatever reason). Documents in this state are still not being actively tracked in the sense that no formal request has been made to publish or advance the document. The sole difference between this state and \"I-D Exists\" is that an AD has chosen to put it in a separate state, to make it easier to keep track of (for the AD's own reasons).",
+    "name": "AD is watching",
+    "next_states": [
+      16
+    ],
+    "order": 42,
+    "slug": "watching",
+    "type": "draft-iesg",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 11
+},
+{
+  "fields": {
+    "desc": "The document is now (finally!) being formally reviewed by the entire IESG. Documents are discussed in email or during a bi-weekly IESG telechat. In this phase, each AD reviews the document and airs any issues they may have. Unresolvable issues are documented as \"discuss\" comments that can be forwarded to the authors/WG. See the description of substates for additional details about the current state of the IESG discussion.",
+    "name": "IESG Evaluation",
+    "next_states": [
+      18,
+      9,
+      22
+    ],
+    "order": 20,
+    "slug": "iesg-eva",
+    "type": "draft-iesg",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 12
+},
+{
+  "fields": {
+    "desc": "A specific AD (e.g., the Area Advisor for the WG) has begun reviewing the document to verify that it is ready for advancement. The shepherding AD is responsible for doing any necessary review before starting an IETF Last Call or sending the document directly to the IESG as a whole.",
+    "name": "AD Evaluation",
+    "next_states": [
+      21,
+      14,
+      12,
+      11
+    ],
+    "order": 11,
+    "slug": "ad-eval",
+    "type": "draft-iesg",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 13
+},
+{
+  "fields": {
+    "desc": "The AD has requested that the Secretariat start an IETF Last Call, but the the actual Last Call message has not been sent yet.",
+    "name": "Last Call Requested",
+    "next_states": [
+      15
+    ],
+    "order": 15,
+    "slug": "lc-req",
+    "type": "draft-iesg",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 14
+},
+{
+  "fields": {
+    "desc": "The document is currently waiting for IETF Last Call to complete. Last Calls for WG documents typically last 2 weeks, those for individual submissions last 4 weeks.",
+    "name": "In Last Call",
+    "next_states": [
+      19,
+      20
+    ],
+    "order": 16,
+    "slug": "lc",
+    "type": "draft-iesg",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 15
+},
+{
+  "fields": {
+    "desc": "A formal request has been made to advance/publish the document, following the procedures in Section 7.5 of RFC 2418. The request could be from a WG chair, from an individual through the RFC Editor, etc. (The Secretariat (iesg-secretary@ietf.org) is copied on these requests to ensure that the request makes it into the ID tracker.) A document in this state has not (yet) been reviewed by an AD nor has any official action been taken on it yet (other than to note that its publication has been requested.",
+    "name": "Publication Requested",
+    "next_states": [
+      13,
+      11,
+      8
+    ],
+    "order": 10,
+    "slug": "pub-req",
+    "type": "draft-iesg",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 16
+},
+{
+  "fields": {
+    "desc": "The document is in the RFC editor Queue (as confirmed by http://www.rfc-editor.org/queue.html).",
+    "name": "RFC Ed Queue",
+    "next_states": [
+      7
+    ],
+    "order": 31,
+    "slug": "rfcqueue",
+    "type": "draft-iesg",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 17
+},
+{
+  "fields": {
+    "desc": "During a telechat, one or more ADs requested an additional 2 weeks to review the document. A defer is designed to be an exception mechanism, and can only be invoked once, the first time the document comes up for discussion during a telechat.",
+    "name": "IESG Evaluation - Defer",
+    "next_states": [
+      12
+    ],
+    "order": 21,
+    "slug": "defer",
+    "type": "draft-iesg",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 18
+},
+{
+  "fields": {
+    "desc": "Before a standards-track or BCP document is formally considered by the entire IESG, the AD must write up a protocol action. The protocol action is included in the approval message that the Secretariat sends out when the document is approved for publication as an RFC.",
+    "name": "Waiting for Writeup",
+    "next_states": [
+      20
+    ],
+    "order": 18,
+    "slug": "writeupw",
+    "type": "draft-iesg",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 19
+},
+{
+  "fields": {
+    "desc": "As a result of the IETF Last Call, comments may need to be responded to and a revision of the ID may be needed as well. The AD is responsible for verifying that all Last Call comments have been adequately addressed and that the (possibly revised) document is in the ID directory and ready for consideration by the IESG as a whole.",
+    "name": "Waiting for AD Go-Ahead",
+    "next_states": [
+      12
+    ],
+    "order": 19,
+    "slug": "goaheadw",
+    "type": "draft-iesg",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 20
+},
+{
+  "fields": {
+    "desc": "An AD sometimes asks for an external review by an outside party as part of evaluating whether a document is ready for advancement. MIBs, for example, are reviewed by the \"MIB doctors\". Other types of reviews may also be requested (e.g., security, operations impact, etc.). Documents stay in this state until the review is complete and possibly until the issues raised in the review are addressed. See the \"note\" field for specific details on the nature of the review.",
+    "name": "Expert Review",
+    "next_states": [
+      13
+    ],
+    "order": 12,
+    "slug": "review-e",
+    "type": "draft-iesg",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 21
+},
+{
+  "fields": {
+    "desc": "Do Not Publish: The IESG recommends against publishing the document, but the writeup explaining its reasoning has not yet been produced. DNPs apply primarily to individual submissions received through the RFC editor.  See the \"note\" field for more details on who has the action item.",
+    "name": "DNP-waiting for AD note",
+    "next_states": [
+      23
+    ],
+    "order": 33,
+    "slug": "nopubadw",
+    "type": "draft-iesg",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 22
+},
+{
+  "fields": {
+    "desc": "The IESG recommends against publishing the document, the writeup explaining its reasoning has been produced, but the Secretariat has not yet sent out the official \"do not publish\" recommendation message.",
+    "name": "DNP-announcement to be sent",
+    "next_states": [
+      8
+    ],
+    "order": 34,
+    "slug": "nopubanw",
+    "type": "draft-iesg",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 23
+},
+{
+  "fields": {
+    "desc": "Awaiting author action",
+    "name": "AUTH",
+    "next_states": [],
+    "order": 0,
+    "slug": "auth",
+    "type": "draft-rfceditor",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 24
+},
+{
+  "fields": {
+    "desc": "Awaiting final author approval",
+    "name": "AUTH48",
+    "next_states": [],
+    "order": 0,
+    "slug": "auth48",
+    "type": "draft-rfceditor",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 25
+},
+{
+  "fields": {
+    "desc": "Approved by the stream manager (e.g., IESG, IAB, IRSG, ISE), awaiting processing and publishing",
+    "name": "EDIT",
+    "next_states": [],
+    "order": 0,
+    "slug": "edit",
+    "type": "draft-rfceditor",
+    "used": false
+  },
+  "model": "doc.state",
+  "pk": 26
+},
+{
+  "fields": {
+    "desc": "Document has been edited, but is holding for completion of IANA actions",
+    "name": "IANA",
+    "next_states": [],
+    "order": 0,
+    "slug": "iana",
+    "type": "draft-rfceditor",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 27
+},
+{
+  "fields": {
+    "desc": "Awaiting IESG action",
+    "name": "IESG",
+    "next_states": [],
+    "order": 0,
+    "slug": "iesg",
+    "type": "draft-rfceditor",
+    "used": false
+  },
+  "model": "doc.state",
+  "pk": 28
+},
+{
+  "fields": {
+    "desc": "Independent Submission Review by the ISE ",
+    "name": "ISR",
+    "next_states": [],
+    "order": 0,
+    "slug": "isr",
+    "type": "draft-rfceditor",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 29
+},
+{
+  "fields": {
+    "desc": "Independent submission awaiting author action, or in discussion between author and ISE",
+    "name": "ISR-AUTH",
+    "next_states": [],
+    "order": 0,
+    "slug": "isr-auth",
+    "type": "draft-rfceditor",
+    "used": false
+  },
+  "model": "doc.state",
+  "pk": 30
+},
+{
+  "fields": {
+    "desc": "Holding for normative reference",
+    "name": "REF",
+    "next_states": [],
+    "order": 0,
+    "slug": "ref",
+    "type": "draft-rfceditor",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 31
+},
+{
+  "fields": {
+    "desc": "Awaiting final RFC Editor review before AUTH48",
+    "name": "RFC-EDITOR",
+    "next_states": [],
+    "order": 0,
+    "slug": "rfc-edit",
+    "type": "draft-rfceditor",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 32
+},
+{
+  "fields": {
+    "desc": "Time-out period during which the IESG reviews document for conflict/concurrence with other IETF working group work",
+    "name": "TO",
+    "next_states": [],
+    "order": 0,
+    "slug": "timeout",
+    "type": "draft-rfceditor",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 33
+},
+{
+  "fields": {
+    "desc": "Awaiting missing normative reference",
+    "name": "MISSREF",
+    "next_states": [],
+    "order": 0,
+    "slug": "missref",
+    "type": "draft-rfceditor",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 34
+},
+{
+  "fields": {
+    "desc": "<a href=\"http://tools.ietf.org/html/rfc6174#section-4.2.1\" target=\"_blank\">4.2.1. Call for Adoption by WG Issued</a>\n\n The \"Call for Adoption by WG Issued\" state should be used to indicate when an I-D is being considered for adoption by an IETF WG. An I-D that is in this state is actively being considered for adoption and has not yet achieved consensus, preference, or selection in the WG.\n\n This state may be used to describe an I-D that someone has asked a WG to consider for adoption, if the WG Chair has agreed with the request. This state may also be used to identify an I-D that a WG Chair asked an author to write specifically for consideration as a candidate WG item [WGDTSPEC], and/or an I-D that is listed as a 'candidate draft' in the WG's charter.\n\n Under normal conditions, it should not be possible for an I-D to be in the \"Call for Adoption by WG Issued\" state in more than one working group at the same time. This said, it is not uncommon for authors to \"shop\" their I-Ds to more than one WG at a time, with the hope of getting their documents adopted somewhere.\n\n After this state is implemented in the Datatracker, an I-D that is in the \"Call for Adoption by WG Issued\" state will not be able to be \"shopped\" to any other WG without the consent of the WG Chairs and the responsible ADs impacted by the shopping.\n\n Note that Figure 1 includes an arc leading from this state to outside of the WG state machine. This illustrates that some I-Ds that are considered do not get adopted as WG drafts. An I-D that is not adopted as a WG draft will transition out of the WG state machine and revert back to having no stream-specific state; however, the status change history log of the I-D will record that the I-D was previously in the \"Call for Adoption by WG Issued\" state.",
+    "name": "Call For Adoption By WG Issued",
+    "next_states": [
+      36,
+      37
+    ],
+    "order": 1,
+    "slug": "c-adopt",
+    "type": "draft-stream-ietf",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 35
+},
+{
+  "fields": {
+    "desc": "<a href=\"http://tools.ietf.org/html/rfc6174#section-4.2.2\" target=\"_blank\">4.2.2. Adopted by a WG</a>\n\n The \"Adopted by a WG\" state describes an individual submission I-D that an IETF WG has agreed to adopt as one of its WG drafts.\n\n WG Chairs who use this state will be able to clearly indicate when their WGs adopt individual submission I-Ds. This will facilitate the Datatracker's ability to correctly capture \"Replaces\" information for WG drafts and correct \"Replaced by\" information for individual submission I-Ds that have been replaced by WG drafts.\n\n This state is needed because the Datatracker uses the filename of an I-D as a key to search its database for status information about the I-D, and because the filename of a WG I-D is supposed to be different from the filename of an individual submission I-D. The filename of an individual submission I-D will typically be formatted as 'draft-author-wgname-topic-nn'.\n\n The filename of a WG document is supposed to be formatted as 'draft- ietf-wgname-topic-nn'.\n\n An individual I-D that is adopted by a WG may take weeks or months to be resubmitted by the author as a new (version-00) WG draft. If the \"Adopted by a WG\" state is not used, the Datatracker has no way to determine that an I-D has been adopted until a new version of the I-D is submitted to the WG by the author and until the I-D is approved for posting by a WG Chair.",
+    "name": "Adopted by a WG",
+    "next_states": [
+      38
+    ],
+    "order": 2,
+    "slug": "adopt-wg",
+    "type": "draft-stream-ietf",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 36
+},
+{
+  "fields": {
+    "desc": "<a href=\"http://tools.ietf.org/html/rfc6174#section-4.2.3\" target=\"_blank\">4.2.3. Adopted for WG Info Only</a>\n\n The \"Adopted for WG Info Only\" state describes a document that contains useful information for the WG that adopted it, but the document is not intended to be published as an RFC. The WG will not actively develop the contents of the I-D or progress it for publication as an RFC. The only purpose of the I-D is to provide information for internal use by the WG.",
+    "name": "Adopted for WG Info Only",
+    "next_states": [],
+    "order": 3,
+    "slug": "info",
+    "type": "draft-stream-ietf",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 37
+},
+{
+  "fields": {
+    "desc": "<a href=\"http://tools.ietf.org/html/rfc6174#section-4.2.4\" target=\"_blank\">4.2.4. WG Document</a>\n\n The \"WG Document\" state describes an I-D that has been adopted by an IETF WG and is being actively developed.\n\n A WG Chair may transition an I-D into the \"WG Document\" state at any time as long as the I-D is not being considered or developed in any other WG.\n\n Alternatively, WG Chairs may rely upon new functionality to be added to the Datatracker to automatically move version-00 drafts into the \"WG Document\" state as described in Section 4.1.\n\n Under normal conditions, it should not be possible for an I-D to be in the \"WG Document\" state in more than one WG at a time. This said, I-Ds may be transferred from one WG to another with the consent of the WG Chairs and the responsible ADs.",
+    "name": "WG Document",
+    "next_states": [
+      39,
+      40,
+      41,
+      43
+    ],
+    "order": 4,
+    "slug": "wg-doc",
+    "type": "draft-stream-ietf",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 38
+},
+{
+  "fields": {
+    "desc": "<a href=\"http://tools.ietf.org/html/rfc6174#section-4.2.5\" target=\"_blank\">4.2.5. Parked WG Document</a>\n\n A \"Parked WG Document\" is an I-D that has lost its author or editor, is waiting for another document to be written or for a review to be completed, or cannot be progressed by the working group for some other reason.\n\n Some of the annotation tags described in Section 4.3 may be used in conjunction with this state to indicate why an I-D has been parked, and/or what may need to happen for the I-D to be un-parked.\n\n Parking a WG draft will not prevent it from expiring; however, this state can be used to indicate why the I-D has stopped progressing in the WG.\n\n A \"Parked WG Document\" that is not expired may be transferred from one WG to another with the consent of the WG Chairs and the responsible ADs.",
+    "name": "Parked WG Document",
+    "next_states": [
+      38
+    ],
+    "order": 5,
+    "slug": "parked",
+    "type": "draft-stream-ietf",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 39
+},
+{
+  "fields": {
+    "desc": "<a href=\"http://tools.ietf.org/html/rfc6174#section-4.2.6\" target=\"_blank\">4.2.6. Dead WG Document</a>\n\n A \"Dead WG Document\" is an I-D that has been abandoned. Note that 'Dead' is not always a final state for a WG I-D. If consensus is subsequently achieved, a \"Dead WG Document\" may be resurrected. A \"Dead WG Document\" that is not resurrected will eventually expire.\n\n Note that an I-D that is declared to be \"Dead\" in one WG and that is not expired may be transferred to a non-dead state in another WG with the consent of the WG Chairs and the responsible ADs.",
+    "name": "Dead WG Document",
+    "next_states": [
+      38
+    ],
+    "order": 6,
+    "slug": "dead",
+    "type": "draft-stream-ietf",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 40
+},
+{
+  "fields": {
+    "desc": "<a href=\"http://tools.ietf.org/html/rfc6174#section-4.2.7\" target=\"_blank\">4.2.7. In WG Last Call</a>\n\n A document \"In WG Last Call\" is an I-D for which a WG Last Call (WGLC) has been issued and is in progress.\n\n Note that conducting a WGLC is an optional part of the IETF WG process, per Section 7.4 of RFC 2418 [RFC2418].\n\n If a WG Chair decides to conduct a WGLC on an I-D, the \"In WG Last Call\" state can be used to track the progress of the WGLC. The Chair may configure the Datatracker to send a WGLC message to one or more mailing lists when the Chair moves the I-D into this state. The WG Chair may also be able to select a different set of mailing lists for a different document undergoing a WGLC; some documents may deserve coordination with other WGs.\n\n A WG I-D in this state should remain \"In WG Last Call\" until the WG Chair moves it to another state. The WG Chair may configure the Datatracker to send an e-mail after a specified period of time to remind or 'nudge' the Chair to conclude the WGLC and to determine the next state for the document.\n\n It is possible for one WGLC to lead into another WGLC for the same document. For example, an I-D that completed a WGLC as an \"Informational\" document may need another WGLC if a decision is taken to convert the I-D into a Standards Track document.",
+    "name": "In WG Last Call",
+    "next_states": [
+      38,
+      42,
+      43
+    ],
+    "order": 7,
+    "slug": "wg-lc",
+    "type": "draft-stream-ietf",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 41
+},
+{
+  "fields": {
+    "desc": "<a href=\"http://tools.ietf.org/html/rfc6174#section-4.2.8\" target=\"_blank\">4.2.8. Waiting for WG Chair Go-Ahead</a>\n\n A WG Chair may wish to place an I-D that receives a lot of comments during a WGLC into the \"Waiting for WG Chair Go-Ahead\" state. This state describes an I-D that has undergone a WGLC; however, the Chair is not yet ready to call consensus on the document.\n\n If comments from the WGLC need to be responded to, or a revision to the I-D is needed, the Chair may place an I-D into this state until all of the WGLC comments are adequately addressed and the (possibly revised) document is in the I-D repository.",
+    "name": "Waiting for WG Chair Go-Ahead",
+    "next_states": [
+      41,
+      43
+    ],
+    "order": 10,
+    "slug": "chair-w",
+    "type": "draft-stream-ietf",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 42
+},
+{
+  "fields": {
+    "desc": "<a href=\"http://tools.ietf.org/html/rfc6174#section-4.2.9\" target=\"_blank\">4.2.9. WG Consensus: Waiting for Writeup</a>\n\n A document in the \"WG Consensus: Waiting for Writeup\" state has essentially completed its development within the working group, and is nearly ready to be sent to the IESG for publication. The last thing to be done is the preparation of a protocol writeup by a Document Shepherd. The IESG requires that a document shepherd writeup be completed before publication of the I-D is requested. The IETF document shepherding process and the role of a WG Document Shepherd is described in RFC 4858 [RFC4858]\n\n A WG Chair may call consensus on an I-D without a formal WGLC and transition an I-D that was in the \"WG Document\" state directly into this state.\n\n The name of this state includes the words \"Waiting for Writeup\" because a good document shepherd writeup takes time to prepare.",
+    "name": "WG Consensus: Waiting for Write-Up",
+    "next_states": [
+      44
+    ],
+    "order": 11,
+    "slug": "writeupw",
+    "type": "draft-stream-ietf",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 43
+},
+{
+  "fields": {
+    "desc": "<a href=\"http://tools.ietf.org/html/rfc6174#section-4.2.10\" target=\"_blank\">4.2.10. Submitted to IESG for Publication</a>\n\n This state describes a WG document that has been submitted to the IESG for publication and that has not been sent back to the working group for revision.\n\n An I-D in this state may be under review by the IESG, it may have been approved and be in the RFC Editor's queue, or it may have been published as an RFC. Other possibilities exist too. The document may be \"Dead\" (in the IESG state machine) or in a \"Do Not Publish\" state.",
+    "name": "Submitted to IESG for Publication",
+    "next_states": [
+      38
+    ],
+    "order": 12,
+    "slug": "sub-pub",
+    "type": "draft-stream-ietf",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 44
+},
+{
+  "fields": {
+    "desc": "A document being considered for the IAB stream.",
+    "name": "Candidate IAB Document",
+    "next_states": [],
+    "order": 1,
+    "slug": "candidat",
+    "type": "draft-stream-iab",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 45
+},
+{
+  "fields": {
+    "desc": "This document has been adopted by the IAB and is being actively developed.",
+    "name": "Active IAB Document",
+    "next_states": [],
+    "order": 2,
+    "slug": "active",
+    "type": "draft-stream-iab",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 46
+},
+{
+  "fields": {
+    "desc": "This document has lost its author or editor, is waiting for another document to be written, or cannot currently be worked on by the IAB for some other reason. Annotations probably explain why this document is parked.",
+    "name": "Parked IAB Document",
+    "next_states": [],
+    "order": 3,
+    "slug": "parked",
+    "type": "draft-stream-iab",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 47
+},
+{
+  "fields": {
+    "desc": "This document is awaiting the IAB itself to come to internal consensus.",
+    "name": "IAB Review",
+    "next_states": [],
+    "order": 4,
+    "slug": "review-i",
+    "type": "draft-stream-iab",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 48
+},
+{
+  "fields": {
+    "desc": "This document has completed internal consensus within the IAB and is now under community review.",
+    "name": "Community Review",
+    "next_states": [],
+    "order": 5,
+    "slug": "review-c",
+    "type": "draft-stream-iab",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 49
+},
+{
+  "fields": {
+    "desc": "The consideration of this document is complete, but it has not yet been sent to the RFC Editor for publication (although that is going to happen soon).",
+    "name": "Approved by IAB, To Be Sent to RFC Editor",
+    "next_states": [],
+    "order": 6,
+    "slug": "approved",
+    "type": "draft-stream-iab",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 50
+},
+{
+  "fields": {
+    "desc": "The IAB does not expect to publish the document itself, but has passed it on to a different organization that might continue work on the document. The expectation is that the other organization will eventually publish the document.",
+    "name": "Sent to a Different Organization for Publication",
+    "next_states": [],
+    "order": 7,
+    "slug": "diff-org",
+    "type": "draft-stream-iab",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 51
+},
+{
+  "fields": {
+    "desc": "The IAB processing of this document is complete and it has been sent to the RFC Editor for publication. The document may be in the RFC Editor's queue, or it may have been published as an RFC; this state doesn't distinguish between different states occurring after the document has left the IAB.",
+    "name": "Sent to the RFC Editor",
+    "next_states": [],
+    "order": 8,
+    "slug": "rfc-edit",
+    "type": "draft-stream-iab",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 52
+},
+{
+  "fields": {
+    "desc": "The document has been published as an RFC.",
+    "name": "Published RFC",
+    "next_states": [],
+    "order": 9,
+    "slug": "pub",
+    "type": "draft-stream-iab",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 53
+},
+{
+  "fields": {
+    "desc": "This document was an active IAB document, but for some reason it is no longer being pursued for the IAB stream. It is possible that the document might be revived later, possibly in another stream.",
+    "name": "Dead IAB Document",
+    "next_states": [],
+    "order": 10,
+    "slug": "dead",
+    "type": "draft-stream-iab",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 54
+},
+{
+  "fields": {
+    "desc": "This document is under consideration in an RG for becoming an IRTF document. A document in this state does not imply any RG consensus and does not imply any precedence or selection.  It's simply a way to indicate that somebody has asked for a document to be considered for adoption by an RG.",
+    "name": "Candidate RG Document",
+    "next_states": [],
+    "order": 1,
+    "slug": "candidat",
+    "type": "draft-stream-irtf",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 55
+},
+{
+  "fields": {
+    "desc": "This document has been adopted by the RG and is being actively developed.",
+    "name": "Active RG Document",
+    "next_states": [],
+    "order": 2,
+    "slug": "active",
+    "type": "draft-stream-irtf",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 56
+},
+{
+  "fields": {
+    "desc": "This document has lost its author or editor, is waiting for another document to be written, or cannot currently be worked on by the RG for some other reason.",
+    "name": "Parked RG Document",
+    "next_states": [],
+    "order": 3,
+    "slug": "parked",
+    "type": "draft-stream-irtf",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 57
+},
+{
+  "fields": {
+    "desc": "The document is in its final review in the RG.",
+    "name": "In RG Last Call",
+    "next_states": [],
+    "order": 4,
+    "slug": "rg-lc",
+    "type": "draft-stream-irtf",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 58
+},
+{
+  "fields": {
+    "desc": "IRTF documents have document shepherds who help RG documents through the process after the RG has finished with the document.",
+    "name": "Waiting for Document Shepherd",
+    "next_states": [],
+    "order": 5,
+    "slug": "sheph-w",
+    "type": "draft-stream-irtf",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 59
+},
+{
+  "fields": {
+    "desc": "The IRTF Chair is meant to be performing some task such as sending a request for IESG Review.",
+    "name": "Waiting for IRTF Chair",
+    "next_states": [],
+    "order": 6,
+    "slug": "chair-w",
+    "type": "draft-stream-irtf",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 60
+},
+{
+  "fields": {
+    "desc": "The document shepherd has taken the document to the IRSG and solicited reviews from one or more IRSG members.",
+    "name": "Awaiting IRSG Reviews",
+    "next_states": [],
+    "order": 7,
+    "slug": "irsg-w",
+    "type": "draft-stream-irtf",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 61
+},
+{
+  "fields": {
+    "desc": "The IRSG is taking a poll on whether or not the document is ready to be published.",
+    "name": "In IRSG Poll",
+    "next_states": [],
+    "order": 8,
+    "slug": "irsgpoll",
+    "type": "draft-stream-irtf",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 62
+},
+{
+  "fields": {
+    "desc": "The IRSG has asked the IESG to do a review of the document, as described in RFC5742.",
+    "name": "In IESG Review",
+    "next_states": [],
+    "order": 9,
+    "slug": "iesg-rev",
+    "type": "draft-stream-irtf",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 63
+},
+{
+  "fields": {
+    "desc": "The RG processing of this document is complete and it has been sent to the RFC Editor for publication. The document may be in the RFC Editor's queue, or it may have been published as an RFC; this state doesn't distinguish between different states occurring after the document has left the RG.",
+    "name": "Sent to the RFC Editor",
+    "next_states": [],
+    "order": 10,
+    "slug": "rfc-edit",
+    "type": "draft-stream-irtf",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 64
+},
+{
+  "fields": {
+    "desc": "The document has been published as an RFC.",
+    "name": "Published RFC",
+    "next_states": [],
+    "order": 11,
+    "slug": "pub",
+    "type": "draft-stream-irtf",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 65
+},
+{
+  "fields": {
+    "desc": "The IESG has requested that the document be held pending further review, as specified in RFC 5742, and the IRTF has agreed to such a hold.",
+    "name": "Document on Hold Based On IESG Request",
+    "next_states": [],
+    "order": 12,
+    "slug": "iesghold",
+    "type": "draft-stream-irtf",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 66
+},
+{
+  "fields": {
+    "desc": "This document was an active IRTF document, but for some reason it is no longer being pursued for the IRTF stream. It is possible that the document might be revived later, possibly in another stream.",
+    "name": "Dead IRTF Document",
+    "next_states": [],
+    "order": 13,
+    "slug": "dead",
+    "type": "draft-stream-irtf",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 67
+},
+{
+  "fields": {
+    "desc": "The draft has been sent to the ISE with a request for publication.",
+    "name": "Submission Received",
+    "next_states": [],
+    "order": 1,
+    "slug": "receive",
+    "type": "draft-stream-ise",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 68
+},
+{
+  "fields": {
+    "desc": " The ISE is finding initial reviewers for the document.",
+    "name": "Finding Reviewers",
+    "next_states": [],
+    "order": 2,
+    "slug": "find-rev",
+    "type": "draft-stream-ise",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 69
+},
+{
+  "fields": {
+    "desc": "The ISE is actively working on the document.",
+    "name": "In ISE Review",
+    "next_states": [],
+    "order": 3,
+    "slug": "ise-rev",
+    "type": "draft-stream-ise",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 70
+},
+{
+  "fields": {
+    "desc": " One or more reviews have been sent to the author, and the ISE is awaiting response.",
+    "name": "Response to Review Needed",
+    "next_states": [],
+    "order": 4,
+    "slug": "need-res",
+    "type": "draft-stream-ise",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 71
+},
+{
+  "fields": {
+    "desc": "The ISE has asked the IESG to do a review of the document, as described in RFC5742.",
+    "name": "In IESG Review",
+    "next_states": [],
+    "order": 5,
+    "slug": "iesg-rev",
+    "type": "draft-stream-ise",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 72
+},
+{
+  "fields": {
+    "desc": "The ISE processing of this document is complete and it has been sent to the RFC Editor for publication. The document may be in the RFC Editor's queue, or it may have been published as an RFC; this state doesn't distinguish between different states occurring after the document has left the ISE.",
+    "name": "Sent to the RFC Editor",
+    "next_states": [],
+    "order": 6,
+    "slug": "rfc-edit",
+    "type": "draft-stream-ise",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 73
+},
+{
+  "fields": {
+    "desc": "The document has been published as an RFC.",
+    "name": "Published RFC",
+    "next_states": [],
+    "order": 7,
+    "slug": "pub",
+    "type": "draft-stream-ise",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 74
+},
+{
+  "fields": {
+    "desc": "This document was actively considered in the Independent Submission stream, but the ISE chose not to publish it.  It is possible that the document might be revived later. A document in this state may have a comment explaining the reasoning of the ISE (such as if the document was going to move to a different stream).",
+    "name": "No Longer In Independent Submission Stream",
+    "next_states": [],
+    "order": 8,
+    "slug": "dead",
+    "type": "draft-stream-ise",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 75
+},
+{
+  "fields": {
+    "desc": "The IESG has requested that the document be held pending further review, as specified in RFC 5742, and the ISE has agreed to such a hold.",
+    "name": "Document on Hold Based On IESG Request",
+    "next_states": [],
+    "order": 9,
+    "slug": "iesghold",
+    "type": "draft-stream-ise",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 76
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Active",
+    "next_states": [],
+    "order": 1,
+    "slug": "active",
+    "type": "slides",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 77
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Deleted",
+    "next_states": [],
+    "order": 4,
+    "slug": "deleted",
+    "type": "slides",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 78
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Active",
+    "next_states": [],
+    "order": 1,
+    "slug": "active",
+    "type": "minutes",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 79
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Deleted",
+    "next_states": [],
+    "order": 2,
+    "slug": "deleted",
+    "type": "minutes",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 80
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Active",
+    "next_states": [],
+    "order": 1,
+    "slug": "active",
+    "type": "agenda",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 81
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Deleted",
+    "next_states": [],
+    "order": 2,
+    "slug": "deleted",
+    "type": "agenda",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 82
+},
+{
+  "fields": {
+    "desc": "The proposed charter is not being considered at this time. A proposed charter will remain in this state until an AD moves it to Informal IESG review.",
+    "name": "Not currently under review",
+    "next_states": [],
+    "order": 0,
+    "slug": "notrev",
+    "type": "charter",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 83
+},
+{
+  "fields": {
+    "desc": "The proposed charter is not being considered at this time. A proposed charter will remain in this state until an AD moves it to Start Chartering/Rechartering (Internal IESG/IAB Review). This state is useful for drafting the charter, discussing with chairs, etc.",
+    "name": "Draft Charter",
+    "next_states": [],
+    "order": 0,
+    "slug": "infrev",
+    "type": "charter",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 84
+},
+{
+  "fields": {
+    "desc": "This is the state when you'd like to propose the charter / new charter. This state also allows you to ask whether external review can be skipped in ballot. After you select this state, the Secretariat takes over and drives the rest of the process.",
+    "name": "Start Chartering/Rechartering (Internal Steering Group/IAB Review)",
+    "next_states": [],
+    "order": 0,
+    "slug": "intrev",
+    "type": "charter",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 85
+},
+{
+  "fields": {
+    "desc": "This state is selected by the Secretariat (AD's, keep yer grubby mits off this!) when it has been decided that the charter needs external review.",
+    "name": "External Review (Message to Community, Selected by Secretariat)",
+    "next_states": [],
+    "order": 0,
+    "slug": "extrev",
+    "type": "charter",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 86
+},
+{
+  "fields": {
+    "desc": "This state is selected by the Secretariat (AD's, keep yer grubby mits off this!) when the IESG is reviewing the discussion from the external review of the proposed charter (this is similar to the IESG Evaluation state for a draft).",
+    "name": "IESG Review (Charter for Approval, Selected by Secretariat)",
+    "next_states": [],
+    "order": 0,
+    "slug": "iesgrev",
+    "type": "charter",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 87
+},
+{
+  "fields": {
+    "desc": "The charter is approved by the IESG.",
+    "name": "Approved",
+    "next_states": [],
+    "order": 0,
+    "slug": "approved",
+    "type": "charter",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 88
+},
+{
+  "fields": {
+    "desc": "Final approvals are complete",
+    "name": "AUTH48-DONE",
+    "next_states": [
+      74
+    ],
+    "order": 0,
+    "slug": "auth48done",
+    "type": "draft-rfceditor",
+    "used": false
+  },
+  "model": "doc.state",
+  "pk": 89
+},
+{
+  "fields": {
+    "desc": "A conflict review has been requested, but a shepherding AD has not yet been assigned",
+    "name": "Needs Shepherd",
+    "next_states": [
+      91,
+      98,
+      99
+    ],
+    "order": 1,
+    "slug": "needshep",
+    "type": "conflrev",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 90
+},
+{
+  "fields": {
+    "desc": "The sponsoring AD is reviewing the document and preparing a proposed response",
+    "name": "AD Review",
+    "next_states": [
+      92,
+      98,
+      99
+    ],
+    "order": 2,
+    "slug": "adrev",
+    "type": "conflrev",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 91
+},
+{
+  "fields": {
+    "desc": "The IESG is considering the proposed conflict review response",
+    "name": "IESG Evaluation",
+    "next_states": [
+      93,
+      94,
+      95,
+      98,
+      99
+    ],
+    "order": 3,
+    "slug": "iesgeval",
+    "type": "conflrev",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 92
+},
+{
+  "fields": {
+    "desc": "The evaluation of the proposed conflict review response has been deferred to the next telechat",
+    "name": "IESG Evaluation - Defer",
+    "next_states": [
+      92,
+      94,
+      95,
+      98,
+      99
+    ],
+    "order": 4,
+    "slug": "defer",
+    "type": "conflrev",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 93
+},
+{
+  "fields": {
+    "desc": "The IESG has approved the conflict review response (a request to not publish), but the secretariat has not yet sent the response",
+    "name": "Approved Request to Not Publish - announcement to be sent",
+    "next_states": [
+      96,
+      98
+    ],
+    "order": 7,
+    "slug": "appr-reqnopub-pend",
+    "type": "conflrev",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 94
+},
+{
+  "fields": {
+    "desc": "The IESG has approved the conflict review response, but the secretariat has not yet sent the response",
+    "name": "Approved No Problem - announcement to be sent",
+    "next_states": [
+      97,
+      98
+    ],
+    "order": 8,
+    "slug": "appr-noprob-pend",
+    "type": "conflrev",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 95
+},
+{
+  "fields": {
+    "desc": "The secretariat has delivered the IESG's approved conflict review response (a request to not publish) to the requester",
+    "name": "Approved Request to Not Publish - announcement sent",
+    "next_states": [
+      96
+    ],
+    "order": 9,
+    "slug": "appr-reqnopub-sent",
+    "type": "conflrev",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 96
+},
+{
+  "fields": {
+    "desc": "The secretariat has delivered the IESG's approved conflict review response to the requester",
+    "name": "Approved No Problem - announcement sent",
+    "next_states": [
+      97
+    ],
+    "order": 10,
+    "slug": "appr-noprob-sent",
+    "type": "conflrev",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 97
+},
+{
+  "fields": {
+    "desc": "The request for conflict review was withdrawn",
+    "name": "Withdrawn",
+    "next_states": [
+      90
+    ],
+    "order": 11,
+    "slug": "withdraw",
+    "type": "conflrev",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 98
+},
+{
+  "fields": {
+    "desc": "The conflict review has been abandoned",
+    "name": "Dead",
+    "next_states": [
+      90
+    ],
+    "order": 12,
+    "slug": "dead",
+    "type": "conflrev",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 99
+},
+{
+  "fields": {
+    "desc": "The IESG has approved the conflict review response (a request to not publish), but a point has been raised that should be cleared before moving to announcement to be sent",
+    "name": "Approved Request to Not Publish - point raised",
+    "next_states": [
+      94
+    ],
+    "order": 5,
+    "slug": "appr-reqnopub-pr",
+    "type": "conflrev",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 100
+},
+{
+  "fields": {
+    "desc": "The IESG has approved the conflict review response, but a point has been raised that should be cleared before proceeding to announcement to be sent",
+    "name": "Approved No Problem - point raised",
+    "next_states": [
+      95
+    ],
+    "order": 6,
+    "slug": "appr-noprob-pr",
+    "type": "conflrev",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 101
+},
+{
+  "fields": {
+    "desc": "A new document has been received by IANA, but no actions have been taken",
+    "name": "New Document",
+    "next_states": [],
+    "order": 1,
+    "slug": "newdoc",
+    "type": "draft-iana-action",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 102
+},
+{
+  "fields": {
+    "desc": "IANA is currently processing the actions for this document",
+    "name": "In Progress",
+    "next_states": [],
+    "order": 2,
+    "slug": "inprog",
+    "type": "draft-iana-action",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 103
+},
+{
+  "fields": {
+    "desc": "IANA is waiting on the document's authors to respond",
+    "name": "Waiting on Authors",
+    "next_states": [],
+    "order": 3,
+    "slug": "waitauth",
+    "type": "draft-iana-action",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 104
+},
+{
+  "fields": {
+    "desc": "IANA is waiting on the IETF Area Directors to respond",
+    "name": "Waiting on ADs",
+    "next_states": [],
+    "order": 4,
+    "slug": "waitad",
+    "type": "draft-iana-action",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 105
+},
+{
+  "fields": {
+    "desc": "IANA is waiting on the IETF Working Group Chairs to respond",
+    "name": "Waiting on WGC",
+    "next_states": [],
+    "order": 5,
+    "slug": "waitwgc",
+    "type": "draft-iana-action",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 106
+},
+{
+  "fields": {
+    "desc": "IANA has notified the RFC Editor that the actions have been completed",
+    "name": "Waiting on RFC Editor",
+    "next_states": [],
+    "order": 6,
+    "slug": "waitrfc",
+    "type": "draft-iana-action",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 107
+},
+{
+  "fields": {
+    "desc": "Request completed. The RFC Editor has acknowledged receipt of IANA's message that the actions have been completed",
+    "name": "RFC-Ed-Ack",
+    "next_states": [],
+    "order": 7,
+    "slug": "rfcedack",
+    "type": "draft-iana-action",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 108
+},
+{
+  "fields": {
+    "desc": "IANA has suspended work on the document",
+    "name": "On Hold",
+    "next_states": [],
+    "order": 8,
+    "slug": "onhold",
+    "type": "draft-iana-action",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 109
+},
+{
+  "fields": {
+    "desc": "Request completed. There were no IANA actions for this document",
+    "name": "No IANA Actions",
+    "next_states": [],
+    "order": 9,
+    "slug": "noic",
+    "type": "draft-iana-action",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 110
+},
+{
+  "fields": {
+    "desc": "Document has not yet been reviewed by IANA.",
+    "name": "IANA - Review Needed",
+    "next_states": [],
+    "order": 1,
+    "slug": "need-rev",
+    "type": "draft-iana-review",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 111
+},
+{
+  "fields": {
+    "desc": "Document requires IANA actions, and the IANA Considerations section indicates the details of the actions correctly.",
+    "name": "IANA OK - Actions Needed",
+    "next_states": [],
+    "order": 2,
+    "slug": "ok-act",
+    "type": "draft-iana-review",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 112
+},
+{
+  "fields": {
+    "desc": "Document requires no IANA action, and the IANA Considerations section indicates this correctly.",
+    "name": "IANA OK - No Actions Needed",
+    "next_states": [],
+    "order": 3,
+    "slug": "ok-noact",
+    "type": "draft-iana-review",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 113
+},
+{
+  "fields": {
+    "desc": "IANA has issues with the text of the IANA Considerations section of the document.",
+    "name": "IANA - Not OK",
+    "next_states": [],
+    "order": 4,
+    "slug": "not-ok",
+    "type": "draft-iana-review",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 114
+},
+{
+  "fields": {
+    "desc": "Document revision has changed after review by IANA.",
+    "name": "Version Changed - Review Needed",
+    "next_states": [],
+    "order": 5,
+    "slug": "changed",
+    "type": "draft-iana-review",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 115
+},
+{
+  "fields": {
+    "desc": "Final approvals are complete",
+    "name": "AUTH48-DONE",
+    "next_states": [],
+    "order": 0,
+    "slug": "auth48-done",
+    "type": "draft-rfceditor",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 116
+},
+{
+  "fields": {
+    "desc": "Approved by the stream manager (e.g., IESG, IAB, IRSG, ISE), awaiting processing and publishing",
+    "name": "EDIT",
+    "next_states": [],
+    "order": 0,
+    "slug": "edit",
+    "type": "draft-rfceditor",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 117
+},
+{
+  "fields": {
+    "desc": "RFC-Editor/IANA Registration Coordination",
+    "name": "IANA",
+    "next_states": [],
+    "order": 0,
+    "slug": "iana-crd",
+    "type": "draft-rfceditor",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 118
+},
+{
+  "fields": {
+    "desc": "Holding for IESG action",
+    "name": "IESG",
+    "next_states": [],
+    "order": 0,
+    "slug": "iesg",
+    "type": "draft-rfceditor",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 119
+},
+{
+  "fields": {
+    "desc": "Independent Submission awaiting author update, or in discussion between author and ISE",
+    "name": "ISR-AUTH",
+    "next_states": [],
+    "order": 0,
+    "slug": "isr-auth",
+    "type": "draft-rfceditor",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 120
+},
+{
+  "fields": {
+    "desc": "An RFC status change has been requested, but a shepherding AD has not yet been assigned",
+    "name": "Needs Shepherd",
+    "next_states": [
+      122,
+      129
+    ],
+    "order": 1,
+    "slug": "needshep",
+    "type": "statchg",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 121
+},
+{
+  "fields": {
+    "desc": "The sponsoring AD is preparing an RFC status change document",
+    "name": "AD Review",
+    "next_states": [
+      130,
+      123,
+      129
+    ],
+    "order": 2,
+    "slug": "adrev",
+    "type": "statchg",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 122
+},
+{
+  "fields": {
+    "desc": "The IESG is considering the proposed RFC status changes",
+    "name": "IESG Evaluation",
+    "next_states": [
+      124,
+      125,
+      126,
+      129
+    ],
+    "order": 6,
+    "slug": "iesgeval",
+    "type": "statchg",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 123
+},
+{
+  "fields": {
+    "desc": "The evaluation of the proposed RFC status changes have been deferred to the next telechat",
+    "name": "IESG Evaluation - Defer",
+    "next_states": [
+      123,
+      125,
+      126,
+      129
+    ],
+    "order": 7,
+    "slug": "defer",
+    "type": "statchg",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 124
+},
+{
+  "fields": {
+    "desc": "The IESG has approved the RFC status changes, but a point has been raised that should be cleared before proceeding to announcement to be sent",
+    "name": "Approved - point raised",
+    "next_states": [
+      126,
+      127
+    ],
+    "order": 8,
+    "slug": "appr-pr",
+    "type": "statchg",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 125
+},
+{
+  "fields": {
+    "desc": "The IESG has approved the RFC status changes, but the secretariat has not yet sent the announcement",
+    "name": "Approved - announcement to be sent",
+    "next_states": [
+      127
+    ],
+    "order": 9,
+    "slug": "appr-pend",
+    "type": "statchg",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 126
+},
+{
+  "fields": {
+    "desc": "The secretariat has announced the IESG's approved RFC status changes",
+    "name": "Approved - announcement sent",
+    "next_states": [],
+    "order": 10,
+    "slug": "appr-sent",
+    "type": "statchg",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 127
+},
+{
+  "fields": {
+    "desc": "The RFC status changes have been abandoned",
+    "name": "Dead",
+    "next_states": [
+      121
+    ],
+    "order": 11,
+    "slug": "dead",
+    "type": "statchg",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 129
+},
+{
+  "fields": {
+    "desc": "Last Call has been requested for this proposed status change",
+    "name": "Last Call Requested",
+    "next_states": [
+      131
+    ],
+    "order": 3,
+    "slug": "lc-req",
+    "type": "statchg",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 130
+},
+{
+  "fields": {
+    "desc": "This proposed status change is in IETF Last Call",
+    "name": "In Last Call",
+    "next_states": [
+      132
+    ],
+    "order": 4,
+    "slug": "in-lc",
+    "type": "statchg",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 131
+},
+{
+  "fields": {
+    "desc": "The AD is following up on IETF LC comments",
+    "name": "Waiting for AD Go-Ahead",
+    "next_states": [
+      123,
+      129
+    ],
+    "order": 5,
+    "slug": "goahead",
+    "type": "statchg",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 132
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Pending",
+    "next_states": [],
+    "order": 0,
+    "slug": "pending",
+    "type": "draft-rfceditor",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 133
+},
+{
+  "fields": {
+    "desc": "The document has been marked as a candidate for WG adoption by the WG Chair.  This state can be used before a call for adoption is issued (and the document is put in the \"Call For Adoption By WG Issued\" state), to indicate that the document is in the queue for a call for adoption, even if none has been issued yet.",
+    "name": "Candidate for WG Adoption",
+    "next_states": [
+      35
+    ],
+    "order": 0,
+    "slug": "wg-cand",
+    "type": "draft-stream-ietf",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 134
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Active",
+    "next_states": [],
+    "order": 0,
+    "slug": "active",
+    "type": "recording",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 135
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Deleted",
+    "next_states": [],
+    "order": 0,
+    "slug": "deleted",
+    "type": "recording",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 136
+},
+{
+  "fields": {
+    "desc": "This document is not active, but is available in the archives",
+    "name": "Archived",
+    "next_states": [],
+    "order": 3,
+    "slug": "archived",
+    "type": "slides",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 138
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Active",
+    "next_states": [],
+    "order": 0,
+    "slug": "active",
+    "type": "bluesheets",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 139
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Deleted",
+    "next_states": [],
+    "order": 0,
+    "slug": "deleted",
+    "type": "bluesheets",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 140
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Single Meeting",
+    "next_states": [],
+    "order": 0,
+    "slug": "single",
+    "type": "reuse_policy",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 141
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Multiple Meetings",
+    "next_states": [],
+    "order": 0,
+    "slug": "multiple",
+    "type": "reuse_policy",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 142
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Active",
+    "next_states": [],
+    "order": 1,
+    "slug": "active",
+    "type": "review",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 143
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Deleted",
+    "next_states": [],
+    "order": 2,
+    "slug": "deleted",
+    "type": "review",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 144
+},
+{
+  "fields": {
+    "desc": "In some areas, it can be desirable to wait for multiple interoperable implementations before progressing a draft to be an RFC, and in some WGs this is required.  This state should be entered after WG Last Call has completed.",
+    "name": "Waiting for Implementation",
+    "next_states": [],
+    "order": 8,
+    "slug": "waiting-for-implementation",
+    "type": "draft-stream-ietf",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 145
+},
+{
+  "fields": {
+    "desc": "Held by WG, see document history for details.",
+    "name": "Held by WG",
+    "next_states": [],
+    "order": 9,
+    "slug": "held-by-wg",
+    "type": "draft-stream-ietf",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 146
+},
+{
+  "fields": {
+    "desc": "Replaced",
+    "name": "Replaced",
+    "next_states": [],
+    "order": 0,
+    "slug": "repl",
+    "type": "draft-stream-iab",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 147
+},
+{
+  "fields": {
+    "desc": "Replaced",
+    "name": "Replaced",
+    "next_states": [],
+    "order": 0,
+    "slug": "repl",
+    "type": "draft-stream-ise",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 148
+},
+{
+  "fields": {
+    "desc": "Replaced",
+    "name": "Replaced",
+    "next_states": [],
+    "order": 0,
+    "slug": "repl",
+    "type": "draft-stream-irtf",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 149
+},
+{
+  "fields": {
+    "desc": "The IESG has not started processing this draft, or has stopped processing it without publicastion.",
+    "name": "I-D Exists",
+    "next_states": [
+      16,
+      11
+    ],
+    "order": 0,
+    "slug": "idexists",
+    "type": "draft-iesg",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 150
+},
+{
+  "fields": {
+    "desc": "One or more registries need experts assigned",
+    "name": "Need IANA Expert(s)",
+    "next_states": [],
+    "order": 0,
+    "slug": "need-experts",
+    "type": "draft-iana-experts",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 151
+},
+{
+  "fields": {
+    "desc": "One or more expert reviews have been assigned",
+    "name": "Reviews assigned",
+    "next_states": [],
+    "order": 1,
+    "slug": "reviews-assigned",
+    "type": "draft-iana-experts",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 152
+},
+{
+  "fields": {
+    "desc": "Some expert reviewers have identified issues",
+    "name": "Issues identified",
+    "next_states": [],
+    "order": 2,
+    "slug": "expert-issues",
+    "type": "draft-iana-experts",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 153
+},
+{
+  "fields": {
+    "desc": "All expert reviews have been completed with no blocking issues",
+    "name": "Expert Reviews OK",
+    "next_states": [],
+    "order": 2,
+    "slug": "reviewers-ok",
+    "type": "draft-iana-experts",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 154
+},
+{
+  "fields": {
+    "desc": "Tooling Issue; an update is needed to one or more of the tools in the publication pipeline before this document can be published",
+    "name": "TI",
+    "next_states": [],
+    "order": 0,
+    "slug": "tooling-issue",
+    "type": "draft-rfceditor",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 155
+},
+{
+  "fields": {
+    "desc": "IRSG Review",
+    "name": "IRSG Review",
+    "next_states": [],
+    "order": 0,
+    "slug": "irsg_review",
+    "type": "draft-stream-irtf",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 156
+},
+{
+  "fields": {
+    "desc": "This charter's group was replaced.",
+    "name": "Replaced",
+    "next_states": [],
+    "order": 0,
+    "slug": "replaced",
+    "type": "charter",
+    "used": true
+  },
+  "model": "doc.state",
+  "pk": 157
+},
+{
+  "fields": {
+    "label": "State"
+  },
+  "model": "doc.statetype",
+  "pk": "agenda"
+},
+{
+  "fields": {
+    "label": "State"
+  },
+  "model": "doc.statetype",
+  "pk": "bluesheets"
+},
+{
+  "fields": {
+    "label": "State"
+  },
+  "model": "doc.statetype",
+  "pk": "charter"
+},
+{
+  "fields": {
+    "label": "Conflict Review State"
+  },
+  "model": "doc.statetype",
+  "pk": "conflrev"
+},
+{
+  "fields": {
+    "label": "State"
+  },
+  "model": "doc.statetype",
+  "pk": "draft"
+},
+{
+  "fields": {
+    "label": "IANA state"
+  },
+  "model": "doc.statetype",
+  "pk": "draft-iana"
+},
+{
+  "fields": {
+    "label": "IANA Action state"
+  },
+  "model": "doc.statetype",
+  "pk": "draft-iana-action"
+},
+{
+  "fields": {
+    "label": "IANA Experts State"
+  },
+  "model": "doc.statetype",
+  "pk": "draft-iana-experts"
+},
+{
+  "fields": {
+    "label": "IANA Review state"
+  },
+  "model": "doc.statetype",
+  "pk": "draft-iana-review"
+},
+{
+  "fields": {
+    "label": "IESG state"
+  },
+  "model": "doc.statetype",
+  "pk": "draft-iesg"
+},
+{
+  "fields": {
+    "label": "RFC Editor state"
+  },
+  "model": "doc.statetype",
+  "pk": "draft-rfceditor"
+},
+{
+  "fields": {
+    "label": "IAB state"
+  },
+  "model": "doc.statetype",
+  "pk": "draft-stream-iab"
+},
+{
+  "fields": {
+    "label": "IETF WG state"
+  },
+  "model": "doc.statetype",
+  "pk": "draft-stream-ietf"
+},
+{
+  "fields": {
+    "label": "IRTF state"
+  },
+  "model": "doc.statetype",
+  "pk": "draft-stream-irtf"
+},
+{
+  "fields": {
+    "label": "ISE state"
+  },
+  "model": "doc.statetype",
+  "pk": "draft-stream-ise"
+},
+{
+  "fields": {
+    "label": "State"
+  },
+  "model": "doc.statetype",
+  "pk": "liai-att"
+},
+{
+  "fields": {
+    "label": "Liason Statement State"
+  },
+  "model": "doc.statetype",
+  "pk": "liaison"
+},
+{
+  "fields": {
+    "label": "State"
+  },
+  "model": "doc.statetype",
+  "pk": "minutes"
+},
+{
+  "fields": {
+    "label": "State"
+  },
+  "model": "doc.statetype",
+  "pk": "recording"
+},
+{
+  "fields": {
+    "label": "Policy"
+  },
+  "model": "doc.statetype",
+  "pk": "reuse_policy"
+},
+{
+  "fields": {
+    "label": "Review"
+  },
+  "model": "doc.statetype",
+  "pk": "review"
+},
+{
+  "fields": {
+    "label": "Shepherd's Writeup State"
+  },
+  "model": "doc.statetype",
+  "pk": "shepwrit"
+},
+{
+  "fields": {
+    "label": "State"
+  },
+  "model": "doc.statetype",
+  "pk": "slides"
+},
+{
+  "fields": {
+    "label": "RFC Status Change state"
+  },
+  "model": "doc.statetype",
+  "pk": "statchg"
+},
+{
+  "fields": {
+    "about_page": "ietf.group.views.group_about",
+    "acts_like_wg": false,
+    "admin_roles": "[\n    \"chair\"\n]",
+    "agenda_type": "ietf",
+    "create_wiki": true,
+    "custom_group_roles": false,
+    "customize_workflow": false,
+    "default_tab": "ietf.group.views.group_about",
+    "default_used_roles": "[\n    \"matman\",\n    \"ad\",\n    \"chair\",\n    \"lead\"\n]",
+    "docman_roles": "[\n    \"chair\"\n]",
+    "groupman_authroles": "[\n    \"Secretariat\"\n]",
+    "groupman_roles": "[\n    \"chair\",\n    \"lead\",\n    \"delegate\"\n]",
+    "has_chartering_process": false,
+    "has_default_jabber": true,
+    "has_documents": false,
+    "has_meetings": true,
+    "has_milestones": false,
+    "has_nonsession_materials": false,
+    "has_reviews": false,
+    "has_session_materials": true,
+    "is_schedulable": true,
+    "material_types": "[\n    \"slides\"\n]",
+    "matman_roles": "[\n    \"chair\",\n    \"lead\",\n    \"delegate\",\n    \"matman\"\n]",
+    "req_subm_approval": true,
+    "role_order": "[\n    \"chair\",\n    \"lead\",\n    \"delegate\",\n    \"matman\"\n]",
+    "show_on_agenda": true
+  },
+  "model": "group.groupfeatures",
+  "pk": "adhoc"
+},
+{
+  "fields": {
+    "about_page": "ietf.group.views.group_about",
+    "acts_like_wg": false,
+    "admin_roles": "[\n    \"chair\"\n]",
+    "agenda_type": "ietf",
+    "create_wiki": false,
+    "custom_group_roles": false,
+    "customize_workflow": false,
+    "default_tab": "ietf.group.views.group_about",
+    "default_used_roles": "[\n    \"member\",\n    \"chair\"\n]",
+    "docman_roles": "[\n    \"chair\"\n]",
+    "groupman_authroles": "[\n    \"Secretariat\"\n]",
+    "groupman_roles": "[\n    \"chair\"\n]",
+    "has_chartering_process": false,
+    "has_default_jabber": false,
+    "has_documents": false,
+    "has_meetings": false,
+    "has_milestones": false,
+    "has_nonsession_materials": false,
+    "has_reviews": false,
+    "has_session_materials": false,
+    "is_schedulable": false,
+    "material_types": "[\n    \"slides\"\n]",
+    "matman_roles": "[\n    \"chair\"\n]",
+    "req_subm_approval": false,
+    "role_order": "[\n    \"chair\"\n]",
+    "show_on_agenda": false
+  },
+  "model": "group.groupfeatures",
+  "pk": "admin"
+},
+{
+  "fields": {
+    "about_page": "ietf.group.views.group_about",
+    "acts_like_wg": true,
+    "admin_roles": "[\n    \"chair\"\n]",
+    "agenda_type": "ietf",
+    "create_wiki": true,
+    "custom_group_roles": true,
+    "customize_workflow": false,
+    "default_tab": "ietf.group.views.group_about",
+    "default_used_roles": "[\n    \"ad\",\n    \"chair\",\n    \"secr\"\n]",
+    "docman_roles": "[\n    \"chair\",\n    \"delegate\",\n    \"secr\"\n]",
+    "groupman_authroles": "[\n    \"Secretariat\",\n    \"Area Director\"\n]",
+    "groupman_roles": "[\n    \"ad\",\n    \"chair\",\n    \"delegate\"\n]",
+    "has_chartering_process": false,
+    "has_default_jabber": false,
+    "has_documents": true,
+    "has_meetings": true,
+    "has_milestones": false,
+    "has_nonsession_materials": false,
+    "has_reviews": false,
+    "has_session_materials": true,
+    "is_schedulable": true,
+    "material_types": "[\n    \"slides\"\n]",
+    "matman_roles": "[\n    \"ad\",\n    \"chair\",\n    \"delegate\",\n    \"secr\"\n]",
+    "req_subm_approval": true,
+    "role_order": "[\n    \"chair\",\n    \"secr\"\n]",
+    "show_on_agenda": true
+  },
+  "model": "group.groupfeatures",
+  "pk": "ag"
+},
+{
+  "fields": {
+    "about_page": "ietf.group.views.group_about",
+    "acts_like_wg": false,
+    "admin_roles": "[\n    \"ad\"\n]",
+    "agenda_type": "ietf",
+    "create_wiki": true,
+    "custom_group_roles": true,
+    "customize_workflow": false,
+    "default_tab": "ietf.group.views.group_about",
+    "default_used_roles": "[\n    \"ad\"\n]",
+    "docman_roles": "[\n    \"ad\",\n    \"delegate\",\n    \"secr\"\n]",
+    "groupman_authroles": "[\n    \"Secretariat\"\n]",
+    "groupman_roles": "[\n    \"ad\"\n]",
+    "has_chartering_process": false,
+    "has_default_jabber": false,
+    "has_documents": false,
+    "has_meetings": false,
+    "has_milestones": false,
+    "has_nonsession_materials": false,
+    "has_reviews": false,
+    "has_session_materials": false,
+    "is_schedulable": false,
+    "material_types": "[\n    \"slides\"\n]",
+    "matman_roles": "[\n    \"ad\",\n    \"chair\",\n    \"delegate\",\n    \"secr\"\n]",
+    "req_subm_approval": true,
+    "role_order": "[\n    \"chair\",\n    \"secr\"\n]",
+    "show_on_agenda": false
+  },
+  "model": "group.groupfeatures",
+  "pk": "area"
+},
+{
+  "fields": {
+    "about_page": "ietf.group.views.group_about",
+    "acts_like_wg": false,
+    "admin_roles": "[\n    \"chair\",\n    \"secr\"\n]",
+    "agenda_type": null,
+    "create_wiki": true,
+    "custom_group_roles": true,
+    "customize_workflow": false,
+    "default_tab": "ietf.group.views.group_about",
+    "default_used_roles": "[\n    \"ad\",\n    \"chair\",\n    \"reviewer\",\n    \"secr\"\n]",
+    "docman_roles": "[]",
+    "groupman_authroles": "[\n    \"Secretariat\"\n]",
+    "groupman_roles": "[\n    \"ad\",\n    \"secr\"\n]",
+    "has_chartering_process": false,
+    "has_default_jabber": false,
+    "has_documents": false,
+    "has_meetings": false,
+    "has_milestones": false,
+    "has_nonsession_materials": false,
+    "has_reviews": false,
+    "has_session_materials": false,
+    "is_schedulable": false,
+    "material_types": "[\n    \"slides\"\n]",
+    "matman_roles": "[\n    \"ad\",\n    \"chair\",\n    \"delegate\",\n    \"secr\"\n]",
+    "req_subm_approval": true,
+    "role_order": "[\n    \"chair\",\n    \"secr\"\n]",
+    "show_on_agenda": false
+  },
+  "model": "group.groupfeatures",
+  "pk": "dir"
+},
+{
+  "fields": {
+    "about_page": "ietf.group.views.group_about",
+    "acts_like_wg": false,
+    "admin_roles": "[\n    \"chair\",\n    \"secr\"\n]",
+    "agenda_type": null,
+    "create_wiki": true,
+    "custom_group_roles": true,
+    "customize_workflow": false,
+    "default_tab": "ietf.group.views.review_requests",
+    "default_used_roles": "[\n    \"ad\",\n    \"chair\",\n    \"reviewer\",\n    \"secr\"\n]",
+    "docman_roles": "[\n    \"secr\"\n]",
+    "groupman_authroles": "[\n    \"Secretariat\"\n]",
+    "groupman_roles": "[\n    \"ad\",\n    \"secr\"\n]",
+    "has_chartering_process": false,
+    "has_default_jabber": false,
+    "has_documents": false,
+    "has_meetings": false,
+    "has_milestones": false,
+    "has_nonsession_materials": false,
+    "has_reviews": true,
+    "has_session_materials": false,
+    "is_schedulable": false,
+    "material_types": "[\n    \"slides\"\n]",
+    "matman_roles": "[\n    \"ad\",\n    \"secr\"\n]",
+    "req_subm_approval": true,
+    "role_order": "[\n    \"chair\",\n    \"secr\"\n]",
+    "show_on_agenda": false
+  },
+  "model": "group.groupfeatures",
+  "pk": "review"
+},
+{
+  "fields": {
+    "about_page": "ietf.group.views.group_about",
+    "acts_like_wg": false,
+    "admin_roles": "[\n    \"chair\"\n]",
+    "agenda_type": "ietf",
+    "create_wiki": false,
+    "custom_group_roles": true,
+    "customize_workflow": false,
+    "default_tab": "ietf.group.views.group_about",
+    "default_used_roles": "[\n    \"chair\"\n]",
+    "docman_roles": "[\n    \"chair\"\n]",
+    "groupman_authroles": "[\n    \"Secretariat\"\n]",
+    "groupman_roles": "[]",
+    "has_chartering_process": false,
+    "has_default_jabber": false,
+    "has_documents": false,
+    "has_meetings": true,
+    "has_milestones": false,
+    "has_nonsession_materials": false,
+    "has_reviews": false,
+    "has_session_materials": false,
+    "is_schedulable": false,
+    "material_types": "[\n    \"slides\"\n]",
+    "matman_roles": "[\n    \"chair\",\n    \"delegate\"\n]",
+    "req_subm_approval": true,
+    "role_order": "[\n    \"chair\",\n    \"secr\"\n]",
+    "show_on_agenda": true
+  },
+  "model": "group.groupfeatures",
+  "pk": "iab"
+},
+{
+  "fields": {
+    "about_page": "ietf.group.views.group_about",
+    "acts_like_wg": false,
+    "admin_roles": "[\n    \"chair\"\n]",
+    "agenda_type": "ietf",
+    "create_wiki": false,
+    "custom_group_roles": false,
+    "customize_workflow": false,
+    "default_tab": "ietf.group.views.group_about",
+    "default_used_roles": "[\n    \"auth\"\n]",
+    "docman_roles": "[\n    \"chair\"\n]",
+    "groupman_authroles": "[\n    \"Secretariat\"\n]",
+    "groupman_roles": "[\n    \"chair\"\n]",
+    "has_chartering_process": false,
+    "has_default_jabber": false,
+    "has_documents": false,
+    "has_meetings": false,
+    "has_milestones": false,
+    "has_nonsession_materials": false,
+    "has_reviews": false,
+    "has_session_materials": false,
+    "is_schedulable": false,
+    "material_types": "[\n    \"slides\"\n]",
+    "matman_roles": "[\n    \"chair\"\n]",
+    "req_subm_approval": false,
+    "role_order": "[\n    \"chair\"\n]",
+    "show_on_agenda": false
+  },
+  "model": "group.groupfeatures",
+  "pk": "iana"
+},
+{
+  "fields": {
+    "about_page": "ietf.group.views.group_about",
+    "acts_like_wg": false,
+    "admin_roles": "[\n    \"chair\"\n]",
+    "agenda_type": "ad",
+    "create_wiki": false,
+    "custom_group_roles": true,
+    "customize_workflow": false,
+    "default_tab": "ietf.group.views.group_about",
+    "default_used_roles": "[]",
+    "docman_roles": "[\n    \"chair\"\n]",
+    "groupman_authroles": "[\n    \"Secretariat\"\n]",
+    "groupman_roles": "[\n    \"chair\",\n    \"delegate\"\n]",
+    "has_chartering_process": false,
+    "has_default_jabber": false,
+    "has_documents": false,
+    "has_meetings": false,
+    "has_milestones": false,
+    "has_nonsession_materials": false,
+    "has_reviews": false,
+    "has_session_materials": false,
+    "is_schedulable": false,
+    "material_types": "\"[]\"",
+    "matman_roles": "[\n    \"chair\",\n    \"delegate\",\n    \"member\"\n]",
+    "req_subm_approval": true,
+    "role_order": "[\n    \"chair\",\n    \"delegate\",\n    \"member\"\n]",
+    "show_on_agenda": false
+  },
+  "model": "group.groupfeatures",
+  "pk": "iesg"
+},
+{
+  "fields": {
+    "about_page": "ietf.group.views.group_about",
+    "acts_like_wg": false,
+    "admin_roles": "[\n    \"chair\",\n    \"lead\"\n]",
+    "agenda_type": "ietf",
+    "create_wiki": false,
+    "custom_group_roles": true,
+    "customize_workflow": false,
+    "default_tab": "ietf.group.views.group_about",
+    "default_used_roles": "[\n    \"ad\",\n    \"member\",\n    \"comdir\",\n    \"delegate\",\n    \"execdir\",\n    \"recman\",\n    \"secr\",\n    \"trac-editor\",\n    \"trac-admin\",\n    \"chair\"\n]",
+    "docman_roles": "[\n    \"chair\"\n]",
+    "groupman_authroles": "[\n    \"Secretariat\"\n]",
+    "groupman_roles": "[\n    \"chair\",\n    \"delegate\"\n]",
+    "has_chartering_process": false,
+    "has_default_jabber": false,
+    "has_documents": false,
+    "has_meetings": true,
+    "has_milestones": false,
+    "has_nonsession_materials": false,
+    "has_reviews": false,
+    "has_session_materials": true,
+    "is_schedulable": false,
+    "material_types": "[\n    \"slides\"\n]",
+    "matman_roles": "[\n    \"chair\",\n    \"delegate\"\n]",
+    "req_subm_approval": true,
+    "role_order": "[\n    \"chair\",\n    \"secr\"\n]",
+    "show_on_agenda": false
+  },
+  "model": "group.groupfeatures",
+  "pk": "ietf"
+},
+{
+  "fields": {
+    "about_page": "ietf.group.views.group_about",
+    "acts_like_wg": false,
+    "admin_roles": "[\n    \"chair\"\n]",
+    "agenda_type": null,
+    "create_wiki": false,
+    "custom_group_roles": true,
+    "customize_workflow": false,
+    "default_tab": "ietf.group.views.group_about",
+    "default_used_roles": "[\n    \"ad\"\n]",
+    "docman_roles": "[\n    \"auth\"\n]",
+    "groupman_authroles": "[]",
+    "groupman_roles": "[]",
+    "has_chartering_process": false,
+    "has_default_jabber": false,
+    "has_documents": false,
+    "has_meetings": false,
+    "has_milestones": false,
+    "has_nonsession_materials": false,
+    "has_reviews": false,
+    "has_session_materials": false,
+    "is_schedulable": false,
+    "material_types": "[\n    \"slides\"\n]",
+    "matman_roles": "[]",
+    "req_subm_approval": false,
+    "role_order": "[\n    \"chair\",\n    \"secr\"\n]",
+    "show_on_agenda": false
+  },
+  "model": "group.groupfeatures",
+  "pk": "individ"
+},
+{
+  "fields": {
+    "about_page": "ietf.group.views.group_about",
+    "acts_like_wg": false,
+    "admin_roles": "[\n    \"chair\"\n]",
+    "agenda_type": "ietf",
+    "create_wiki": false,
+    "custom_group_roles": true,
+    "customize_workflow": false,
+    "default_tab": "ietf.group.views.group_about",
+    "default_used_roles": "[\n    \"member\",\n    \"atlarge\",\n    \"chair\"\n]",
+    "docman_roles": "[]",
+    "groupman_authroles": "[\n    \"Secretariat\"\n]",
+    "groupman_roles": "[\n    \"chair\",\n    \"delegate\"\n]",
+    "has_chartering_process": false,
+    "has_default_jabber": false,
+    "has_documents": false,
+    "has_meetings": false,
+    "has_milestones": false,
+    "has_nonsession_materials": false,
+    "has_reviews": false,
+    "has_session_materials": false,
+    "is_schedulable": false,
+    "material_types": "[\n    \"slides\"\n]",
+    "matman_roles": "[\n    \"chair\",\n    \"delegate\",\n    \"secr\"\n]",
+    "req_subm_approval": true,
+    "role_order": "[\n    \"chair\",\n    \"secr\"\n]",
+    "show_on_agenda": false
+  },
+  "model": "group.groupfeatures",
+  "pk": "irtf"
+},
+{
+  "fields": {
+    "about_page": "ietf.group.views.group_about",
+    "acts_like_wg": false,
+    "admin_roles": "[\n    \"chair\",\n    \"lead\"\n]",
+    "agenda_type": "ad",
+    "create_wiki": false,
+    "custom_group_roles": true,
+    "customize_workflow": false,
+    "default_tab": "ietf.group.views.group_about",
+    "default_used_roles": "[\n    \"chair\"\n]",
+    "docman_roles": "[\n    \"chair\"\n]",
+    "groupman_authroles": "[\n    \"Secretariat\"\n]",
+    "groupman_roles": "[\n    \"chair\",\n    \"delegate\"\n]",
+    "has_chartering_process": false,
+    "has_default_jabber": false,
+    "has_documents": true,
+    "has_meetings": false,
+    "has_milestones": false,
+    "has_nonsession_materials": false,
+    "has_reviews": false,
+    "has_session_materials": false,
+    "is_schedulable": false,
+    "material_types": "[\n    \"slides\"\n]",
+    "matman_roles": "[\n    \"chair\",\n    \"delegate\"\n]",
+    "req_subm_approval": true,
+    "role_order": "[\n    \"chair\",\n    \"delegate\"\n]",
+    "show_on_agenda": false
+  },
+  "model": "group.groupfeatures",
+  "pk": "ise"
+},
+{
+  "fields": {
+    "about_page": "ietf.group.views.group_about",
+    "acts_like_wg": false,
+    "admin_roles": "[\n    \"chair\"\n]",
+    "agenda_type": null,
+    "create_wiki": false,
+    "custom_group_roles": true,
+    "customize_workflow": false,
+    "default_tab": "ietf.group.views.group_about",
+    "default_used_roles": "[\n    \"chair\",\n    \"ceo\"\n]",
+    "docman_roles": "[]",
+    "groupman_authroles": "[\n    \"Secretariat\"\n]",
+    "groupman_roles": "[\n    \"chair\"\n]",
+    "has_chartering_process": false,
+    "has_default_jabber": false,
+    "has_documents": false,
+    "has_meetings": false,
+    "has_milestones": false,
+    "has_nonsession_materials": false,
+    "has_reviews": false,
+    "has_session_materials": false,
+    "is_schedulable": false,
+    "material_types": "[\n    \"slides\"\n]",
+    "matman_roles": "[\n    \"chair\",\n    \"secr\"\n]",
+    "req_subm_approval": true,
+    "role_order": "[\n    \"chair\",\n    \"secr\"\n]",
+    "show_on_agenda": false
+  },
+  "model": "group.groupfeatures",
+  "pk": "isoc"
+},
+{
+  "fields": {
+    "about_page": "ietf.group.views.group_about",
+    "acts_like_wg": false,
+    "admin_roles": "[\n    \"chair\",\n    \"advisor\"\n]",
+    "agenda_type": "side",
+    "create_wiki": true,
+    "custom_group_roles": true,
+    "customize_workflow": false,
+    "default_tab": "ietf.group.views.group_about",
+    "default_used_roles": "[\n    \"member\",\n    \"advisor\",\n    \"liaison\",\n    \"chair\",\n    \"techadv\"\n]",
+    "docman_roles": "[\n    \"chair\"\n]",
+    "groupman_authroles": "[\n    \"Secretariat\"\n]",
+    "groupman_roles": "[\n    \"chair\",\n    \"advisor\"\n]",
+    "has_chartering_process": false,
+    "has_default_jabber": false,
+    "has_documents": false,
+    "has_meetings": false,
+    "has_milestones": false,
+    "has_nonsession_materials": false,
+    "has_reviews": false,
+    "has_session_materials": false,
+    "is_schedulable": false,
+    "material_types": "[\n    \"slides\"\n]",
+    "matman_roles": "[\n    \"chair\"\n]",
+    "req_subm_approval": true,
+    "role_order": "[\n    \"chair\",\n    \"member\",\n    \"advisor\"\n]",
+    "show_on_agenda": false
+  },
+  "model": "group.groupfeatures",
+  "pk": "nomcom"
+},
+{
+  "fields": {
+    "about_page": "ietf.group.views.group_about",
+    "acts_like_wg": false,
+    "admin_roles": "[\n    \"lead\"\n]",
+    "agenda_type": "ad",
+    "create_wiki": false,
+    "custom_group_roles": true,
+    "customize_workflow": false,
+    "default_tab": "ietf.group.views.group_about",
+    "default_used_roles": "[\n    \"member\",\n    \"chair\",\n    \"lead\"\n]",
+    "docman_roles": "[\n    \"lead\",\n    \"chair\",\n    \"secr\"\n]",
+    "groupman_authroles": "[\n    \"Secretariat\",\n    \"IAB\"\n]",
+    "groupman_roles": "[\n    \"lead\",\n    \"chair\",\n    \"secr\"\n]",
+    "has_chartering_process": false,
+    "has_default_jabber": false,
+    "has_documents": true,
+    "has_meetings": true,
+    "has_milestones": true,
+    "has_nonsession_materials": false,
+    "has_reviews": false,
+    "has_session_materials": false,
+    "is_schedulable": false,
+    "material_types": "[\n    \"slides\"\n]",
+    "matman_roles": "[\n    \"lead\",\n    \"chair\",\n    \"secr\"\n]",
+    "req_subm_approval": false,
+    "role_order": "[\n    \"lead\",\n    \"chair\",\n    \"secr\"\n]",
+    "show_on_agenda": false
+  },
+  "model": "group.groupfeatures",
+  "pk": "program"
+},
+{
+  "fields": {
+    "about_page": "ietf.group.views.group_about",
+    "acts_like_wg": false,
+    "admin_roles": "[\n    \"chair\"\n]",
+    "agenda_type": "side",
+    "create_wiki": false,
+    "custom_group_roles": true,
+    "customize_workflow": false,
+    "default_tab": "ietf.group.views.group_about",
+    "default_used_roles": "[\n    \"auth\",\n    \"chair\"\n]",
+    "docman_roles": "[]",
+    "groupman_authroles": "[\n    \"Secretariat\"\n]",
+    "groupman_roles": "[]",
+    "has_chartering_process": false,
+    "has_default_jabber": false,
+    "has_documents": false,
+    "has_meetings": false,
+    "has_milestones": false,
+    "has_nonsession_materials": false,
+    "has_reviews": false,
+    "has_session_materials": false,
+    "is_schedulable": false,
+    "material_types": "[\n    \"slides\"\n]",
+    "matman_roles": "[]",
+    "req_subm_approval": true,
+    "role_order": "[\n    \"chair\",\n    \"secr\"\n]",
+    "show_on_agenda": false
+  },
+  "model": "group.groupfeatures",
+  "pk": "rfcedtyp"
+},
+{
+  "fields": {
+    "about_page": "ietf.group.views.group_about",
+    "acts_like_wg": true,
+    "admin_roles": "[\n    \"chair\"\n]",
+    "agenda_type": "ietf",
+    "create_wiki": true,
+    "custom_group_roles": false,
+    "customize_workflow": true,
+    "default_tab": "ietf.group.views.group_documents",
+    "default_used_roles": "[\n    \"chair\",\n    \"techadv\",\n    \"secr\",\n    \"delegate\"\n]",
+    "docman_roles": "[\n    \"chair\",\n    \"delegate\",\n    \"secr\"\n]",
+    "groupman_authroles": "[\n    \"Secretariat\",\n    \"IRTF Chair\"\n]",
+    "groupman_roles": "[\n    \"chair\",\n    \"delegate\"\n]",
+    "has_chartering_process": true,
+    "has_default_jabber": true,
+    "has_documents": true,
+    "has_meetings": true,
+    "has_milestones": true,
+    "has_nonsession_materials": false,
+    "has_reviews": false,
+    "has_session_materials": true,
+    "is_schedulable": true,
+    "material_types": "[\n    \"slides\"\n]",
+    "matman_roles": "[\n    \"chair\",\n    \"delegate\",\n    \"secr\"\n]",
+    "req_subm_approval": true,
+    "role_order": "[\n    \"chair\",\n    \"delegate\",\n    \"secr\"\n]",
+    "show_on_agenda": true
+  },
+  "model": "group.groupfeatures",
+  "pk": "rg"
+},
+{
+  "fields": {
+    "about_page": "ietf.group.views.group_about",
+    "acts_like_wg": false,
+    "admin_roles": "[\n    \"chair\"\n]",
+    "agenda_type": null,
+    "create_wiki": false,
+    "custom_group_roles": true,
+    "customize_workflow": false,
+    "default_tab": "ietf.group.views.group_about",
+    "default_used_roles": "[\n    \"liaiman\",\n    \"ceo\",\n    \"coord\",\n    \"auth\",\n    \"chair\"\n]",
+    "docman_roles": "[\n    \"liaiman\",\n    \"matman\"\n]",
+    "groupman_authroles": "[\n    \"Secretariat\"\n]",
+    "groupman_roles": "[]",
+    "has_chartering_process": false,
+    "has_default_jabber": false,
+    "has_documents": false,
+    "has_meetings": false,
+    "has_milestones": false,
+    "has_nonsession_materials": false,
+    "has_reviews": false,
+    "has_session_materials": false,
+    "is_schedulable": false,
+    "material_types": "[\n    \"slides\"\n]",
+    "matman_roles": "[]",
+    "req_subm_approval": true,
+    "role_order": "[\n    \"liaiman\"\n]",
+    "show_on_agenda": false
+  },
+  "model": "group.groupfeatures",
+  "pk": "sdo"
+},
+{
+  "fields": {
+    "about_page": "ietf.group.views.group_about",
+    "acts_like_wg": false,
+    "admin_roles": "[\n    \"chair\"\n]",
+    "agenda_type": "ietf",
+    "create_wiki": true,
+    "custom_group_roles": true,
+    "customize_workflow": false,
+    "default_tab": "ietf.group.views.group_about",
+    "default_used_roles": "[\n    \"ad\",\n    \"member\",\n    \"delegate\",\n    \"secr\",\n    \"liaison\",\n    \"atlarge\",\n    \"chair\",\n    \"matman\",\n    \"techadv\"\n]",
+    "docman_roles": "[\n    \"chair\"\n]",
+    "groupman_authroles": "[\n    \"Secretariat\"\n]",
+    "groupman_roles": "[\n    \"chair\"\n]",
+    "has_chartering_process": false,
+    "has_default_jabber": false,
+    "has_documents": false,
+    "has_meetings": true,
+    "has_milestones": false,
+    "has_nonsession_materials": true,
+    "has_reviews": false,
+    "has_session_materials": false,
+    "is_schedulable": false,
+    "material_types": "[\n    \"slides\"\n]",
+    "matman_roles": "[\n    \"chair\",\n    \"matman\"\n]",
+    "req_subm_approval": false,
+    "role_order": "[\n    \"chair\",\n    \"member\",\n    \"matman\"\n]",
+    "show_on_agenda": false
+  },
+  "model": "group.groupfeatures",
+  "pk": "team"
+},
+{
+  "fields": {
+    "about_page": "ietf.group.views.group_about",
+    "acts_like_wg": true,
+    "admin_roles": "[\n    \"chair\"\n]",
+    "agenda_type": "ietf",
+    "create_wiki": true,
+    "custom_group_roles": false,
+    "customize_workflow": true,
+    "default_tab": "ietf.group.views.group_documents",
+    "default_used_roles": "[\n    \"ad\",\n    \"editor\",\n    \"delegate\",\n    \"secr\",\n    \"chair\",\n    \"matman\",\n    \"techadv\"\n]",
+    "docman_roles": "[\n    \"chair\",\n    \"delegate\",\n    \"secr\"\n]",
+    "groupman_authroles": "[\n    \"Secretariat\",\n    \"Area Director\"\n]",
+    "groupman_roles": "[\n    \"ad\",\n    \"chair\",\n    \"delegate\",\n    \"secr\"\n]",
+    "has_chartering_process": true,
+    "has_default_jabber": true,
+    "has_documents": true,
+    "has_meetings": true,
+    "has_milestones": true,
+    "has_nonsession_materials": false,
+    "has_reviews": false,
+    "has_session_materials": true,
+    "is_schedulable": true,
+    "material_types": "[\n    \"slides\"\n]",
+    "matman_roles": "[\n    \"ad\",\n    \"chair\",\n    \"delegate\",\n    \"secr\"\n]",
+    "req_subm_approval": true,
+    "role_order": "[\n    \"chair\",\n    \"secr\",\n    \"delegate\"\n]",
+    "show_on_agenda": true
+  },
+  "model": "group.groupfeatures",
+  "pk": "wg"
+},
+{
+  "fields": {
+    "cc": [
+      "doc_notify",
+      "group_chairs",
+      "group_mail_list",
+      "group_steering_group"
+    ],
+    "desc": "Recipients when a charter is approved",
+    "to": [
+      "ietf_announce"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "ballot_approved_charter"
+},
+{
+  "fields": {
+    "cc": [
+      "iana",
+      "iesg",
+      "ietf_announce"
+    ],
+    "desc": "Recipients when a conflict review ballot is approved",
+    "to": [
+      "conflict_review_steering_group",
+      "conflict_review_stream_manager",
+      "doc_affecteddoc_authors",
+      "doc_affecteddoc_group_chairs",
+      "doc_affecteddoc_notify",
+      "doc_notify"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "ballot_approved_conflrev"
+},
+{
+  "fields": {
+    "cc": [
+      "doc_ad",
+      "doc_authors",
+      "doc_group_chairs",
+      "doc_group_mail_list",
+      "doc_notify",
+      "doc_shepherd",
+      "iesg",
+      "rfc_editor"
+    ],
+    "desc": "Recipients when an IETF stream document ballot is approved",
+    "to": [
+      "ietf_announce"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "ballot_approved_ietf_stream"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients for IANA message when an IETF stream document ballot is approved",
+    "to": [
+      "iana_approve"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "ballot_approved_ietf_stream_iana"
+},
+{
+  "fields": {
+    "cc": [
+      "doc_affecteddoc_authors",
+      "doc_affecteddoc_group_chairs",
+      "doc_affecteddoc_notify",
+      "doc_notify",
+      "iana",
+      "iesg",
+      "rfc_editor"
+    ],
+    "desc": "Recipients when a status change is approved",
+    "to": [
+      "ietf_announce"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "ballot_approved_status_change"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients when a ballot is deferred to or undeferred from a future telechat",
+    "to": [
+      "conflict_review_stream_manager",
+      "doc_affecteddoc_authors",
+      "doc_affecteddoc_group_chairs",
+      "doc_affecteddoc_notify",
+      "doc_authors",
+      "doc_group_chairs",
+      "doc_notify",
+      "doc_shepherd",
+      "iesg",
+      "iesg_secretary"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "ballot_deferred"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients when the RFC Editor note for a document is changed after the document has been approved",
+    "to": [
+      "iesg",
+      "rfc_editor"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "ballot_ednote_changed_late"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients when a ballot is issued",
+    "to": [
+      "iesg",
+      "iesg_secretary"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "ballot_issued"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients for IANA message when a ballot is issued",
+    "to": [
+      "iana_eval"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "ballot_issued_iana"
+},
+{
+  "fields": {
+    "cc": [
+      "conflict_review_stream_manager",
+      "doc_affecteddoc_authors",
+      "doc_affecteddoc_group_chairs",
+      "doc_affecteddoc_notify",
+      "doc_authors",
+      "doc_group_chairs",
+      "doc_group_mail_list",
+      "doc_notify",
+      "doc_shepherd"
+    ],
+    "desc": "Recipients when a new ballot position (with discusses, other blocking positions, or comments) is saved",
+    "to": [
+      "iesg"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "ballot_saved"
+},
+{
+  "fields": {
+    "cc": [
+      "group_mail_list"
+    ],
+    "desc": "Recipients for a charter external review",
+    "to": [
+      "ietf_announce"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "charter_external_review"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients for a message to new-work about a charter review",
+    "to": [
+      "new_work"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "charter_external_review_new_work"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients for message noting that internal review has started on a charter",
+    "to": [
+      "group_steering_group",
+      "iab"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "charter_internal_review"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients for message to adminstrators when a charter state edit needs followon administrative action",
+    "to": [
+      "iesg_secretary"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "charter_state_edit_admin_needed"
+},
+{
+  "fields": {
+    "cc": [
+      "conflict_review_steering_group",
+      "conflict_review_stream_manager",
+      "doc_affecteddoc_authors",
+      "doc_affecteddoc_group_chairs",
+      "doc_affecteddoc_notify",
+      "doc_notify",
+      "iesg"
+    ],
+    "desc": "Recipients when the responsible AD for a conflict review is changed",
+    "to": []
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "conflrev_ad_changed"
+},
+{
+  "fields": {
+    "cc": [
+      "conflict_review_steering_group",
+      "conflict_review_stream_manager",
+      "doc_affecteddoc_authors",
+      "doc_affecteddoc_group_chairs",
+      "doc_affecteddoc_notify",
+      "doc_notify",
+      "iesg"
+    ],
+    "desc": "Recipients for a stream manager's request for an IETF conflict review",
+    "to": [
+      "iesg_secretary"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "conflrev_requested"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients for IANA message when a stream manager requests an IETF conflict review",
+    "to": [
+      "iana_eval"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "conflrev_requested_iana"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients for a message when a new comment is manually entered into the document's history",
+    "to": [
+      "doc_authors",
+      "doc_group_chairs",
+      "doc_group_responsible_directors",
+      "doc_non_ietf_stream_manager",
+      "doc_shepherd"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "doc_added_comment"
+},
+{
+  "fields": {
+    "cc": [
+      "doc_ad",
+      "doc_notify",
+      "doc_shepherd"
+    ],
+    "desc": "Recipients for notification that a document has been adopted by a group",
+    "to": [
+      "doc_authors",
+      "doc_group_chairs",
+      "doc_group_mail_list"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "doc_adopted_by_group"
+},
+{
+  "fields": {
+    "cc": [
+      "doc_group_chairs",
+      "doc_group_responsible_directors",
+      "doc_notify",
+      "doc_shepherd"
+    ],
+    "desc": "Recipients for notification of a document's expiration",
+    "to": [
+      "doc_authors"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "doc_expired"
+},
+{
+  "fields": {
+    "cc": [
+      "doc_group_chairs",
+      "doc_group_responsible_directors",
+      "doc_notify",
+      "doc_shepherd"
+    ],
+    "desc": "Recipients for notification of impending expiration of a document",
+    "to": [
+      "doc_authors"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "doc_expires_soon"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients when IANA state information for a document changes ",
+    "to": [
+      "doc_ad",
+      "doc_affecteddoc_authors",
+      "doc_affecteddoc_group_chairs",
+      "doc_affecteddoc_notify",
+      "doc_authors",
+      "doc_group_chairs",
+      "doc_notify",
+      "doc_shepherd"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "doc_iana_state_changed"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients for a message when the IESG begins processing a document ",
+    "to": [
+      "doc_ad",
+      "doc_authors",
+      "doc_group_chairs",
+      "doc_shepherd"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "doc_iesg_processing_started"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients for a message when a document's intended publication status changes",
+    "to": [
+      "doc_authors",
+      "doc_group_chairs",
+      "doc_group_responsible_directors",
+      "doc_non_ietf_stream_manager",
+      "doc_shepherd"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "doc_intended_status_changed"
+},
+{
+  "fields": {
+    "cc": [
+      "doc_authors",
+      "doc_group_chairs",
+      "doc_notify",
+      "doc_shepherd",
+      "iesg",
+      "iesg_secretary"
+    ],
+    "desc": "Recipients when a document is taken out of the RFC's editor queue before publication",
+    "to": [
+      "iana",
+      "rfc_editor"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "doc_pulled_from_rfc_queue"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients when what a document replaces or is replaced by changes",
+    "to": [
+      "doc_authors_expanded"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "doc_replacement_changed"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients for suggestions that this doc replaces or is replace by some other document",
+    "to": [
+      "doc_group_chairs",
+      "doc_group_responsible_directors",
+      "doc_non_ietf_stream_manager",
+      "iesg_secretary"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "doc_replacement_suggested"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients when a document's state is manually edited",
+    "to": [
+      "doc_ad",
+      "doc_affecteddoc_authors",
+      "doc_affecteddoc_group_chairs",
+      "doc_affecteddoc_notify",
+      "doc_authors",
+      "doc_group_chairs",
+      "doc_group_responsible_directors",
+      "doc_notify",
+      "doc_shepherd"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "doc_state_edited"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients for notification when a document's stream changes",
+    "to": [
+      "doc_authors",
+      "doc_notify",
+      "stream_managers"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "doc_stream_changed"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients when the stream state of a document is manually edited",
+    "to": [
+      "doc_authors",
+      "doc_group_chairs",
+      "doc_group_delegates",
+      "doc_shepherd"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "doc_stream_state_edited"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients when a document's telechat date or other telechat specific details are changed",
+    "to": [
+      "conflict_review_steering_group",
+      "conflict_review_stream_manager",
+      "doc_affecteddoc_authors",
+      "doc_affecteddoc_group_chairs",
+      "doc_affecteddoc_notify",
+      "doc_authors",
+      "doc_group_chairs",
+      "doc_notify",
+      "doc_shepherd",
+      "iesg",
+      "iesg_secretary"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "doc_telechat_details_changed"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients when a comment is added to a group's history",
+    "to": [
+      "group_chairs",
+      "group_responsible_directors",
+      "group_secretaries"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "group_added_comment"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients when the set of approved milestones for a group are edited",
+    "to": [
+      "group_mail_list"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "group_approved_milestones_edited"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients for message requesting closure of a group",
+    "to": [
+      "iesg_secretary"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "group_closure_requested"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients when any of a group's milestones are edited",
+    "to": [
+      "group_chairs",
+      "group_responsible_directors"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "group_milestones_edited"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients for a message noting changes in a group's personnel",
+    "to": [
+      "group_chairs",
+      "group_changed_personnel",
+      "group_responsible_directors",
+      "group_secretaries",
+      "iesg_secretary"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "group_personnel_change"
+},
+{
+  "fields": {
+    "cc": [
+      "conflict_review_stream_manager",
+      "doc_affecteddoc_authors",
+      "doc_affecteddoc_group_chairs",
+      "doc_affecteddoc_notify",
+      "doc_authors",
+      "doc_group_chairs",
+      "doc_group_mail_list",
+      "doc_notify",
+      "doc_shepherd"
+    ],
+    "desc": "Recipients when a new ballot position (with discusses, other blocking positions, or comments) is saved",
+    "to": [
+      "iesg"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "iesg_ballot_saved"
+},
+{
+  "fields": {
+    "cc": [
+      "group_mail_list"
+    ],
+    "desc": "Recipients when an interim meeting is announced",
+    "to": [
+      "group_stream_announce",
+      "ietf_announce"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "interim_announced"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients when an interim meeting is approved and an announcement needs to be sent",
+    "to": [
+      "iesg_secretary"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "interim_approved"
+},
+{
+  "fields": {
+    "cc": [
+      "group_chairs",
+      "group_mail_list",
+      "logged_in_person"
+    ],
+    "desc": "Recipients when an interim meeting is cancelled",
+    "to": [
+      "group_stream_announce",
+      "ietf_announce"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "interim_cancelled"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients when the secretary follows up on an IPR disclosure submission",
+    "to": [
+      "ipr_submitter"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "ipr_disclosure_followup"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients when an IPR disclosure is submitted",
+    "to": [
+      "ipr_requests"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "ipr_disclosure_submitted"
+},
+{
+  "fields": {
+    "cc": [
+      "doc_ipr_group_or_ad",
+      "ipr_announce"
+    ],
+    "desc": "Recipients when an IPR disclosure calls out a given document",
+    "to": [
+      "doc_authors"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "ipr_posted_on_doc"
+},
+{
+  "fields": {
+    "cc": [
+      "ipr_updatedipr_contacts",
+      "ipr_updatedipr_holders"
+    ],
+    "desc": "Recipients for a message confirming that a disclosure has been posted",
+    "to": [
+      "ipr_submitter"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "ipr_posting_confirmation"
+},
+{
+  "fields": {
+    "cc": [
+      "doc_affecteddoc_authors",
+      "doc_affecteddoc_group_chairs",
+      "doc_affecteddoc_notify",
+      "doc_authors",
+      "doc_group_chairs",
+      "doc_group_mail_list",
+      "doc_notify",
+      "doc_shepherd"
+    ],
+    "desc": "Recipients when a new IRSG ballot position with comments is saved",
+    "to": [
+      "irsg"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "irsg_ballot_saved"
+},
+{
+  "fields": {
+    "cc": [
+      "iesg_secretary"
+    ],
+    "desc": "Recipients when a last call has expired",
+    "to": [
+      "doc_ad",
+      "doc_authors",
+      "doc_notify",
+      "doc_shepherd"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "last_call_expired"
+},
+{
+  "fields": {
+    "cc": [
+      "doc_ad",
+      "doc_affecteddoc_authors",
+      "doc_affecteddoc_group_chairs",
+      "doc_affecteddoc_notify",
+      "doc_authors",
+      "doc_group_chairs",
+      "doc_group_mail_list",
+      "doc_notify",
+      "doc_shepherd"
+    ],
+    "desc": "Recipients when a last call is issued",
+    "to": [
+      "ietf_announce"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "last_call_issued"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients for IANA message when a last call is issued",
+    "to": [
+      "iana_last_call"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "last_call_issued_iana"
+},
+{
+  "fields": {
+    "cc": [
+      "doc_ad",
+      "doc_notify",
+      "doc_shepherd"
+    ],
+    "desc": "Recipients when AD requests a last call",
+    "to": [
+      "iesg_secretary"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "last_call_requested"
+},
+{
+  "fields": {
+    "cc": [
+      "liaison_admin"
+    ],
+    "desc": "Recipients for a message that a pending liaison statement needs approval",
+    "to": [
+      "liaison_approvers"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "liaison_approval_requested"
+},
+{
+  "fields": {
+    "cc": [
+      "liaison_cc",
+      "liaison_response_contacts",
+      "liaison_technical_contacts"
+    ],
+    "desc": "Recipients for a message about a liaison statement deadline that is approaching.",
+    "to": [
+      "liaison_to_contacts"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "liaison_deadline_soon"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients for a message requesting an updated list of authorized individuals",
+    "to": [
+      "liaison_manager"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "liaison_manager_update_request"
+},
+{
+  "fields": {
+    "cc": [
+      "liaison_cc",
+      "liaison_response_contacts",
+      "liaison_technical_contacts"
+    ],
+    "desc": "Recipient for a message when a new liaison statement is posted",
+    "to": [
+      "liaison_to_contacts"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "liaison_statement_posted"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients for a message confirming a comment was made",
+    "to": [
+      "commenter"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "nomcom_comment_receipt_requested"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients for the questionairre that nominees should complete",
+    "to": [
+      "nominee"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "nomcom_questionnaire"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients for a message reminding a nominee to return a completed questionairre response",
+    "to": [
+      "nominee"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "nomcom_questionnaire_reminder"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipeints of message reminding a nominee to accept or decline a nomination",
+    "to": [
+      "nominee"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "nomination_accept_reminder"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients for a message noting that a nomination caused a new Person record to be created in the datatracker",
+    "to": [
+      "ietf_secretariat",
+      "nomcom_chair"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "nomination_created_person"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients the first time a person is nominated for a position, asking them to accept or decline the nomination",
+    "to": [
+      "nominee"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "nomination_new_nominee"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients for a message confirming a nomination was made",
+    "to": [
+      "nominator"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "nomination_receipt_requested"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients for a message noting a new nomination has been received",
+    "to": [
+      "nomcom_chair"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "nomination_received"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients for a message requesting that duplicated Person records be merged ",
+    "to": [
+      "ietf_secretariat"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "person_merge_requested"
+},
+{
+  "fields": {
+    "cc": [
+      "doc_group_chairs",
+      "doc_group_mail_list",
+      "doc_notify",
+      "doc_shepherd",
+      "iesg_secretary"
+    ],
+    "desc": "Recipients when a draft is submitted to the IESG",
+    "to": [
+      "doc_ad"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "pubreq_iesg"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients when a non-IETF stream manager requests publication",
+    "to": [
+      "rfc_editor"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "pubreq_rfced"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients for IANA message when a non-IETF stream manager requests publication",
+    "to": [
+      "iana_approve"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "pubreq_rfced_iana"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients when a draft resurrection request has been completed",
+    "to": [
+      "doc_ad",
+      "iesg_secretary"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "resurrection_completed"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients of a request to change the state of a draft away from 'Dead'",
+    "to": [
+      "internet_draft_requests"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "resurrection_requested"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients when an review team secretary send a summary of open review assignments",
+    "to": [
+      "group_mail_list"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "review_assignments_summarized"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients for a change to a review assignment",
+    "to": [
+      "review_assignment_reviewer",
+      "review_assignment_review_req_by",
+      "review_secretaries"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "review_assignment_changed"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients for a change to a reviewer's availability",
+    "to": [
+      "group_secretaries",
+      "review_reviewer"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "review_availability_changed"
+},
+{
+  "fields": {
+    "cc": [
+      "ietf_last_call",
+      "review_doc_all_parties",
+      "review_doc_group_mail_list"
+    ],
+    "desc": "Default template for recipients when an review is completed - customised mail triggers are used/created per team and review type.",
+    "to": [
+      "review_team_mail_list"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "review_completed"
+},
+{
+  "fields": {
+    "cc": [
+      "review_doc_all_parties",
+      "review_doc_group_mail_list"
+    ],
+    "desc": "Recipients when a artart ReviewTypeName object review is completed",
+    "to": [
+      "review_team_mail_list"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "review_completed_artart_early"
+},
+{
+  "fields": {
+    "cc": [
+      "ietf_last_call",
+      "review_doc_all_parties",
+      "review_doc_group_mail_list"
+    ],
+    "desc": "Recipients when a artart ReviewTypeName object review is completed",
+    "to": [
+      "review_team_mail_list"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "review_completed_artart_lc"
+},
+{
+  "fields": {
+    "cc": [
+      "ietf_last_call",
+      "review_doc_all_parties",
+      "review_doc_group_mail_list"
+    ],
+    "desc": "Recipients when a artart ReviewTypeName object review is completed",
+    "to": [
+      "review_team_mail_list"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "review_completed_artart_telechat"
+},
+{
+  "fields": {
+    "cc": [
+      "review_doc_all_parties",
+      "review_doc_group_mail_list"
+    ],
+    "desc": "Recipients when a genart ReviewTypeName object review is completed",
+    "to": [
+      "review_team_mail_list"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "review_completed_genart_early"
+},
+{
+  "fields": {
+    "cc": [
+      "ietf_last_call",
+      "review_doc_all_parties",
+      "review_doc_group_mail_list"
+    ],
+    "desc": "Recipients when a genart ReviewTypeName object review is completed",
+    "to": [
+      "review_team_mail_list"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "review_completed_genart_lc"
+},
+{
+  "fields": {
+    "cc": [
+      "ietf_last_call",
+      "review_doc_all_parties",
+      "review_doc_group_mail_list"
+    ],
+    "desc": "Recipients when a genart ReviewTypeName object review is completed",
+    "to": [
+      "review_team_mail_list"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "review_completed_genart_telechat"
+},
+{
+  "fields": {
+    "cc": [
+      "review_doc_all_parties",
+      "review_doc_group_mail_list"
+    ],
+    "desc": "Recipients when a i18ndir ReviewTypeName object review is completed",
+    "to": [
+      "review_team_mail_list"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "review_completed_i18ndir_early"
+},
+{
+  "fields": {
+    "cc": [
+      "ietf_last_call",
+      "review_doc_all_parties",
+      "review_doc_group_mail_list"
+    ],
+    "desc": "Recipients when a i18ndir ReviewTypeName object review is completed",
+    "to": [
+      "review_team_mail_list"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "review_completed_i18ndir_lc"
+},
+{
+  "fields": {
+    "cc": [
+      "ietf_last_call",
+      "review_doc_all_parties",
+      "review_doc_group_mail_list"
+    ],
+    "desc": "Recipients when a i18ndir ReviewTypeName object review is completed",
+    "to": [
+      "review_team_mail_list"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "review_completed_i18ndir_telechat"
+},
+{
+  "fields": {
+    "cc": [
+      "review_doc_all_parties",
+      "review_doc_group_mail_list"
+    ],
+    "desc": "Recipients when a intdir ReviewTypeName object review is completed",
+    "to": [
+      "review_team_mail_list"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "review_completed_intdir_early"
+},
+{
+  "fields": {
+    "cc": [
+      "ietf_last_call",
+      "review_doc_all_parties",
+      "review_doc_group_mail_list"
+    ],
+    "desc": "Recipients when a intdir ReviewTypeName object review is completed",
+    "to": [
+      "review_team_mail_list"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "review_completed_intdir_lc"
+},
+{
+  "fields": {
+    "cc": [
+      "ietf_last_call",
+      "review_doc_all_parties",
+      "review_doc_group_mail_list"
+    ],
+    "desc": "Recipients when a intdir ReviewTypeName object review is completed",
+    "to": [
+      "review_team_mail_list"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "review_completed_intdir_telechat"
+},
+{
+  "fields": {
+    "cc": [
+      "review_doc_all_parties",
+      "review_doc_group_mail_list"
+    ],
+    "desc": "Recipients when a iotdir ReviewTypeName object review is completed",
+    "to": [
+      "review_team_mail_list"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "review_completed_iotdir_early"
+},
+{
+  "fields": {
+    "cc": [
+      "ietf_last_call",
+      "review_doc_all_parties",
+      "review_doc_group_mail_list"
+    ],
+    "desc": "Recipients when a iotdir ReviewTypeName object review is completed",
+    "to": [
+      "review_team_mail_list"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "review_completed_iotdir_lc"
+},
+{
+  "fields": {
+    "cc": [
+      "ietf_last_call",
+      "review_doc_all_parties",
+      "review_doc_group_mail_list"
+    ],
+    "desc": "Recipients when a iotdir ReviewTypeName object review is completed",
+    "to": [
+      "review_team_mail_list"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "review_completed_iotdir_telechat"
+},
+{
+  "fields": {
+    "cc": [
+      "review_doc_all_parties",
+      "review_doc_group_mail_list"
+    ],
+    "desc": "Recipients when a opsdir ReviewTypeName object review is completed",
+    "to": [
+      "review_team_mail_list"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "review_completed_opsdir_early"
+},
+{
+  "fields": {
+    "cc": [
+      "ietf_last_call",
+      "review_doc_all_parties",
+      "review_doc_group_mail_list"
+    ],
+    "desc": "Recipients when a opsdir ReviewTypeName object review is completed",
+    "to": [
+      "review_team_mail_list"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "review_completed_opsdir_lc"
+},
+{
+  "fields": {
+    "cc": [
+      "ietf_last_call",
+      "review_doc_all_parties",
+      "review_doc_group_mail_list"
+    ],
+    "desc": "Recipients when a opsdir ReviewTypeName object review is completed",
+    "to": [
+      "review_team_mail_list"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "review_completed_opsdir_telechat"
+},
+{
+  "fields": {
+    "cc": [
+      "review_doc_all_parties",
+      "review_doc_group_mail_list"
+    ],
+    "desc": "Recipients when a rtgdir ReviewTypeName object review is completed",
+    "to": [
+      "review_team_mail_list"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "review_completed_rtgdir_early"
+},
+{
+  "fields": {
+    "cc": [
+      "ietf_last_call",
+      "review_doc_all_parties",
+      "review_doc_group_mail_list"
+    ],
+    "desc": "Recipients when a rtgdir ReviewTypeName object review is completed",
+    "to": [
+      "review_team_mail_list"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "review_completed_rtgdir_lc"
+},
+{
+  "fields": {
+    "cc": [
+      "ietf_last_call",
+      "review_doc_all_parties",
+      "review_doc_group_mail_list"
+    ],
+    "desc": "Recipients when a rtgdir ReviewTypeName object review is completed",
+    "to": [
+      "review_team_mail_list"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "review_completed_rtgdir_telechat"
+},
+{
+  "fields": {
+    "cc": [
+      "review_doc_all_parties",
+      "review_doc_group_mail_list"
+    ],
+    "desc": "Recipients when a secdir ReviewTypeName object review is completed",
+    "to": [
+      "review_team_mail_list"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "review_completed_secdir_early"
+},
+{
+  "fields": {
+    "cc": [
+      "ietf_last_call",
+      "review_doc_all_parties",
+      "review_doc_group_mail_list"
+    ],
+    "desc": "Recipients when a secdir ReviewTypeName object review is completed",
+    "to": [
+      "review_team_mail_list"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "review_completed_secdir_lc"
+},
+{
+  "fields": {
+    "cc": [
+      "ietf_last_call",
+      "review_doc_all_parties",
+      "review_doc_group_mail_list"
+    ],
+    "desc": "Recipients when a secdir ReviewTypeName object review is completed",
+    "to": [
+      "review_team_mail_list"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "review_completed_secdir_telechat"
+},
+{
+  "fields": {
+    "cc": [
+      "review_doc_all_parties",
+      "review_doc_group_mail_list"
+    ],
+    "desc": "Recipients when a tsvart ReviewTypeName object review is completed",
+    "to": [
+      "review_team_mail_list"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "review_completed_tsvart_early"
+},
+{
+  "fields": {
+    "cc": [
+      "ietf_last_call",
+      "review_doc_all_parties",
+      "review_doc_group_mail_list"
+    ],
+    "desc": "Recipients when a tsvart ReviewTypeName object review is completed",
+    "to": [
+      "review_team_mail_list"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "review_completed_tsvart_lc"
+},
+{
+  "fields": {
+    "cc": [
+      "ietf_last_call",
+      "review_doc_all_parties",
+      "review_doc_group_mail_list"
+    ],
+    "desc": "Recipients when a tsvart ReviewTypeName object review is completed",
+    "to": [
+      "review_team_mail_list"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "review_completed_tsvart_telechat"
+},
+{
+  "fields": {
+    "cc": [
+      "review_doc_all_parties",
+      "review_doc_group_mail_list"
+    ],
+    "desc": "Recipients when a yangdoctors ReviewTypeName object review is completed",
+    "to": [
+      "review_team_mail_list"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "review_completed_yangdoctors_early"
+},
+{
+  "fields": {
+    "cc": [
+      "ietf_last_call",
+      "review_doc_all_parties",
+      "review_doc_group_mail_list"
+    ],
+    "desc": "Recipients when a yangdoctors ReviewTypeName object review is completed",
+    "to": [
+      "review_team_mail_list"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "review_completed_yangdoctors_lc"
+},
+{
+  "fields": {
+    "cc": [
+      "ietf_last_call",
+      "review_doc_all_parties",
+      "review_doc_group_mail_list"
+    ],
+    "desc": "Recipients when a yangdoctors ReviewTypeName object review is completed",
+    "to": [
+      "review_team_mail_list"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "review_completed_yangdoctors_telechat"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients when a team notifies area directors when a review with one of a certain set of results (typically results indicating problem) is submitted",
+    "to": [
+      "review_doc_ad",
+      "review_team_ads"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "review_notify_ad"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients for overdue review assignment reminders",
+    "to": [
+      "group_secretaries"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "review_reminder_overdue_assignment"
+},
+{
+  "fields": {
+    "cc": [
+      "review_req_requested_by",
+      "review_secretaries"
+    ],
+    "desc": "Recipients for a change to a review request",
+    "to": [
+      "review_req_reviewers"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "review_req_changed"
+},
+{
+  "fields": {
+    "cc": [
+      "group_responsible_directors"
+    ],
+    "desc": "Recipients when a group is sent a reminder to submit minutes for a session",
+    "to": [
+      "group_chairs",
+      "group_secretaries"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "session_minutes_reminder"
+},
+{
+  "fields": {
+    "cc": [
+      "group_chairs",
+      "group_mail_list",
+      "group_responsible_directors",
+      "logged_in_person"
+    ],
+    "desc": "Recipients for a normal meeting session request",
+    "to": [
+      "session_requests"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "session_requested"
+},
+{
+  "fields": {
+    "cc": [
+      "group_chairs",
+      "logged_in_person",
+      "session_requests"
+    ],
+    "desc": "Recipients for a meeting session request for more than 2 sessions",
+    "to": [
+      "group_responsible_directors"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "session_requested_long"
+},
+{
+  "fields": {
+    "cc": [
+      "group_chairs",
+      "group_mail_list",
+      "group_responsible_directors",
+      "logged_in_person"
+    ],
+    "desc": "Recipients for a message cancelling a session request",
+    "to": [
+      "session_requests"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "session_request_cancelled"
+},
+{
+  "fields": {
+    "cc": [
+      "group_chairs",
+      "group_mail_list",
+      "group_responsible_directors",
+      "logged_in_person"
+    ],
+    "desc": "Recipients for a message noting a group plans to not meet",
+    "to": [
+      "session_requests"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "session_request_not_meeting"
+},
+{
+  "fields": {
+    "cc": [
+      "group_mail_list",
+      "group_responsible_directors"
+    ],
+    "desc": "Recipients for details when a session has been scheduled",
+    "to": [
+      "group_chairs",
+      "session_requester"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "session_scheduled"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients when slides are proposed for a given session",
+    "to": [
+      "group_chairs",
+      "group_responsible_directors",
+      "group_secretaries"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "slides_proposed"
+},
+{
+  "fields": {
+    "cc": [
+      "submission_group_mail_list"
+    ],
+    "desc": "Recipients for the announcement of a successfully submitted draft",
+    "to": [
+      "id_announce"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "sub_announced"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients for the announcement to the authors of a successfully submitted draft",
+    "to": [
+      "submission_authors",
+      "submission_confirmers"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "sub_announced_to_authors"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients for a message requesting group chair approval of a draft submission",
+    "to": [
+      "submission_group_chairs"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "sub_chair_approval_requested"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients for a message requesting confirmation of a draft submission",
+    "to": [
+      "submission_confirmers"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "sub_confirmation_requested"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients for a message with the full URL for managing a draft submission",
+    "to": [
+      "submission_confirmers"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "sub_management_url_requested"
+},
+{
+  "fields": {
+    "cc": [
+      "submission_authors",
+      "submission_group_chairs",
+      "submission_submitter"
+    ],
+    "desc": "Recipients for a manual post request for a draft submission",
+    "to": [
+      "internet_draft_requests"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "sub_manual_post_requested"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients for notification of a new version of an existing document",
+    "to": [
+      "doc_ad",
+      "doc_discussing_ads",
+      "doc_non_ietf_stream_manager",
+      "doc_notify",
+      "rfc_editor_if_doc_in_queue"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "sub_new_version"
+},
+{
+  "fields": {
+    "cc": [],
+    "desc": "Recipients when a new IETF WG -00 draft is announced",
+    "to": [
+      "new_wg_doc_list"
+    ]
+  },
+  "model": "mailtrigger.mailtrigger",
+  "pk": "sub_new_wg_00"
+},
+{
+  "fields": {
+    "desc": "The person providing a comment to nomcom",
+    "template": "{{commenter}}"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "commenter"
+},
+{
+  "fields": {
+    "desc": "The steering group (e.g. IRSG) of a document being reviewed for IETF stream conflicts",
+    "template": null
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "conflict_review_steering_group"
+},
+{
+  "fields": {
+    "desc": "The stream manager of a document being reviewed for IETF stream conflicts",
+    "template": null
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "conflict_review_stream_manager"
+},
+{
+  "fields": {
+    "desc": "The document's responsible Area Director",
+    "template": "{% if doc.ad %}<{{doc.ad.email_address}}>{% endif %}"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "doc_ad"
+},
+{
+  "fields": {
+    "desc": "The authors of the subject documents of a conflict-review or status-change",
+    "template": null
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "doc_affecteddoc_authors"
+},
+{
+  "fields": {
+    "desc": "The chairs of groups of the subject documents of a conflict-review or status-change",
+    "template": null
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "doc_affecteddoc_group_chairs"
+},
+{
+  "fields": {
+    "desc": "The notify field of the subject documents of a conflict-review or status-change",
+    "template": null
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "doc_affecteddoc_notify"
+},
+{
+  "fields": {
+    "desc": "The document's authors",
+    "template": "{% if doc.type_id == \"draft\" %}<{{doc.name}}@ietf.org>{% endif %}"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "doc_authors"
+},
+{
+  "fields": {
+    "desc": "The authors of the document, without using the draft aliases",
+    "template": "{{doc.author_list}}"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "doc_authors_expanded"
+},
+{
+  "fields": {
+    "desc": "Any ADs holding an active DISCUSS position on a given document",
+    "template": null
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "doc_discussing_ads"
+},
+{
+  "fields": {
+    "desc": "The document's group chairs (if the document is assigned to a working or research group)",
+    "template": null
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "doc_group_chairs"
+},
+{
+  "fields": {
+    "desc": "The document's group delegates (if the document is assigned to a working or research group)",
+    "template": null
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "doc_group_delegates"
+},
+{
+  "fields": {
+    "desc": "The list address of the document's group",
+    "template": null
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "doc_group_mail_list"
+},
+{
+  "fields": {
+    "desc": "The document's group's responsible AD(s) or IRTF chair",
+    "template": null
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "doc_group_responsible_directors"
+},
+{
+  "fields": {
+    "desc": "Leadership for a document that has a new IPR disclosure",
+    "template": null
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "doc_ipr_group_or_ad"
+},
+{
+  "fields": {
+    "desc": "The document's stream manager if the document is not in the IETF stream",
+    "template": null
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "doc_non_ietf_stream_manager"
+},
+{
+  "fields": {
+    "desc": "The addresses in the document's notify field",
+    "template": "{{doc.notify}}"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "doc_notify"
+},
+{
+  "fields": {
+    "desc": "The document's shepherd",
+    "template": "{% if doc.shepherd %}<{{doc.shepherd.address}}>{% endif %}"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "doc_shepherd"
+},
+{
+  "fields": {
+    "desc": "The manager of the document's stream",
+    "template": null
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "doc_stream_manager"
+},
+{
+  "fields": {
+    "desc": "The group's chairs",
+    "template": "{% if group and group.acronym %}<{{group.acronym}}-chairs@ietf.org>{% endif %}"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "group_chairs"
+},
+{
+  "fields": {
+    "desc": "Any personnel who were added or deleted when a group's personnel changes",
+    "template": "{% if changed_personnel %} {{ changed_personnel | join:\", \" }} {% endif %}"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "group_changed_personnel"
+},
+{
+  "fields": {
+    "desc": "The group's mailing list",
+    "template": "{% if group.list_email %}<{{ group.list_email }}>{% endif %}"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "group_mail_list"
+},
+{
+  "fields": {
+    "desc": "The group's responsible AD(s) or IRTF chair",
+    "template": null
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "group_responsible_directors"
+},
+{
+  "fields": {
+    "desc": "The group's secretaries",
+    "template": null
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "group_secretaries"
+},
+{
+  "fields": {
+    "desc": "The group's steering group (IESG or IRSG)",
+    "template": null
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "group_steering_group"
+},
+{
+  "fields": {
+    "desc": "The group's stream's announce list",
+    "template": "{% if group.type_id == 'wg' %}IETF-Announce <ietf-announce@ietf.org>{% elif group.type_id == 'rg' %}IRTF-Announce <irtf-announce@irtf.org>{% endif %}"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "group_stream_announce"
+},
+{
+  "fields": {
+    "desc": "The IAB",
+    "template": "The IAB <iab@iab.org>"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "iab"
+},
+{
+  "fields": {
+    "desc": "IANA",
+    "template": "<iana@iana.org>"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "iana"
+},
+{
+  "fields": {
+    "desc": "IANA's draft approval address",
+    "template": "IANA <drafts-approval@icann.org>"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "iana_approve"
+},
+{
+  "fields": {
+    "desc": "IANA's draft evaluation address",
+    "template": "IANA <drafts-eval@icann.org>"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "iana_eval"
+},
+{
+  "fields": {
+    "desc": "IANA's draft last call address",
+    "template": "IANA <drafts-lastcall@icann.org>"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "iana_last_call"
+},
+{
+  "fields": {
+    "desc": "The I-D-Announce Email List",
+    "template": "<i-d-announce@ietf.org>"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "id_announce"
+},
+{
+  "fields": {
+    "desc": "The IESG",
+    "template": "The IESG <iesg@ietf.org>"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "iesg"
+},
+{
+  "fields": {
+    "desc": "The Secretariat",
+    "template": "<iesg-secretary@ietf.org>"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "iesg_secretary"
+},
+{
+  "fields": {
+    "desc": "The IETF Announce list",
+    "template": "IETF-Announce <ietf-announce@ietf.org>"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "ietf_announce"
+},
+{
+  "fields": {
+    "desc": "The IETF general discussion list",
+    "template": "ietf@ietf.org"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "ietf_general"
+},
+{
+  "fields": {
+    "desc": "The IETF Last Call list",
+    "template": "last-call@ietf.org"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "ietf_last_call"
+},
+{
+  "fields": {
+    "desc": "The Secretariat",
+    "template": "<ietf-secretariat-reply@ietf.org>"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "ietf_secretariat"
+},
+{
+  "fields": {
+    "desc": "The internet drafts ticketing system",
+    "template": "<internet-drafts@ietf.org>"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "internet_draft_requests"
+},
+{
+  "fields": {
+    "desc": "The IETF IPR announce list",
+    "template": "ipr-announce@ietf.org"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "ipr_announce"
+},
+{
+  "fields": {
+    "desc": "The ipr disclosure handling system",
+    "template": "<ietf-ipr@ietf.org>"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "ipr_requests"
+},
+{
+  "fields": {
+    "desc": "The submitter of an IPR disclosure",
+    "template": "{% if ipr.submitter_email %}{{ ipr.submitter_email }}{% endif %}"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "ipr_submitter"
+},
+{
+  "fields": {
+    "desc": "The submitter (or ietf participant if the submitter is not available) of all IPR disclosures updated directly by this disclosure, without recursing to what the updated disclosures might have updated.",
+    "template": null
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "ipr_updatedipr_contacts"
+},
+{
+  "fields": {
+    "desc": "The holders of all IPR disclosures updated by disclosure and disclosures updated by those and so on.",
+    "template": null
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "ipr_updatedipr_holders"
+},
+{
+  "fields": {
+    "desc": "The IRSG",
+    "template": "The IRSG <irsg@irtf.org>"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "irsg"
+},
+{
+  "fields": {
+    "desc": "Alias for secretariat liaison administration",
+    "template": "<statements@ietf.org>"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "liaison_admin"
+},
+{
+  "fields": {
+    "desc": "The set of people who can approve this liasion statemetns",
+    "template": "{{liaison.approver_emails|join:\", \"}}"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "liaison_approvers"
+},
+{
+  "fields": {
+    "desc": "The addresses captured in the Cc field of the liaison statement form",
+    "template": "{{liaison.cc_contacts}}"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "liaison_cc"
+},
+{
+  "fields": {
+    "desc": "The assigned liaison manager for an external group ",
+    "template": null
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "liaison_manager"
+},
+{
+  "fields": {
+    "desc": "The addresses captured in the response contact field of the liaison statement form",
+    "template": "{{liaison.response_contacts}}"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "liaison_response_contacts"
+},
+{
+  "fields": {
+    "desc": "The addresses captured in the technical contact field of the liaison statement form",
+    "template": "{{liaison.technical_contacts}}"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "liaison_technical_contacts"
+},
+{
+  "fields": {
+    "desc": "The addresses captured in the To field of the liaison statement form",
+    "template": "{{liaison.to_contacts}}"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "liaison_to_contacts"
+},
+{
+  "fields": {
+    "desc": "The person currently logged into the datatracker who initiated a given action",
+    "template": "{% if person and person.email_address %}<{{ person.email_address }}>{% endif %}"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "logged_in_person"
+},
+{
+  "fields": {
+    "desc": "The email list for announcing new WG -00 submissions",
+    "template": "<new-wg-docs@ietf.org>"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "new_wg_doc_list"
+},
+{
+  "fields": {
+    "desc": "The IETF New Work list",
+    "template": "<new-work@ietf.org>"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "new_work"
+},
+{
+  "fields": {
+    "desc": "The chair of a given nomcom",
+    "template": "{{nomcom.group.get_chair.email.address}}"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "nomcom_chair"
+},
+{
+  "fields": {
+    "desc": "The person that submitted a nomination to nomcom",
+    "template": "{{nominator}}"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "nominator"
+},
+{
+  "fields": {
+    "desc": "The person nominated for a position",
+    "template": "{{nominee}}"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "nominee"
+},
+{
+  "fields": {
+    "desc": "The reviewer assigned to a review assignment",
+    "template": "{% if not skip_review_reviewer %}{{review_assignment.reviewer.email_address}}{% endif %}"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "review_assignment_reviewer"
+},
+{
+  "fields": {
+    "desc": "The requester of an assigned review",
+    "template": "{% if not skip_review_requested_by %}{{review_assignment.review_request.requested_by.email_address}}{% endif %}"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "review_assignment_review_req_by"
+},
+{
+  "fields": {
+    "desc": "The reviewed document's responsible area director",
+    "template": "{% if review_req.doc.ad %}{{review_req.doc.ad.email_address}}{% endif %}"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "review_doc_ad"
+},
+{
+  "fields": {
+    "desc": "The .all alias for the document being reviewed",
+    "template": "{% if review_req.doc.type_id == 'draft' %}<{{review_req.doc.name}}.all@ietf.org>{% endif %}"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "review_doc_all_parties"
+},
+{
+  "fields": {
+    "desc": "The working group list for the document being reviewed",
+    "template": "{{review_req.doc.group.list_email}}"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "review_doc_group_mail_list"
+},
+{
+  "fields": {
+    "desc": "The requester of a review",
+    "template": "{% if not skip_review_requested_by %}{{review_req.requested_by.email_address}}{% endif %}"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "review_req_requested_by"
+},
+{
+  "fields": {
+    "desc": "All reviewers assigned to a review request",
+    "template": null
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "review_req_reviewers"
+},
+{
+  "fields": {
+    "desc": "A single reviewer",
+    "template": "{{reviewer.email_address}}"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "review_reviewer"
+},
+{
+  "fields": {
+    "desc": "The secretaries of the review team of a review request or assignment",
+    "template": null
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "review_secretaries"
+},
+{
+  "fields": {
+    "desc": "The ADs of the team reviewing the document",
+    "template": null
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "review_team_ads"
+},
+{
+  "fields": {
+    "desc": "The review team's email list",
+    "template": "{{review_req.team.list_email}}"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "review_team_mail_list"
+},
+{
+  "fields": {
+    "desc": "The RFC Editor",
+    "template": "<rfc-editor@rfc-editor.org>"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "rfc_editor"
+},
+{
+  "fields": {
+    "desc": "The RFC Editor if a document is in the RFC Editor queue",
+    "template": null
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "rfc_editor_if_doc_in_queue"
+},
+{
+  "fields": {
+    "desc": "The person that requested a meeting slot for a given group",
+    "template": null
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "session_requester"
+},
+{
+  "fields": {
+    "desc": "The session request ticketing system",
+    "template": "<session-request@ietf.org>"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "session_requests"
+},
+{
+  "fields": {
+    "desc": "The managers of any related streams",
+    "template": null
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "stream_managers"
+},
+{
+  "fields": {
+    "desc": "The authors of a submitted draft",
+    "template": null
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "submission_authors"
+},
+{
+  "fields": {
+    "desc": "The people who can confirm a draft submission",
+    "template": null
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "submission_confirmers"
+},
+{
+  "fields": {
+    "desc": "The chairs of a submitted draft belonging to a group",
+    "template": null
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "submission_group_chairs"
+},
+{
+  "fields": {
+    "desc": "The mailing list of the group associated with a submitted document",
+    "template": ""
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "submission_group_mail_list"
+},
+{
+  "fields": {
+    "desc": "IETF manual post handling",
+    "template": "<ietf-manualpost@ietf.org>"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "submission_manualpost_handling"
+},
+{
+  "fields": {
+    "desc": "The person that submitted a draft",
+    "template": "{{submission.submitter}}"
+  },
+  "model": "mailtrigger.recipient",
+  "pk": "submission_submitter"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "AD Office Hours",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.agendatypename",
+  "pk": "ad"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "IETF Agenda",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.agendatypename",
+  "pk": "ietf"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Side Meetings",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.agendatypename",
+  "pk": "side"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Workshops",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.agendatypename",
+  "pk": "workshop"
+},
+{
+  "fields": {
+    "blocking": false,
+    "desc": "",
+    "name": "Abstain",
+    "order": 4,
+    "used": true
+  },
+  "model": "name.ballotpositionname",
+  "pk": "abstain"
+},
+{
+  "fields": {
+    "blocking": true,
+    "desc": "",
+    "name": "Block",
+    "order": 3,
+    "used": true
+  },
+  "model": "name.ballotpositionname",
+  "pk": "block"
+},
+{
+  "fields": {
+    "blocking": true,
+    "desc": "",
+    "name": "Discuss",
+    "order": 3,
+    "used": true
+  },
+  "model": "name.ballotpositionname",
+  "pk": "discuss"
+},
+{
+  "fields": {
+    "blocking": false,
+    "desc": "",
+    "name": "Need More Time",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.ballotpositionname",
+  "pk": "moretime"
+},
+{
+  "fields": {
+    "blocking": false,
+    "desc": "",
+    "name": "No Objection",
+    "order": 2,
+    "used": true
+  },
+  "model": "name.ballotpositionname",
+  "pk": "noobj"
+},
+{
+  "fields": {
+    "blocking": false,
+    "desc": "",
+    "name": "No Record",
+    "order": 6,
+    "used": true
+  },
+  "model": "name.ballotpositionname",
+  "pk": "norecord"
+},
+{
+  "fields": {
+    "blocking": false,
+    "desc": "",
+    "name": "Not Ready",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.ballotpositionname",
+  "pk": "notready"
+},
+{
+  "fields": {
+    "blocking": false,
+    "desc": "",
+    "name": "Recuse",
+    "order": 5,
+    "used": true
+  },
+  "model": "name.ballotpositionname",
+  "pk": "recuse"
+},
+{
+  "fields": {
+    "blocking": false,
+    "desc": "",
+    "name": "Yes",
+    "order": 1,
+    "used": true
+  },
+  "model": "name.ballotpositionname",
+  "pk": "yes"
+},
+{
+  "fields": {
+    "desc": "",
+    "editor_label": "(person)",
+    "name": "Person must be present",
+    "order": 0,
+    "penalty": 10000,
+    "used": true
+  },
+  "model": "name.constraintname",
+  "pk": "bethere"
+},
+{
+  "fields": {
+    "desc": "",
+    "editor_label": "(2)",
+    "name": "Conflicts with (secondary)",
+    "order": 0,
+    "penalty": 10000,
+    "used": true
+  },
+  "model": "name.constraintname",
+  "pk": "conflic2"
+},
+{
+  "fields": {
+    "desc": "",
+    "editor_label": "(3)",
+    "name": "Conflicts with (tertiary)",
+    "order": 0,
+    "penalty": 100000,
+    "used": true
+  },
+  "model": "name.constraintname",
+  "pk": "conflic3"
+},
+{
+  "fields": {
+    "desc": "",
+    "editor_label": "(1)",
+    "name": "Conflicts with",
+    "order": 0,
+    "penalty": 100000,
+    "used": true
+  },
+  "model": "name.constraintname",
+  "pk": "conflict"
+},
+{
+  "fields": {
+    "desc": "",
+    "editor_label": "timerange",
+    "name": "Can't meet within timerange",
+    "order": 0,
+    "penalty": 1000000,
+    "used": true
+  },
+  "model": "name.constraintname",
+  "pk": "timerange"
+},
+{
+  "fields": {
+    "desc": "",
+    "editor_label": "time_relation",
+    "name": "Preference for time between sessions",
+    "order": 0,
+    "penalty": 1000,
+    "used": true
+  },
+  "model": "name.constraintname",
+  "pk": "time_relation"
+},
+{
+  "fields": {
+    "desc": "",
+    "editor_label": "wg_adjacent",
+    "name": "Request for adjacent scheduling with another WG",
+    "order": 0,
+    "penalty": 1000,
+    "used": true
+  },
+  "model": "name.constraintname",
+  "pk": "wg_adjacent"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Africa",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.continentname",
+  "pk": "africa"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Antarctica",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.continentname",
+  "pk": "antarctica"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Asia",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.continentname",
+  "pk": "asia"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Europe",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.continentname",
+  "pk": "europe"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "North America",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.continentname",
+  "pk": "north-america"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Oceania",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.continentname",
+  "pk": "oceania"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "South America",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.continentname",
+  "pk": "south-america"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": false,
+    "name": "Andorra",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "AD"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "United Arab Emirates",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "AE"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Afghanistan",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "AF"
+},
+{
+  "fields": {
+    "continent": "north-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Antigua and Barbuda",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "AG"
+},
+{
+  "fields": {
+    "continent": "north-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Anguilla",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "AI"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": false,
+    "name": "Albania",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "AL"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Armenia",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "AM"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Angola",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "AO"
+},
+{
+  "fields": {
+    "continent": "antarctica",
+    "desc": "",
+    "in_eu": false,
+    "name": "Antarctica",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "AQ"
+},
+{
+  "fields": {
+    "continent": "south-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Argentina",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "AR"
+},
+{
+  "fields": {
+    "continent": "oceania",
+    "desc": "",
+    "in_eu": false,
+    "name": "American Samoa",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "AS"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": true,
+    "name": "Austria",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "AT"
+},
+{
+  "fields": {
+    "continent": "oceania",
+    "desc": "",
+    "in_eu": false,
+    "name": "Australia",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "AU"
+},
+{
+  "fields": {
+    "continent": "north-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Aruba",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "AW"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": false,
+    "name": "\u00c5land Islands",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "AX"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Azerbaijan",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "AZ"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": false,
+    "name": "Bosnia and Herzegovina",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "BA"
+},
+{
+  "fields": {
+    "continent": "north-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Barbados",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "BB"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Bangladesh",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "BD"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": true,
+    "name": "Belgium",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "BE"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Burkina Faso",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "BF"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": true,
+    "name": "Bulgaria",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "BG"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Bahrain",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "BH"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Burundi",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "BI"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Benin",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "BJ"
+},
+{
+  "fields": {
+    "continent": "north-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Saint Barth\u00e9lemy",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "BL"
+},
+{
+  "fields": {
+    "continent": "north-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Bermuda",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "BM"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Brunei",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "BN"
+},
+{
+  "fields": {
+    "continent": "south-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Bolivia",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "BO"
+},
+{
+  "fields": {
+    "continent": "north-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Bonaire, Sint Eustatius and Saba",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "BQ"
+},
+{
+  "fields": {
+    "continent": "south-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Brazil",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "BR"
+},
+{
+  "fields": {
+    "continent": "north-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Bahamas",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "BS"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Bhutan",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "BT"
+},
+{
+  "fields": {
+    "continent": "antarctica",
+    "desc": "",
+    "in_eu": false,
+    "name": "Bouvet Island",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "BV"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Botswana",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "BW"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": false,
+    "name": "Belarus",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "BY"
+},
+{
+  "fields": {
+    "continent": "north-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Belize",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "BZ"
+},
+{
+  "fields": {
+    "continent": "north-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Canada",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "CA"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Cocos (Keeling) Islands",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "CC"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Congo (the Democratic Republic of the)",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "CD"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Central African Republic",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "CF"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Congo",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "CG"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": false,
+    "name": "Switzerland",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "CH"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "C\u00f4te d'Ivoire",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "CI"
+},
+{
+  "fields": {
+    "continent": "oceania",
+    "desc": "",
+    "in_eu": false,
+    "name": "Cook Islands",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "CK"
+},
+{
+  "fields": {
+    "continent": "south-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Chile",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "CL"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Cameroon",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "CM"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "China",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "CN"
+},
+{
+  "fields": {
+    "continent": "south-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Colombia",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "CO"
+},
+{
+  "fields": {
+    "continent": "north-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Costa Rica",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "CR"
+},
+{
+  "fields": {
+    "continent": "north-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Cuba",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "CU"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Cabo Verde",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "CV"
+},
+{
+  "fields": {
+    "continent": "north-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Cura\u00e7ao",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "CW"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Christmas Island",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "CX"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": true,
+    "name": "Cyprus",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "CY"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": true,
+    "name": "Czech Republic",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "CZ"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": true,
+    "name": "Germany",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "DE"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Djibouti",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "DJ"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": true,
+    "name": "Denmark",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "DK"
+},
+{
+  "fields": {
+    "continent": "north-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Dominica",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "DM"
+},
+{
+  "fields": {
+    "continent": "north-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Dominican Republic",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "DO"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Algeria",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "DZ"
+},
+{
+  "fields": {
+    "continent": "south-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Ecuador",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "EC"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": true,
+    "name": "Estonia",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "EE"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Egypt",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "EG"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Western Sahara",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "EH"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Eritrea",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "ER"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": true,
+    "name": "Spain",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "ES"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Ethiopia",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "ET"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": true,
+    "name": "Finland",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "FI"
+},
+{
+  "fields": {
+    "continent": "oceania",
+    "desc": "",
+    "in_eu": false,
+    "name": "Fiji",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "FJ"
+},
+{
+  "fields": {
+    "continent": "south-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Falkland Islands  [Malvinas]",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "FK"
+},
+{
+  "fields": {
+    "continent": "oceania",
+    "desc": "",
+    "in_eu": false,
+    "name": "Micronesia (Federated States of)",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "FM"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": false,
+    "name": "Faroe Islands",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "FO"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": true,
+    "name": "France",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "FR"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Gabon",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "GA"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": true,
+    "name": "United Kingdom",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "GB"
+},
+{
+  "fields": {
+    "continent": "north-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Grenada",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "GD"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Georgia",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "GE"
+},
+{
+  "fields": {
+    "continent": "south-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "French Guiana",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "GF"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": false,
+    "name": "Guernsey",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "GG"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Ghana",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "GH"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": false,
+    "name": "Gibraltar",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "GI"
+},
+{
+  "fields": {
+    "continent": "north-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Greenland",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "GL"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Gambia",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "GM"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Guinea",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "GN"
+},
+{
+  "fields": {
+    "continent": "north-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Guadeloupe",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "GP"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Equatorial Guinea",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "GQ"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": true,
+    "name": "Greece",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "GR"
+},
+{
+  "fields": {
+    "continent": "antarctica",
+    "desc": "",
+    "in_eu": false,
+    "name": "South Georgia and the South Sandwich Islands",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "GS"
+},
+{
+  "fields": {
+    "continent": "north-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Guatemala",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "GT"
+},
+{
+  "fields": {
+    "continent": "oceania",
+    "desc": "",
+    "in_eu": false,
+    "name": "Guam",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "GU"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Guinea-Bissau",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "GW"
+},
+{
+  "fields": {
+    "continent": "south-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Guyana",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "GY"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Hong Kong",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "HK"
+},
+{
+  "fields": {
+    "continent": "antarctica",
+    "desc": "",
+    "in_eu": false,
+    "name": "Heard Island and McDonald Islands",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "HM"
+},
+{
+  "fields": {
+    "continent": "north-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Honduras",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "HN"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": true,
+    "name": "Croatia",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "HR"
+},
+{
+  "fields": {
+    "continent": "north-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Haiti",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "HT"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": true,
+    "name": "Hungary",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "HU"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Indonesia",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "ID"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": true,
+    "name": "Ireland",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "IE"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Israel",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "IL"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": false,
+    "name": "Isle of Man",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "IM"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "India",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "IN"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "British Indian Ocean Territory",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "IO"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Iraq",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "IQ"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Iran",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "IR"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": false,
+    "name": "Iceland",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "IS"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": true,
+    "name": "Italy",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "IT"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": false,
+    "name": "Jersey",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "JE"
+},
+{
+  "fields": {
+    "continent": "north-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Jamaica",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "JM"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Jordan",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "JO"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Japan",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "JP"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Kenya",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "KE"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Kyrgyzstan",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "KG"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Cambodia",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "KH"
+},
+{
+  "fields": {
+    "continent": "oceania",
+    "desc": "",
+    "in_eu": false,
+    "name": "Kiribati",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "KI"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Comoros",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "KM"
+},
+{
+  "fields": {
+    "continent": "north-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Saint Kitts and Nevis",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "KN"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "North Korea",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "KP"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "South Korea",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "KR"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Kuwait",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "KW"
+},
+{
+  "fields": {
+    "continent": "north-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Cayman Islands",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "KY"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Kazakhstan",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "KZ"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Laos",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "LA"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Lebanon",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "LB"
+},
+{
+  "fields": {
+    "continent": "north-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Saint Lucia",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "LC"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": false,
+    "name": "Liechtenstein",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "LI"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Sri Lanka",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "LK"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Liberia",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "LR"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Lesotho",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "LS"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": true,
+    "name": "Lithuania",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "LT"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": true,
+    "name": "Luxembourg",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "LU"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": true,
+    "name": "Latvia",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "LV"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Libya",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "LY"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Morocco",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "MA"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": false,
+    "name": "Monaco",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "MC"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": false,
+    "name": "Moldova",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "MD"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": false,
+    "name": "Montenegro",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "ME"
+},
+{
+  "fields": {
+    "continent": "north-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Saint Martin (French part)",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "MF"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Madagascar",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "MG"
+},
+{
+  "fields": {
+    "continent": "oceania",
+    "desc": "",
+    "in_eu": false,
+    "name": "Marshall Islands",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "MH"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": false,
+    "name": "Macedonia",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "MK"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Mali",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "ML"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Myanmar",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "MM"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Mongolia",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "MN"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Macao",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "MO"
+},
+{
+  "fields": {
+    "continent": "oceania",
+    "desc": "",
+    "in_eu": false,
+    "name": "Northern Mariana Islands",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "MP"
+},
+{
+  "fields": {
+    "continent": "north-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Martinique",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "MQ"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Mauritania",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "MR"
+},
+{
+  "fields": {
+    "continent": "north-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Montserrat",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "MS"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": true,
+    "name": "Malta",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "MT"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Mauritius",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "MU"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Maldives",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "MV"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Malawi",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "MW"
+},
+{
+  "fields": {
+    "continent": "north-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Mexico",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "MX"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Malaysia",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "MY"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Mozambique",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "MZ"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Namibia",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "NA"
+},
+{
+  "fields": {
+    "continent": "oceania",
+    "desc": "",
+    "in_eu": false,
+    "name": "New Caledonia",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "NC"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Niger",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "NE"
+},
+{
+  "fields": {
+    "continent": "oceania",
+    "desc": "",
+    "in_eu": false,
+    "name": "Norfolk Island",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "NF"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Nigeria",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "NG"
+},
+{
+  "fields": {
+    "continent": "north-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Nicaragua",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "NI"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": true,
+    "name": "Netherlands",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "NL"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": false,
+    "name": "Norway",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "NO"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Nepal",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "NP"
+},
+{
+  "fields": {
+    "continent": "oceania",
+    "desc": "",
+    "in_eu": false,
+    "name": "Nauru",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "NR"
+},
+{
+  "fields": {
+    "continent": "oceania",
+    "desc": "",
+    "in_eu": false,
+    "name": "Niue",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "NU"
+},
+{
+  "fields": {
+    "continent": "oceania",
+    "desc": "",
+    "in_eu": false,
+    "name": "New Zealand",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "NZ"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Oman",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "OM"
+},
+{
+  "fields": {
+    "continent": "north-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Panama",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "PA"
+},
+{
+  "fields": {
+    "continent": "south-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Peru",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "PE"
+},
+{
+  "fields": {
+    "continent": "oceania",
+    "desc": "",
+    "in_eu": false,
+    "name": "French Polynesia",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "PF"
+},
+{
+  "fields": {
+    "continent": "oceania",
+    "desc": "",
+    "in_eu": false,
+    "name": "Papua New Guinea",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "PG"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Philippines",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "PH"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Pakistan",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "PK"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": true,
+    "name": "Poland",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "PL"
+},
+{
+  "fields": {
+    "continent": "north-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Saint Pierre and Miquelon",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "PM"
+},
+{
+  "fields": {
+    "continent": "oceania",
+    "desc": "",
+    "in_eu": false,
+    "name": "Pitcairn",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "PN"
+},
+{
+  "fields": {
+    "continent": "north-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Puerto Rico",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "PR"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Palestine, State of",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "PS"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": true,
+    "name": "Portugal",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "PT"
+},
+{
+  "fields": {
+    "continent": "oceania",
+    "desc": "",
+    "in_eu": false,
+    "name": "Palau",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "PW"
+},
+{
+  "fields": {
+    "continent": "south-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Paraguay",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "PY"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Qatar",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "QA"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "R\u00e9union",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "RE"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": true,
+    "name": "Romania",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "RO"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": false,
+    "name": "Serbia",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "RS"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": false,
+    "name": "Russia",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "RU"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Rwanda",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "RW"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Saudi Arabia",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "SA"
+},
+{
+  "fields": {
+    "continent": "oceania",
+    "desc": "",
+    "in_eu": false,
+    "name": "Solomon Islands",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "SB"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Seychelles",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "SC"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Sudan",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "SD"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": true,
+    "name": "Sweden",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "SE"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Singapore",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "SG"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Saint Helena, Ascension and Tristan da Cunha",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "SH"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": true,
+    "name": "Slovenia",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "SI"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": false,
+    "name": "Svalbard and Jan Mayen",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "SJ"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": true,
+    "name": "Slovakia",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "SK"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Sierra Leone",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "SL"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": false,
+    "name": "San Marino",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "SM"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Senegal",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "SN"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Somalia",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "SO"
+},
+{
+  "fields": {
+    "continent": "south-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Suriname",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "SR"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "South Sudan",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "SS"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Sao Tome and Principe",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "ST"
+},
+{
+  "fields": {
+    "continent": "north-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "El Salvador",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "SV"
+},
+{
+  "fields": {
+    "continent": "north-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Sint Maarten (Dutch part)",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "SX"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Syria",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "SY"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Swaziland",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "SZ"
+},
+{
+  "fields": {
+    "continent": "north-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Turks and Caicos Islands",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "TC"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Chad",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "TD"
+},
+{
+  "fields": {
+    "continent": "antarctica",
+    "desc": "",
+    "in_eu": false,
+    "name": "French Southern Territories",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "TF"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Togo",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "TG"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Thailand",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "TH"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Tajikistan",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "TJ"
+},
+{
+  "fields": {
+    "continent": "oceania",
+    "desc": "",
+    "in_eu": false,
+    "name": "Tokelau",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "TK"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Timor-Leste",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "TL"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Turkmenistan",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "TM"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Tunisia",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "TN"
+},
+{
+  "fields": {
+    "continent": "oceania",
+    "desc": "",
+    "in_eu": false,
+    "name": "Tonga",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "TO"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": false,
+    "name": "Turkey",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "TR"
+},
+{
+  "fields": {
+    "continent": "north-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Trinidad and Tobago",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "TT"
+},
+{
+  "fields": {
+    "continent": "oceania",
+    "desc": "",
+    "in_eu": false,
+    "name": "Tuvalu",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "TV"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Taiwan",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "TW"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Tanzania",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "TZ"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": false,
+    "name": "Ukraine",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "UA"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Uganda",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "UG"
+},
+{
+  "fields": {
+    "continent": "oceania",
+    "desc": "",
+    "in_eu": false,
+    "name": "United States Minor Outlying Islands",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "UM"
+},
+{
+  "fields": {
+    "continent": "north-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "United States of America",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "US"
+},
+{
+  "fields": {
+    "continent": "south-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Uruguay",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "UY"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Uzbekistan",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "UZ"
+},
+{
+  "fields": {
+    "continent": "europe",
+    "desc": "",
+    "in_eu": false,
+    "name": "Holy See",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "VA"
+},
+{
+  "fields": {
+    "continent": "north-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Saint Vincent and the Grenadines",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "VC"
+},
+{
+  "fields": {
+    "continent": "south-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Venezuela",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "VE"
+},
+{
+  "fields": {
+    "continent": "north-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Virgin Islands (British)",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "VG"
+},
+{
+  "fields": {
+    "continent": "north-america",
+    "desc": "",
+    "in_eu": false,
+    "name": "Virgin Islands (U.S.)",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "VI"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Vietnam",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "VN"
+},
+{
+  "fields": {
+    "continent": "oceania",
+    "desc": "",
+    "in_eu": false,
+    "name": "Vanuatu",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "VU"
+},
+{
+  "fields": {
+    "continent": "oceania",
+    "desc": "",
+    "in_eu": false,
+    "name": "Wallis and Futuna",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "WF"
+},
+{
+  "fields": {
+    "continent": "oceania",
+    "desc": "",
+    "in_eu": false,
+    "name": "Samoa",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "WS"
+},
+{
+  "fields": {
+    "continent": "asia",
+    "desc": "",
+    "in_eu": false,
+    "name": "Yemen",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "YE"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Mayotte",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "YT"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "South Africa",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "ZA"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Zambia",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "ZM"
+},
+{
+  "fields": {
+    "continent": "africa",
+    "desc": "",
+    "in_eu": false,
+    "name": "Zimbabwe",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.countryname",
+  "pk": "ZW"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Django",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.dbtemplatetypename",
+  "pk": "django"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Plain",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.dbtemplatetypename",
+  "pk": "plain"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "reStructuredText",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.dbtemplatetypename",
+  "pk": "rst"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "conflict reviews",
+    "order": 0,
+    "revname": "Conflict reviewed by",
+    "used": true
+  },
+  "model": "name.docrelationshipname",
+  "pk": "conflrev"
+},
+{
+  "fields": {
+    "desc": "Approval for downref",
+    "name": "approves downref to",
+    "order": 0,
+    "revname": "was approved for downref by",
+    "used": true
+  },
+  "model": "name.docrelationshipname",
+  "pk": "downref-approval"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Obsoletes",
+    "order": 0,
+    "revname": "Obsoleted by",
+    "used": true
+  },
+  "model": "name.docrelationshipname",
+  "pk": "obs"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Possibly Replaces",
+    "order": 0,
+    "revname": "Possibly Replaced By",
+    "used": true
+  },
+  "model": "name.docrelationshipname",
+  "pk": "possibly-replaces"
+},
+{
+  "fields": {
+    "desc": "Informative Reference",
+    "name": "informatively references",
+    "order": 0,
+    "revname": "is informatively referenced by",
+    "used": true
+  },
+  "model": "name.docrelationshipname",
+  "pk": "refinfo"
+},
+{
+  "fields": {
+    "desc": "Normative Reference",
+    "name": "normatively references",
+    "order": 0,
+    "revname": "is normatively referenced by",
+    "used": true
+  },
+  "model": "name.docrelationshipname",
+  "pk": "refnorm"
+},
+{
+  "fields": {
+    "desc": "A reference found in a document which does not have split normative/informative reference sections.",
+    "name": "Reference",
+    "order": 0,
+    "revname": "Referenced by",
+    "used": true
+  },
+  "model": "name.docrelationshipname",
+  "pk": "refold"
+},
+{
+  "fields": {
+    "desc": "Reference of unknown type, likely found in the text of the document.",
+    "name": "Possible Reference",
+    "order": 3,
+    "revname": "Possibly Referenced By",
+    "used": true
+  },
+  "model": "name.docrelationshipname",
+  "pk": "refunk"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Replaces",
+    "order": 0,
+    "revname": "Replaced by",
+    "used": true
+  },
+  "model": "name.docrelationshipname",
+  "pk": "replaces"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Moves to BCP",
+    "order": 0,
+    "revname": "Moved to BCP by",
+    "used": true
+  },
+  "model": "name.docrelationshipname",
+  "pk": "tobcp"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Moves to Experimental",
+    "order": 0,
+    "revname": "Moved to Experimental by",
+    "used": true
+  },
+  "model": "name.docrelationshipname",
+  "pk": "toexp"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Moves to Historic",
+    "order": 0,
+    "revname": "Moved to Historic by",
+    "used": true
+  },
+  "model": "name.docrelationshipname",
+  "pk": "tohist"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Moves to Informational",
+    "order": 0,
+    "revname": "Moved to Informational by",
+    "used": true
+  },
+  "model": "name.docrelationshipname",
+  "pk": "toinf"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Moves to Internet Standard",
+    "order": 0,
+    "revname": "Moved to Internet Standard by",
+    "used": true
+  },
+  "model": "name.docrelationshipname",
+  "pk": "tois"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Moves to Proposed Standard",
+    "order": 0,
+    "revname": "Moved to Proposed Standard by",
+    "used": true
+  },
+  "model": "name.docrelationshipname",
+  "pk": "tops"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Updates",
+    "order": 0,
+    "revname": "Updated by",
+    "used": true
+  },
+  "model": "name.docrelationshipname",
+  "pk": "updates"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Stream state should change",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.docremindertypename",
+  "pk": "stream-s"
+},
+{
+  "fields": {
+    "desc": "A generic substate indicating that the shepherding AD has the action item to determine appropriate next steps. In particular, the appropriate steps (and the corresponding next state or substate) depend entirely on the nature of the issues that were raised and can only be decided with active involvement of the shepherding AD. Examples include:\n\n- if another AD raises an issue, the shepherding AD may first iterate with the other AD to get a better understanding of the exact issue. Or, the shepherding AD may attempt to argue that the issue is not serious enough to bring to the attention of the authors/WG.\n\n- if a documented issue is forwarded to a WG, some further iteration may be needed before it can be determined whether a new revision is needed or whether the WG response to an issue clarifies the issue sufficiently.\n\n- when a new revision appears, the shepherding AD will first look at the changes to determine whether they believe all outstanding issues have been raised satisfactorily, prior to asking the ADs who raised the original issues to verify the changes.",
+    "name": "AD Followup",
+    "order": 2,
+    "used": true
+  },
+  "model": "name.doctagname",
+  "pk": "ad-f-up"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Approved in minutes",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.doctagname",
+  "pk": "app-min"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Has errata",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.doctagname",
+  "pk": "errata"
+},
+{
+  "fields": {
+    "desc": "The document is awaiting review or input from an external party (i.e, someone other than the shepherding AD, the authors, or the WG). See the \"note\" field for more details on who has the action.",
+    "name": "External Party",
+    "order": 3,
+    "used": true
+  },
+  "model": "name.doctagname",
+  "pk": "extpty"
+},
+{
+  "fields": {
+    "desc": "The document has IANA actions that are not yet completed.",
+    "name": "IANA",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.doctagname",
+  "pk": "iana"
+},
+{
+  "fields": {
+    "desc": "RFC-Editor/IANA Registration Coordination",
+    "name": "IANA coordination",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.doctagname",
+  "pk": "iana-crd"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "IESG Review Completed",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.doctagname",
+  "pk": "iesg-com"
+},
+{
+  "fields": {
+    "desc": "Awaiting missing normative reference",
+    "name": "Missing references",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.doctagname",
+  "pk": "missref"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Author or Editor Needed",
+    "order": 4,
+    "used": true
+  },
+  "model": "name.doctagname",
+  "pk": "need-aut"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Editor Needed",
+    "order": 1,
+    "used": true
+  },
+  "model": "name.doctagname",
+  "pk": "need-ed"
+},
+{
+  "fields": {
+    "desc": "An updated I-D is needed to address the issues that have been raised.",
+    "name": "Revised I-D Needed",
+    "order": 5,
+    "used": true
+  },
+  "model": "name.doctagname",
+  "pk": "need-rev"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Shepherd Needed",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.doctagname",
+  "pk": "need-sh"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Polled for WG adoption but not adopted",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.doctagname",
+  "pk": "no-adopt"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Other - see Comment Log",
+    "order": 11,
+    "used": true
+  },
+  "model": "name.doctagname",
+  "pk": "other"
+},
+{
+  "fields": {
+    "desc": "IESG discussions on the document have raised some issues that need to be brought to the attention of the authors/WG, but those issues have not been written down yet. (It is common for discussions during a telechat to result in such situations. An AD may raise a possible issue during a telechat and only decide as a result of that discussion whether the issue is worth formally writing up and bringing to the attention of the authors/WG). A document stays in the \"Point Raised - Writeup Needed\" state until *ALL* IESG comments that have been raised have been documented.",
+    "name": "Point Raised - writeup needed",
+    "order": 1,
+    "used": false
+  },
+  "model": "name.doctagname",
+  "pk": "point"
+},
+{
+  "fields": {
+    "desc": "Holding for normative reference",
+    "name": "Holding for references",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.doctagname",
+  "pk": "ref"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Revised I-D Needed - Issue raised by AD",
+    "order": 8,
+    "used": true
+  },
+  "model": "name.doctagname",
+  "pk": "rev-ad"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Revised I-D Needed - Issue raised by IESG",
+    "order": 9,
+    "used": true
+  },
+  "model": "name.doctagname",
+  "pk": "rev-iesg"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Revised I-D Needed - Issue raised by WG",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.doctagname",
+  "pk": "rev-wg"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Revised I-D Needed - Issue raised by WGLC",
+    "order": 7,
+    "used": true
+  },
+  "model": "name.doctagname",
+  "pk": "rev-wglc"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Review by RFC Editor",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.doctagname",
+  "pk": "rfc-rev"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Document Shepherd Followup",
+    "order": 4,
+    "used": true
+  },
+  "model": "name.doctagname",
+  "pk": "sh-f-up"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Doc Shepherd Follow-up Underway",
+    "order": 10,
+    "used": true
+  },
+  "model": "name.doctagname",
+  "pk": "sheph-u"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Has verified errata",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.doctagname",
+  "pk": "verified-errata"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Via RFC Editor",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.doctagname",
+  "pk": "via-rfc"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Waiting for Dependency on Other Document",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.doctagname",
+  "pk": "w-dep"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Awaiting Expert Review/Resolution of Issues Raised",
+    "order": 1,
+    "used": true
+  },
+  "model": "name.doctagname",
+  "pk": "w-expert"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Awaiting External Review/Resolution of Issues Raised",
+    "order": 2,
+    "used": true
+  },
+  "model": "name.doctagname",
+  "pk": "w-extern"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Awaiting Merge with Other Document",
+    "order": 3,
+    "used": true
+  },
+  "model": "name.doctagname",
+  "pk": "w-merge"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Waiting for Partner Feedback",
+    "order": 2,
+    "used": true
+  },
+  "model": "name.doctagname",
+  "pk": "w-part"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Waiting for Referenced Document",
+    "order": 5,
+    "used": true
+  },
+  "model": "name.doctagname",
+  "pk": "w-refdoc"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Waiting for Referencing Document",
+    "order": 6,
+    "used": true
+  },
+  "model": "name.doctagname",
+  "pk": "w-refing"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Awaiting Reviews",
+    "order": 3,
+    "used": true
+  },
+  "model": "name.doctagname",
+  "pk": "w-review"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Agenda",
+    "order": 0,
+    "prefix": "agenda",
+    "used": true
+  },
+  "model": "name.doctypename",
+  "pk": "agenda"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Bluesheets",
+    "order": 0,
+    "prefix": "bluesheets",
+    "used": true
+  },
+  "model": "name.doctypename",
+  "pk": "bluesheets"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Charter",
+    "order": 0,
+    "prefix": "charter",
+    "used": true
+  },
+  "model": "name.doctypename",
+  "pk": "charter"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Conflict Review",
+    "order": 0,
+    "prefix": "conflict-review",
+    "used": true
+  },
+  "model": "name.doctypename",
+  "pk": "conflrev"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Draft",
+    "order": 0,
+    "prefix": "draft",
+    "used": true
+  },
+  "model": "name.doctypename",
+  "pk": "draft"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Liaison Attachment",
+    "order": 0,
+    "prefix": "liai-att",
+    "used": true
+  },
+  "model": "name.doctypename",
+  "pk": "liai-att"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Liaison",
+    "order": 0,
+    "prefix": "liaison",
+    "used": false
+  },
+  "model": "name.doctypename",
+  "pk": "liaison"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Minutes",
+    "order": 0,
+    "prefix": "minutes",
+    "used": true
+  },
+  "model": "name.doctypename",
+  "pk": "minutes"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Recording",
+    "order": 0,
+    "prefix": "recording",
+    "used": true
+  },
+  "model": "name.doctypename",
+  "pk": "recording"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Review",
+    "order": 0,
+    "prefix": "review",
+    "used": true
+  },
+  "model": "name.doctypename",
+  "pk": "review"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Shepherd's writeup",
+    "order": 0,
+    "prefix": "shepherd",
+    "used": false
+  },
+  "model": "name.doctypename",
+  "pk": "shepwrit"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Slides",
+    "order": 0,
+    "prefix": "slides",
+    "used": true
+  },
+  "model": "name.doctypename",
+  "pk": "slides"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Status Change",
+    "order": 0,
+    "prefix": "status-change",
+    "used": true
+  },
+  "model": "name.doctypename",
+  "pk": "statchg"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Document issue tracker",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.docurltagname",
+  "pk": "issues"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Document source repository",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.docurltagname",
+  "pk": "repository"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Document wiki",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.docurltagname",
+  "pk": "wiki"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Yang impact analysis",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.docurltagname",
+  "pk": "yang-impact-analysis"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Extracted yang module",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.docurltagname",
+  "pk": "yang-module"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Yang module metadata",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.docurltagname",
+  "pk": "yang-module-metadata"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Awaiting Approval from Previous Version Authors",
+    "next_states": [
+      "confirmed",
+      "cancel",
+      "posted"
+    ],
+    "order": 3,
+    "used": true
+  },
+  "model": "name.draftsubmissionstatename",
+  "pk": "aut-appr"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Awaiting Submitter Authentication",
+    "next_states": [
+      "confirmed",
+      "cancel",
+      "posted"
+    ],
+    "order": 2,
+    "used": true
+  },
+  "model": "name.draftsubmissionstatename",
+  "pk": "auth"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Cancelled",
+    "next_states": [],
+    "order": 6,
+    "used": true
+  },
+  "model": "name.draftsubmissionstatename",
+  "pk": "cancel"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Confirmed",
+    "next_states": [
+      "cancel",
+      "posted"
+    ],
+    "order": 0,
+    "used": true
+  },
+  "model": "name.draftsubmissionstatename",
+  "pk": "confirmed"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Awaiting Initial Version Approval",
+    "next_states": [
+      "cancel",
+      "posted"
+    ],
+    "order": 4,
+    "used": true
+  },
+  "model": "name.draftsubmissionstatename",
+  "pk": "grp-appr"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Awaiting Manual Post",
+    "next_states": [
+      "cancel",
+      "posted"
+    ],
+    "order": 5,
+    "used": true
+  },
+  "model": "name.draftsubmissionstatename",
+  "pk": "manual"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Posted",
+    "next_states": [],
+    "order": 7,
+    "used": true
+  },
+  "model": "name.draftsubmissionstatename",
+  "pk": "posted"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Uploaded",
+    "next_states": [
+      "auth",
+      "aut-appr",
+      "grp-appr",
+      "manual",
+      "cancel"
+    ],
+    "order": 1,
+    "used": true
+  },
+  "model": "name.draftsubmissionstatename",
+  "pk": "uploaded"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Manual Post Waiting for Draft",
+    "next_states": [
+      "cancel",
+      "posted"
+    ],
+    "order": 8,
+    "used": true
+  },
+  "model": "name.draftsubmissionstatename",
+  "pk": "waiting-for-draft"
+},
+{
+  "fields": {
+    "desc": "Frequently Asked Questions",
+    "name": "Frequently Asked Questions",
+    "order": 0,
+    "type": "url",
+    "used": true
+  },
+  "model": "name.extresourcename",
+  "pk": "faq"
+},
+{
+  "fields": {
+    "desc": "GitHub Notifications Email",
+    "name": "GitHub Notifications Email",
+    "order": 0,
+    "type": "email",
+    "used": true
+  },
+  "model": "name.extresourcename",
+  "pk": "github_notify"
+},
+{
+  "fields": {
+    "desc": "GitHub Organization",
+    "name": "GitHub Organization",
+    "order": 0,
+    "type": "url",
+    "used": true
+  },
+  "model": "name.extresourcename",
+  "pk": "github_org"
+},
+{
+  "fields": {
+    "desc": "GitHub Repository",
+    "name": "GitHub Repository",
+    "order": 0,
+    "type": "url",
+    "used": true
+  },
+  "model": "name.extresourcename",
+  "pk": "github_repo"
+},
+{
+  "fields": {
+    "desc": "GitHub Username",
+    "name": "GitHub Username",
+    "order": 0,
+    "type": "string",
+    "used": true
+  },
+  "model": "name.extresourcename",
+  "pk": "github_username"
+},
+{
+  "fields": {
+    "desc": "GitLab Username",
+    "name": "GitLab Username",
+    "order": 0,
+    "type": "string",
+    "used": true
+  },
+  "model": "name.extresourcename",
+  "pk": "gitlab_username"
+},
+{
+  "fields": {
+    "desc": "Jabber Log",
+    "name": "Jabber Log",
+    "order": 0,
+    "type": "url",
+    "used": true
+  },
+  "model": "name.extresourcename",
+  "pk": "jabber_log"
+},
+{
+  "fields": {
+    "desc": "Jabber Room",
+    "name": "Jabber Room",
+    "order": 0,
+    "type": "url",
+    "used": true
+  },
+  "model": "name.extresourcename",
+  "pk": "jabber_room"
+},
+{
+  "fields": {
+    "desc": "Mailing List",
+    "name": "Mailing List",
+    "order": 0,
+    "type": "url",
+    "used": true
+  },
+  "model": "name.extresourcename",
+  "pk": "mailing_list"
+},
+{
+  "fields": {
+    "desc": "Mailing List Archive",
+    "name": "Mailing List Archive",
+    "order": 0,
+    "type": "url",
+    "used": true
+  },
+  "model": "name.extresourcename",
+  "pk": "mailing_list_archive"
+},
+{
+  "fields": {
+    "desc": "Other Repository",
+    "name": "Other Repository",
+    "order": 0,
+    "type": "url",
+    "used": true
+  },
+  "model": "name.extresourcename",
+  "pk": "repo"
+},
+{
+  "fields": {
+    "desc": "Slack Channel",
+    "name": "Slack Channel",
+    "order": 0,
+    "type": "url",
+    "used": true
+  },
+  "model": "name.extresourcename",
+  "pk": "slack"
+},
+{
+  "fields": {
+    "desc": "Issuer Tracker",
+    "name": "Issuer Tracker",
+    "order": 0,
+    "type": "url",
+    "used": true
+  },
+  "model": "name.extresourcename",
+  "pk": "tracker"
+},
+{
+  "fields": {
+    "desc": "Additional Web Page",
+    "name": "Additional Web Page",
+    "order": 0,
+    "type": "url",
+    "used": true
+  },
+  "model": "name.extresourcename",
+  "pk": "webpage"
+},
+{
+  "fields": {
+    "desc": "Website",
+    "name": "Website",
+    "order": 0,
+    "type": "url",
+    "used": true
+  },
+  "model": "name.extresourcename",
+  "pk": "website"
+},
+{
+  "fields": {
+    "desc": "Wiki",
+    "name": "Wiki",
+    "order": 0,
+    "type": "url",
+    "used": true
+  },
+  "model": "name.extresourcename",
+  "pk": "wiki"
+},
+{
+  "fields": {
+    "desc": "Yang Catalog Entry",
+    "name": "Yang Catalog Entry",
+    "order": 0,
+    "type": "url",
+    "used": true
+  },
+  "model": "name.extresourcename",
+  "pk": "yc_entry"
+},
+{
+  "fields": {
+    "desc": "Yang Impact Analysis",
+    "name": "Yang Impact Analysis",
+    "order": 0,
+    "type": "url",
+    "used": true
+  },
+  "model": "name.extresourcename",
+  "pk": "yc_impact"
+},
+{
+  "fields": {
+    "desc": "Email address",
+    "name": "Email address",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.extresourcetypename",
+  "pk": "email"
+},
+{
+  "fields": {
+    "desc": "string",
+    "name": "string",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.extresourcetypename",
+  "pk": "string"
+},
+{
+  "fields": {
+    "desc": "URL",
+    "name": "URL",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.extresourcetypename",
+  "pk": "url"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Comment",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.feedbacktypename",
+  "pk": "comment"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Junk",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.feedbacktypename",
+  "pk": "junk"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Nomination",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.feedbacktypename",
+  "pk": "nomina"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Questionnaire response",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.feedbacktypename",
+  "pk": "questio"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Read",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.feedbacktypename",
+  "pk": "read"
+},
+{
+  "fields": {
+    "desc": "Augmented Backus-Naur Form",
+    "name": "ABNF",
+    "order": 1,
+    "used": true
+  },
+  "model": "name.formallanguagename",
+  "pk": "abnf"
+},
+{
+  "fields": {
+    "desc": "Abstract Syntax Notation One",
+    "name": "ASN.1",
+    "order": 2,
+    "used": true
+  },
+  "model": "name.formallanguagename",
+  "pk": "asn1"
+},
+{
+  "fields": {
+    "desc": "Concise Binary Object Representation",
+    "name": "CBOR",
+    "order": 3,
+    "used": true
+  },
+  "model": "name.formallanguagename",
+  "pk": "cbor"
+},
+{
+  "fields": {
+    "desc": "Code in the C Programming Language",
+    "name": "C Code",
+    "order": 4,
+    "used": true
+  },
+  "model": "name.formallanguagename",
+  "pk": "ccode"
+},
+{
+  "fields": {
+    "desc": "Javascript Object Notation",
+    "name": "JSON",
+    "order": 5,
+    "used": true
+  },
+  "model": "name.formallanguagename",
+  "pk": "json"
+},
+{
+  "fields": {
+    "desc": "Extensible Markup Language",
+    "name": "XML",
+    "order": 6,
+    "used": true
+  },
+  "model": "name.formallanguagename",
+  "pk": "xml"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Active",
+    "order": 1,
+    "used": true
+  },
+  "model": "name.groupmilestonestatename",
+  "pk": "active"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Chartering/rechartering",
+    "order": 4,
+    "used": true
+  },
+  "model": "name.groupmilestonestatename",
+  "pk": "charter"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Deleted",
+    "order": 2,
+    "used": true
+  },
+  "model": "name.groupmilestonestatename",
+  "pk": "deleted"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "For review",
+    "order": 3,
+    "used": true
+  },
+  "model": "name.groupmilestonestatename",
+  "pk": "review"
+},
+{
+  "fields": {
+    "desc": "Formation of the group (most likely a BoF or Proposed WG) was abandoned",
+    "name": "Abandoned",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.groupstatename",
+  "pk": "abandon"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Active",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.groupstatename",
+  "pk": "active"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "BOF",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.groupstatename",
+  "pk": "bof"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "BOF Concluded",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.groupstatename",
+  "pk": "bof-conc"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Concluded",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.groupstatename",
+  "pk": "conclude"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Dormant",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.groupstatename",
+  "pk": "dormant"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Proposed",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.groupstatename",
+  "pk": "proposed"
+},
+{
+  "fields": {
+    "desc": "Replaced by a group with a different acronym",
+    "name": "Replaced",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.groupstatename",
+  "pk": "replaced"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Unknown",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.groupstatename",
+  "pk": "unknown"
+},
+{
+  "fields": {
+    "desc": "Ad Hoc schedulable Group Type, for instance HotRfc",
+    "name": "Ad Hoc",
+    "order": 0,
+    "used": true,
+    "verbose_name": "Ad Hoc Group Type"
+  },
+  "model": "name.grouptypename",
+  "pk": "adhoc"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Admin",
+    "order": 0,
+    "used": true,
+    "verbose_name": "Administrative Group"
+  },
+  "model": "name.grouptypename",
+  "pk": "admin"
+},
+{
+  "fields": {
+    "desc": "Area group",
+    "name": "AG",
+    "order": 0,
+    "used": true,
+    "verbose_name": "Area Group"
+  },
+  "model": "name.grouptypename",
+  "pk": "ag"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Area",
+    "order": 0,
+    "used": true,
+    "verbose_name": "Area"
+  },
+  "model": "name.grouptypename",
+  "pk": "area"
+},
+{
+  "fields": {
+    "desc": "In many areas, the Area Directors have formed an advisory group or directorate.  These comprise experienced members of the IETF and the technical community represented by the area.  The specific name and the details of the role for each group differ from area to area, but  the primary intent is that these groups assist the Area Director(s), e.g., with the review of specifications produced in the area.",
+    "name": "Directorate",
+    "order": 0,
+    "used": true,
+    "verbose_name": "Area Directorate"
+  },
+  "model": "name.grouptypename",
+  "pk": "dir"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "IAB",
+    "order": 0,
+    "used": true,
+    "verbose_name": "Internet Architecture Board"
+  },
+  "model": "name.grouptypename",
+  "pk": "iab"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "IANA",
+    "order": 0,
+    "used": true,
+    "verbose_name": "Internet Assigned Numbers Authority"
+  },
+  "model": "name.grouptypename",
+  "pk": "iana"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "IESG",
+    "order": 0,
+    "used": true,
+    "verbose_name": "Internet Engineering Steering Group"
+  },
+  "model": "name.grouptypename",
+  "pk": "iesg"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "IETF",
+    "order": 0,
+    "used": true,
+    "verbose_name": "Internet Engineering Task Force"
+  },
+  "model": "name.grouptypename",
+  "pk": "ietf"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Individual",
+    "order": 0,
+    "used": true,
+    "verbose_name": "An Individual"
+  },
+  "model": "name.grouptypename",
+  "pk": "individ"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "IRTF",
+    "order": 0,
+    "used": true,
+    "verbose_name": "Internet Research Task Force"
+  },
+  "model": "name.grouptypename",
+  "pk": "irtf"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "ISE",
+    "order": 0,
+    "used": true,
+    "verbose_name": "Independent Stream Editor"
+  },
+  "model": "name.grouptypename",
+  "pk": "ise"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "ISOC",
+    "order": 0,
+    "used": true,
+    "verbose_name": "The Internet Society"
+  },
+  "model": "name.grouptypename",
+  "pk": "isoc"
+},
+{
+  "fields": {
+    "desc": "An IETF/IAB Nominating Committee.  Use 'SDO' for external nominating committees.",
+    "name": "Nomcom",
+    "order": 0,
+    "used": true,
+    "verbose_name": "IETF/IAB Nominating Committee"
+  },
+  "model": "name.grouptypename",
+  "pk": "nomcom"
+},
+{
+  "fields": {
+    "desc": "Program",
+    "name": "Program",
+    "order": 0,
+    "used": true,
+    "verbose_name": ""
+  },
+  "model": "name.grouptypename",
+  "pk": "program"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Directorate (with reviews)",
+    "order": 0,
+    "used": true,
+    "verbose_name": ""
+  },
+  "model": "name.grouptypename",
+  "pk": "review"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "RFC Editor",
+    "order": 0,
+    "used": true,
+    "verbose_name": "The RFC Editor"
+  },
+  "model": "name.grouptypename",
+  "pk": "rfcedtyp"
+},
+{
+  "fields": {
+    "desc": "Research group",
+    "name": "RG",
+    "order": 0,
+    "used": true,
+    "verbose_name": "Research Group"
+  },
+  "model": "name.grouptypename",
+  "pk": "rg"
+},
+{
+  "fields": {
+    "desc": "Standards organization",
+    "name": "SDO",
+    "order": 0,
+    "used": true,
+    "verbose_name": "Standards Organization"
+  },
+  "model": "name.grouptypename",
+  "pk": "sdo"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Team",
+    "order": 0,
+    "used": true,
+    "verbose_name": "Team"
+  },
+  "model": "name.grouptypename",
+  "pk": "team"
+},
+{
+  "fields": {
+    "desc": "Working group",
+    "name": "WG",
+    "order": 0,
+    "used": true,
+    "verbose_name": "Working Group"
+  },
+  "model": "name.grouptypename",
+  "pk": "wg"
+},
+{
+  "fields": {
+    "default_offset_days": -19,
+    "desc": "Internet Draft submission cut-off for -00 drafts by UTC 23:59",
+    "name": "00 ID Cutoff",
+    "order": 0,
+    "used": false
+  },
+  "model": "name.importantdatename",
+  "pk": "00cutoff"
+},
+{
+  "fields": {
+    "default_offset_days": -12,
+    "desc": "Internet Draft submission cut-off for revised (-01 and above) drafts by UTC 23:59",
+    "name": "01 ID Cutoff",
+    "order": 0,
+    "used": false
+  },
+  "model": "name.importantdatename",
+  "pk": "01cutoff"
+},
+{
+  "fields": {
+    "default_offset_days": -36,
+    "desc": "Cut-off date for Area Directors to approve BOFs at UTC 23:59",
+    "name": "Cut-off BOF approval",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.importantdatename",
+  "pk": "cutoffbofapprove"
+},
+{
+  "fields": {
+    "default_offset_days": -43,
+    "desc": "Cut-off date for BOF proposal requests to Area Directors at UTC 23:59",
+    "name": "Cut-off BOF scheduling Requests",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.importantdatename",
+  "pk": "cutoffbofreq"
+},
+{
+  "fields": {
+    "default_offset_days": -5,
+    "desc": "Registration cancellation cut-off at UTC 23:59",
+    "name": "Registration Cancellation Cut-off",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.importantdatename",
+  "pk": "cutoffcancel"
+},
+{
+  "fields": {
+    "default_offset_days": -1,
+    "desc": "Final Pre-Registration and Pre-Payment cut-off at 17:00 local meeting time",
+    "name": "Pre-Registration Cutoff",
+    "order": 0,
+    "used": false
+  },
+  "model": "name.importantdatename",
+  "pk": "cutoffpre"
+},
+{
+  "fields": {
+    "default_offset_days": -24,
+    "desc": "Cut-off date for requests to reschedule Working Group or BOF meetings UTC 23:59",
+    "name": "Cut-off Reschedule Requests",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.importantdatename",
+  "pk": "cutoffresched"
+},
+{
+  "fields": {
+    "default_offset_days": -43,
+    "desc": "Cut-off date for requests to schedule Working Group Meetings at UTC 23:59",
+    "name": "Cut-off WG scheduling Requests",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.importantdatename",
+  "pk": "cutoffwgreq"
+},
+{
+  "fields": {
+    "default_offset_days": -10,
+    "desc": "Draft Working Group agendas due by UTC 23:59",
+    "name": "Draft Working Group Agendas",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.importantdatename",
+  "pk": "draftwgagenda"
+},
+{
+  "fields": {
+    "default_offset_days": -47,
+    "desc": "Early Bird registration and payment cut-off at UTC 23:59",
+    "name": "Earlybird cutoff",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.importantdatename",
+  "pk": "earlybird"
+},
+{
+  "fields": {
+    "default_offset_days": -22,
+    "desc": "Final agenda to be published",
+    "name": "Final Agenda",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.importantdatename",
+  "pk": "finalagenda"
+},
+{
+  "fields": {
+    "default_offset_days": -12,
+    "desc": "Internet Draft submission cut-off (for all drafts, including -00) by UTC 23:59",
+    "name": "ID Cutoff",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.importantdatename",
+  "pk": "idcutoff"
+},
+{
+  "fields": {
+    "default_offset_days": 70,
+    "desc": "Announcement of whether conditions have improved enough to hold an in-person meeting in Madrid, or if IETF 108 will be held as a virtual meeting",
+    "name": "IETF 108 Go-ahead Announcement",
+    "order": 0,
+    "used": false
+  },
+  "model": "name.importantdatename",
+  "pk": "ietf-108-go-ahead"
+},
+{
+  "fields": {
+    "default_offset_days": -82,
+    "desc": "IETF Online Registration Opens",
+    "name": "Registration Opens",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.importantdatename",
+  "pk": "openreg"
+},
+{
+  "fields": {
+    "default_offset_days": -89,
+    "desc": "Working Group and BOF scheduling begins",
+    "name": "Scheduling Opens",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.importantdatename",
+  "pk": "opensched"
+},
+{
+  "fields": {
+    "default_offset_days": -29,
+    "desc": "Preliminary Agenda published for comment",
+    "name": "Preliminary Agenda",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.importantdatename",
+  "pk": "prelimagenda"
+},
+{
+  "fields": {
+    "default_offset_days": 27,
+    "desc": "Proceedings submission cutoff date by UTC 23:59",
+    "name": "Proceedings Submission Cut-off",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.importantdatename",
+  "pk": "procsub"
+},
+{
+  "fields": {
+    "default_offset_days": 51,
+    "desc": "Proceedings submission corrections cutoff date by UTC 23:59",
+    "name": "Proceedings Submission Revision Cut-off",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.importantdatename",
+  "pk": "revsub"
+},
+{
+  "fields": {
+    "default_offset_days": -5,
+    "desc": "Revised Working Group agendas due by UTC 23:59",
+    "name": "Revised Working Group Agendas",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.importantdatename",
+  "pk": "revwgagenda"
+},
+{
+  "fields": {
+    "default_offset_days": -12,
+    "desc": "Standard rate registration and payment cut-off at UTC 23:59.",
+    "name": "Standard rate registration ends",
+    "order": 18,
+    "used": true
+  },
+  "model": "name.importantdatename",
+  "pk": "stdratecutoff"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Best Current Practice",
+    "order": 4,
+    "used": true
+  },
+  "model": "name.intendedstdlevelname",
+  "pk": "bcp"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Draft Standard",
+    "order": 2,
+    "used": false
+  },
+  "model": "name.intendedstdlevelname",
+  "pk": "ds"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Experimental",
+    "order": 6,
+    "used": true
+  },
+  "model": "name.intendedstdlevelname",
+  "pk": "exp"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Historic",
+    "order": 7,
+    "used": true
+  },
+  "model": "name.intendedstdlevelname",
+  "pk": "hist"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Informational",
+    "order": 5,
+    "used": true
+  },
+  "model": "name.intendedstdlevelname",
+  "pk": "inf"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Proposed Standard",
+    "order": 1,
+    "used": true
+  },
+  "model": "name.intendedstdlevelname",
+  "pk": "ps"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Internet Standard",
+    "order": 3,
+    "used": true
+  },
+  "model": "name.intendedstdlevelname",
+  "pk": "std"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Parked",
+    "order": 1,
+    "used": true
+  },
+  "model": "name.iprdisclosurestatename",
+  "pk": "parked"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Pending",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.iprdisclosurestatename",
+  "pk": "pending"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Posted",
+    "order": 2,
+    "used": true
+  },
+  "model": "name.iprdisclosurestatename",
+  "pk": "posted"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Rejected",
+    "order": 3,
+    "used": true
+  },
+  "model": "name.iprdisclosurestatename",
+  "pk": "rejected"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Removed",
+    "order": 4,
+    "used": true
+  },
+  "model": "name.iprdisclosurestatename",
+  "pk": "removed"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Changed disclosure metadata",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.ipreventtypename",
+  "pk": "changed_disclosure"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Comment",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.ipreventtypename",
+  "pk": "comment"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Legacy",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.ipreventtypename",
+  "pk": "legacy"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "MsgIn",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.ipreventtypename",
+  "pk": "msgin"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "MsgOut",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.ipreventtypename",
+  "pk": "msgout"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Parked",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.ipreventtypename",
+  "pk": "parked"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Pending",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.ipreventtypename",
+  "pk": "pending"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Posted",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.ipreventtypename",
+  "pk": "posted"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Private Comment",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.ipreventtypename",
+  "pk": "private_comment"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Rejected",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.ipreventtypename",
+  "pk": "rejected"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Removed",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.ipreventtypename",
+  "pk": "removed"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Submitted",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.ipreventtypename",
+  "pk": "submitted"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Update Notify",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.ipreventtypename",
+  "pk": "update_notify"
+},
+{
+  "fields": {
+    "desc": "a) No License Required for Implementers",
+    "name": "No License",
+    "order": 1,
+    "used": true
+  },
+  "model": "name.iprlicensetypename",
+  "pk": "no-license"
+},
+{
+  "fields": {
+    "desc": "[None selected]",
+    "name": "None Selected",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.iprlicensetypename",
+  "pk": "none-selected"
+},
+{
+  "fields": {
+    "desc": "d) Licensing Declaration to be Provided Later (implies a willingness to commit to the provisions of a), b), or c) above to all implementers; otherwise, the next option 'Unwilling to Commit to the Provisions of a), b), or c) Above'. - must be selected)",
+    "name": "Provided Later",
+    "order": 4,
+    "used": true
+  },
+  "model": "name.iprlicensetypename",
+  "pk": "provided-later"
+},
+{
+  "fields": {
+    "desc": "c) Reasonable and Non-Discriminatory License to All Implementers with Possible Royalty/Fee",
+    "name": "Reasonable",
+    "order": 3,
+    "used": true
+  },
+  "model": "name.iprlicensetypename",
+  "pk": "reasonable"
+},
+{
+  "fields": {
+    "desc": "b) Royalty-Free, Reasonable and Non-Discriminatory License to All Implementers",
+    "name": "Royalty Free",
+    "order": 2,
+    "used": true
+  },
+  "model": "name.iprlicensetypename",
+  "pk": "royalty-free"
+},
+{
+  "fields": {
+    "desc": "f) See Text Below for Licensing Declaration",
+    "name": "See Below",
+    "order": 6,
+    "used": true
+  },
+  "model": "name.iprlicensetypename",
+  "pk": "see-below"
+},
+{
+  "fields": {
+    "desc": "e) Unwilling to Commit to the Provisions of a), b), or c) Above",
+    "name": "Unwilling to Commit",
+    "order": 5,
+    "used": true
+  },
+  "model": "name.iprlicensetypename",
+  "pk": "unwilling-to-commit"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Approved",
+    "order": 3,
+    "used": true
+  },
+  "model": "name.liaisonstatementeventtypename",
+  "pk": "approved"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Comment",
+    "order": 9,
+    "used": true
+  },
+  "model": "name.liaisonstatementeventtypename",
+  "pk": "comment"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Killed",
+    "order": 5,
+    "used": true
+  },
+  "model": "name.liaisonstatementeventtypename",
+  "pk": "killed"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Modified",
+    "order": 2,
+    "used": true
+  },
+  "model": "name.liaisonstatementeventtypename",
+  "pk": "modified"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "MsgIn",
+    "order": 7,
+    "used": true
+  },
+  "model": "name.liaisonstatementeventtypename",
+  "pk": "msgin"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "MsgOut",
+    "order": 8,
+    "used": true
+  },
+  "model": "name.liaisonstatementeventtypename",
+  "pk": "msgout"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Posted",
+    "order": 4,
+    "used": true
+  },
+  "model": "name.liaisonstatementeventtypename",
+  "pk": "posted"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Private Comment",
+    "order": 10,
+    "used": true
+  },
+  "model": "name.liaisonstatementeventtypename",
+  "pk": "private_comment"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Re-sent",
+    "order": 11,
+    "used": true
+  },
+  "model": "name.liaisonstatementeventtypename",
+  "pk": "resent"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Resurrected",
+    "order": 6,
+    "used": true
+  },
+  "model": "name.liaisonstatementeventtypename",
+  "pk": "resurrected"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Submitted",
+    "order": 1,
+    "used": true
+  },
+  "model": "name.liaisonstatementeventtypename",
+  "pk": "submitted"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "For action",
+    "order": 1,
+    "used": true
+  },
+  "model": "name.liaisonstatementpurposename",
+  "pk": "action"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "For comment",
+    "order": 2,
+    "used": true
+  },
+  "model": "name.liaisonstatementpurposename",
+  "pk": "comment"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "For information",
+    "order": 3,
+    "used": true
+  },
+  "model": "name.liaisonstatementpurposename",
+  "pk": "info"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "In response",
+    "order": 4,
+    "used": true
+  },
+  "model": "name.liaisonstatementpurposename",
+  "pk": "response"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Approved",
+    "order": 2,
+    "used": true
+  },
+  "model": "name.liaisonstatementstate",
+  "pk": "approved"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Dead",
+    "order": 4,
+    "used": true
+  },
+  "model": "name.liaisonstatementstate",
+  "pk": "dead"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Pending",
+    "order": 1,
+    "used": true
+  },
+  "model": "name.liaisonstatementstate",
+  "pk": "pending"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Posted",
+    "order": 3,
+    "used": true
+  },
+  "model": "name.liaisonstatementstate",
+  "pk": "posted"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Action Required",
+    "order": 1,
+    "used": true
+  },
+  "model": "name.liaisonstatementtagname",
+  "pk": "required"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Action Taken",
+    "order": 2,
+    "used": true
+  },
+  "model": "name.liaisonstatementtagname",
+  "pk": "taken"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "IETF",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.meetingtypename",
+  "pk": "ietf"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Interim",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.meetingtypename",
+  "pk": "interim"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Accepted",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.nomineepositionstatename",
+  "pk": "accepted"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Declined",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.nomineepositionstatename",
+  "pk": "declined"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Nominated, pending response",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.nomineepositionstatename",
+  "pk": "pending"
+},
+{
+  "fields": {
+    "desc": "The reviewer has accepted the assignment",
+    "name": "Accepted",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.reviewassignmentstatename",
+  "pk": "accepted"
+},
+{
+  "fields": {
+    "desc": "The review has been assigned to this reviewer",
+    "name": "Assigned",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.reviewassignmentstatename",
+  "pk": "assigned"
+},
+{
+  "fields": {
+    "desc": "The reviewer completed the assignment",
+    "name": "Completed",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.reviewassignmentstatename",
+  "pk": "completed"
+},
+{
+  "fields": {
+    "desc": "The reviewer did not provide a review by the deadline",
+    "name": "No Response",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.reviewassignmentstatename",
+  "pk": "no-response"
+},
+{
+  "fields": {
+    "desc": "The review was abandoned because of circumstances",
+    "name": "Overtaken By Events",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.reviewassignmentstatename",
+  "pk": "overtaken"
+},
+{
+  "fields": {
+    "desc": "The reviewer partially completed the assignment",
+    "name": "Partially Completed",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.reviewassignmentstatename",
+  "pk": "part-completed"
+},
+{
+  "fields": {
+    "desc": "The reviewer has rejected the assignment",
+    "name": "Rejected",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.reviewassignmentstatename",
+  "pk": "rejected"
+},
+{
+  "fields": {
+    "desc": "The assignment is was imported from an earlier database and its state could not be computed",
+    "name": "Unknown",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.reviewassignmentstatename",
+  "pk": "unknown"
+},
+{
+  "fields": {
+    "desc": "The team secretary has withdrawn the assignment",
+    "name": "Withdrawn by Team",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.reviewassignmentstatename",
+  "pk": "withdrawn"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Accepted",
+    "order": 2,
+    "used": false
+  },
+  "model": "name.reviewrequeststatename",
+  "pk": "accepted"
+},
+{
+  "fields": {
+    "desc": "The ReviewRequest has been assigned to at least one reviewer",
+    "name": "Assigned",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.reviewrequeststatename",
+  "pk": "assigned"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Completed",
+    "order": 10,
+    "used": false
+  },
+  "model": "name.reviewrequeststatename",
+  "pk": "completed"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "No Response",
+    "order": 6,
+    "used": false
+  },
+  "model": "name.reviewrequeststatename",
+  "pk": "no-response"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Team Will not Review Document",
+    "order": 8,
+    "used": true
+  },
+  "model": "name.reviewrequeststatename",
+  "pk": "no-review-document"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Team Will not Review Version",
+    "order": 7,
+    "used": true
+  },
+  "model": "name.reviewrequeststatename",
+  "pk": "no-review-version"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Overtaken by Events",
+    "order": 5,
+    "used": true
+  },
+  "model": "name.reviewrequeststatename",
+  "pk": "overtaken"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Partially Completed",
+    "order": 9,
+    "used": false
+  },
+  "model": "name.reviewrequeststatename",
+  "pk": "part-completed"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Rejected",
+    "order": 3,
+    "used": false
+  },
+  "model": "name.reviewrequeststatename",
+  "pk": "rejected"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Requested",
+    "order": 1,
+    "used": true
+  },
+  "model": "name.reviewrequeststatename",
+  "pk": "requested"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Unknown",
+    "order": 20,
+    "used": false
+  },
+  "model": "name.reviewrequeststatename",
+  "pk": "unknown"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Withdrawn",
+    "order": 4,
+    "used": true
+  },
+  "model": "name.reviewrequeststatename",
+  "pk": "withdrawn"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Almost Ready",
+    "order": 6,
+    "used": true
+  },
+  "model": "name.reviewresultname",
+  "pk": "almost-ready"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Has Issues",
+    "order": 2,
+    "used": true
+  },
+  "model": "name.reviewresultname",
+  "pk": "issues"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Has Nits",
+    "order": 3,
+    "used": true
+  },
+  "model": "name.reviewresultname",
+  "pk": "nits"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Not Ready",
+    "order": 4,
+    "used": true
+  },
+  "model": "name.reviewresultname",
+  "pk": "not-ready"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Ready",
+    "order": 9,
+    "used": true
+  },
+  "model": "name.reviewresultname",
+  "pk": "ready"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Ready with Issues",
+    "order": 7,
+    "used": true
+  },
+  "model": "name.reviewresultname",
+  "pk": "ready-issues"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Ready with Nits",
+    "order": 8,
+    "used": true
+  },
+  "model": "name.reviewresultname",
+  "pk": "ready-nits"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "On the Right Track",
+    "order": 5,
+    "used": true
+  },
+  "model": "name.reviewresultname",
+  "pk": "right-track"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Serious Issues",
+    "order": 1,
+    "used": true
+  },
+  "model": "name.reviewresultname",
+  "pk": "serious-issues"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Early",
+    "order": 1,
+    "used": true
+  },
+  "model": "name.reviewtypename",
+  "pk": "early"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Last Call",
+    "order": 2,
+    "used": true
+  },
+  "model": "name.reviewtypename",
+  "pk": "lc"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Telechat",
+    "order": 3,
+    "used": true
+  },
+  "model": "name.reviewtypename",
+  "pk": "telechat"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Least recently used",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.reviewerqueuepolicyname",
+  "pk": "LeastRecentlyUsed"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Rotate alphabetically",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.reviewerqueuepolicyname",
+  "pk": "RotateAlphabetically"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Area Director",
+    "order": 2,
+    "used": true
+  },
+  "model": "name.rolename",
+  "pk": "ad"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Administrative Director",
+    "order": 3,
+    "used": true
+  },
+  "model": "name.rolename",
+  "pk": "admdir"
+},
+{
+  "fields": {
+    "desc": "Advisor in a group that has explicit membership, such as the NomCom",
+    "name": "Advisor",
+    "order": 4,
+    "used": true
+  },
+  "model": "name.rolename",
+  "pk": "advisor"
+},
+{
+  "fields": {
+    "desc": "Authorised to send announcements to the ietf-announce and other lists",
+    "name": "List Announcer",
+    "order": 12,
+    "used": true
+  },
+  "model": "name.rolename",
+  "pk": "announce"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "At Large Member",
+    "order": 10,
+    "used": true
+  },
+  "model": "name.rolename",
+  "pk": "atlarge"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Authorized Individual",
+    "order": 5,
+    "used": true
+  },
+  "model": "name.rolename",
+  "pk": "auth"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "CEO",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.rolename",
+  "pk": "ceo"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Chair",
+    "order": 1,
+    "used": true
+  },
+  "model": "name.rolename",
+  "pk": "chair"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Communications Director",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.rolename",
+  "pk": "comdir"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Co-ordinator",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.rolename",
+  "pk": "coord"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Delegate",
+    "order": 6,
+    "used": true
+  },
+  "model": "name.rolename",
+  "pk": "delegate"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Editor",
+    "order": 5,
+    "used": true
+  },
+  "model": "name.rolename",
+  "pk": "editor"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Executive Director",
+    "order": 2,
+    "used": true
+  },
+  "model": "name.rolename",
+  "pk": "execdir"
+},
+{
+  "fields": {
+    "desc": "Lead member (such as the Lead of an IAB program)",
+    "name": "Lead",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.rolename",
+  "pk": "lead"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Liaison Manager",
+    "order": 4,
+    "used": true
+  },
+  "model": "name.rolename",
+  "pk": "liaiman"
+},
+{
+  "fields": {
+    "desc": "Liaison group member in a group that has explicit membership, such as the NomCom",
+    "name": "Liaison Member",
+    "order": 11,
+    "used": true
+  },
+  "model": "name.rolename",
+  "pk": "liaison"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Materials Manager",
+    "order": 13,
+    "used": true
+  },
+  "model": "name.rolename",
+  "pk": "matman"
+},
+{
+  "fields": {
+    "desc": "Regular group member in a group that has explicit membership, such as the NomCom",
+    "name": "Member",
+    "order": 7,
+    "used": true
+  },
+  "model": "name.rolename",
+  "pk": "member"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Incoming Area Director",
+    "order": 3,
+    "used": true
+  },
+  "model": "name.rolename",
+  "pk": "pre-ad"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Recording Manager",
+    "order": 13,
+    "used": true
+  },
+  "model": "name.rolename",
+  "pk": "recman"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Reviewer",
+    "order": 14,
+    "used": true
+  },
+  "model": "name.rolename",
+  "pk": "reviewer"
+},
+{
+  "fields": {
+    "desc": "A role for API access by external scripts or entities, such as the mail archive, registrations system, etc.",
+    "name": "Automation Robot",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.rolename",
+  "pk": "robot"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Secretary",
+    "order": 6,
+    "used": true
+  },
+  "model": "name.rolename",
+  "pk": "secr"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Tech Advisor",
+    "order": 4,
+    "used": true
+  },
+  "model": "name.rolename",
+  "pk": "techadv"
+},
+{
+  "fields": {
+    "desc": "Assigned permission TRAC_ADMIN in datatracker-managed Trac Wiki instances",
+    "name": "Trac Admin",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.rolename",
+  "pk": "trac-admin"
+},
+{
+  "fields": {
+    "desc": "Provides log-in permission to restricted Trac instances.  Used by the generate_apache_perms management command, called from ../../scripts/Cron-runner",
+    "name": "Trac Editor",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.rolename",
+  "pk": "trac-editor"
+},
+{
+  "fields": {
+    "desc": "Audio streaming support",
+    "name": "Audio Stream",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.roomresourcename",
+  "pk": "audiostream"
+},
+{
+  "fields": {
+    "desc": "Experimental room setup (boardroom and classroom) subject to availability",
+    "name": "Boardroom Layout",
+    "order": 0,
+    "used": false
+  },
+  "model": "name.roomresourcename",
+  "pk": "boardroom"
+},
+{
+  "fields": {
+    "desc": "Flipchars",
+    "name": "Flipcharts",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.roomresourcename",
+  "pk": "flipcharts"
+},
+{
+  "fields": {
+    "desc": "The room will have a meetecho wrangler",
+    "name": "Meetecho Support",
+    "order": 0,
+    "used": false
+  },
+  "model": "name.roomresourcename",
+  "pk": "meetecho"
+},
+{
+  "fields": {
+    "desc": "The room will have a second computer projector",
+    "name": "second LCD projector",
+    "order": 0,
+    "used": false
+  },
+  "model": "name.roomresourcename",
+  "pk": "proj2"
+},
+{
+  "fields": {
+    "desc": "The room will have a computer projector",
+    "name": "LCD projector",
+    "order": 0,
+    "used": false
+  },
+  "model": "name.roomresourcename",
+  "pk": "project"
+},
+{
+  "fields": {
+    "desc": "Experimental Room Setup (U-Shape and classroom, subject to availability)",
+    "name": "Experimental Room Setup (U-Shape and classroom)",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.roomresourcename",
+  "pk": "u-shape"
+},
+{
+  "fields": {
+    "desc": "Web streaming support",
+    "name": "WebEx",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.roomresourcename",
+  "pk": "webex"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Approved",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.sessionstatusname",
+  "pk": "appr"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Waiting for Approval",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.sessionstatusname",
+  "pk": "apprw"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Cancelled",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.sessionstatusname",
+  "pk": "canceled"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Cancelled - Pre Announcement",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.sessionstatusname",
+  "pk": "canceledpa"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Deleted",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.sessionstatusname",
+  "pk": "deleted"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Disapproved",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.sessionstatusname",
+  "pk": "disappr"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Not meeting",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.sessionstatusname",
+  "pk": "notmeet"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Scheduled",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.sessionstatusname",
+  "pk": "sched"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Scheduled - Announcement to be sent",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.sessionstatusname",
+  "pk": "scheda"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Waiting for Scheduling",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.sessionstatusname",
+  "pk": "schedw"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Best Current Practice",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.stdlevelname",
+  "pk": "bcp"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Draft Standard",
+    "order": 0,
+    "used": false
+  },
+  "model": "name.stdlevelname",
+  "pk": "ds"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Experimental",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.stdlevelname",
+  "pk": "exp"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Historic",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.stdlevelname",
+  "pk": "hist"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Informational",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.stdlevelname",
+  "pk": "inf"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Proposed Standard",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.stdlevelname",
+  "pk": "ps"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Internet Standard",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.stdlevelname",
+  "pk": "std"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Unknown",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.stdlevelname",
+  "pk": "unkn"
+},
+{
+  "fields": {
+    "desc": "IAB stream",
+    "name": "IAB",
+    "order": 4,
+    "used": true
+  },
+  "model": "name.streamname",
+  "pk": "iab"
+},
+{
+  "fields": {
+    "desc": "IETF stream",
+    "name": "IETF",
+    "order": 1,
+    "used": true
+  },
+  "model": "name.streamname",
+  "pk": "ietf"
+},
+{
+  "fields": {
+    "desc": "IRTF Stream",
+    "name": "IRTF",
+    "order": 3,
+    "used": true
+  },
+  "model": "name.streamname",
+  "pk": "irtf"
+},
+{
+  "fields": {
+    "desc": "Independent Submission Editor stream",
+    "name": "ISE",
+    "order": 2,
+    "used": true
+  },
+  "model": "name.streamname",
+  "pk": "ise"
+},
+{
+  "fields": {
+    "desc": "Legacy stream",
+    "name": "Legacy",
+    "order": 5,
+    "used": true
+  },
+  "model": "name.streamname",
+  "pk": "legacy"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Break",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.timeslottypename",
+  "pk": "break"
+},
+{
+  "fields": {
+    "desc": "Leadership Meetings",
+    "name": "Leadership",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.timeslottypename",
+  "pk": "lead"
+},
+{
+  "fields": {
+    "desc": "Other Meetings Not Published on Agenda",
+    "name": "Off Agenda",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.timeslottypename",
+  "pk": "offagenda"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Other",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.timeslottypename",
+  "pk": "other"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Plenary",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.timeslottypename",
+  "pk": "plenary"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Registration",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.timeslottypename",
+  "pk": "reg"
+},
+{
+  "fields": {
+    "desc": "",
+    "name": "Regular",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.timeslottypename",
+  "pk": "regular"
+},
+{
+  "fields": {
+    "desc": "A room has been reserved for use by another body the timeslot indicated",
+    "name": "Room Reserved",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.timeslottypename",
+  "pk": "reserved"
+},
+{
+  "fields": {
+    "desc": "A room was not booked for the timeslot indicated",
+    "name": "Room Unavailable",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.timeslottypename",
+  "pk": "unavail"
+},
+{
+  "fields": {
+    "desc": "Friday early afternoon",
+    "name": "friday-afternoon-early",
+    "order": 13,
+    "used": true
+  },
+  "model": "name.timerangename",
+  "pk": "friday-afternoon-early"
+},
+{
+  "fields": {
+    "desc": "Friday late afternoon",
+    "name": "friday-afternoon-late",
+    "order": 14,
+    "used": true
+  },
+  "model": "name.timerangename",
+  "pk": "friday-afternoon-late"
+},
+{
+  "fields": {
+    "desc": "Friday morning",
+    "name": "friday-morning",
+    "order": 12,
+    "used": true
+  },
+  "model": "name.timerangename",
+  "pk": "friday-morning"
+},
+{
+  "fields": {
+    "desc": "Monday early afternoon",
+    "name": "monday-afternoon-early",
+    "order": 1,
+    "used": true
+  },
+  "model": "name.timerangename",
+  "pk": "monday-afternoon-early"
+},
+{
+  "fields": {
+    "desc": "Monday late afternoon",
+    "name": "monday-afternoon-late",
+    "order": 2,
+    "used": true
+  },
+  "model": "name.timerangename",
+  "pk": "monday-afternoon-late"
+},
+{
+  "fields": {
+    "desc": "Monday morning",
+    "name": "monday-morning",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.timerangename",
+  "pk": "monday-morning"
+},
+{
+  "fields": {
+    "desc": "Thursday early afternoon",
+    "name": "thursday-afternoon-early",
+    "order": 10,
+    "used": true
+  },
+  "model": "name.timerangename",
+  "pk": "thursday-afternoon-early"
+},
+{
+  "fields": {
+    "desc": "Thursday late afternoon",
+    "name": "thursday-afternoon-late",
+    "order": 11,
+    "used": true
+  },
+  "model": "name.timerangename",
+  "pk": "thursday-afternoon-late"
+},
+{
+  "fields": {
+    "desc": "Thursday morning",
+    "name": "thursday-morning",
+    "order": 9,
+    "used": true
+  },
+  "model": "name.timerangename",
+  "pk": "thursday-morning"
+},
+{
+  "fields": {
+    "desc": "Tuesday early afternoon",
+    "name": "tuesday-afternoon-early",
+    "order": 4,
+    "used": true
+  },
+  "model": "name.timerangename",
+  "pk": "tuesday-afternoon-early"
+},
+{
+  "fields": {
+    "desc": "Tuesday late afternoon",
+    "name": "tuesday-afternoon-late",
+    "order": 5,
+    "used": true
+  },
+  "model": "name.timerangename",
+  "pk": "tuesday-afternoon-late"
+},
+{
+  "fields": {
+    "desc": "Tuesday morning",
+    "name": "tuesday-morning",
+    "order": 3,
+    "used": true
+  },
+  "model": "name.timerangename",
+  "pk": "tuesday-morning"
+},
+{
+  "fields": {
+    "desc": "Wednesday early afternoon",
+    "name": "wednesday-afternoon-early",
+    "order": 7,
+    "used": true
+  },
+  "model": "name.timerangename",
+  "pk": "wednesday-afternoon-early"
+},
+{
+  "fields": {
+    "desc": "Wednesday late afternoon",
+    "name": "wednesday-afternoon-late",
+    "order": 8,
+    "used": true
+  },
+  "model": "name.timerangename",
+  "pk": "wednesday-afternoon-late"
+},
+{
+  "fields": {
+    "desc": "Wednesday morning",
+    "name": "wednesday-morning",
+    "order": 6,
+    "used": true
+  },
+  "model": "name.timerangename",
+  "pk": "wednesday-morning"
+},
+{
+  "fields": {
+    "desc": "Anyone who can log in",
+    "name": "General",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.topicaudiencename",
+  "pk": "general"
+},
+{
+  "fields": {
+    "desc": "Members of this nomcom",
+    "name": "Nomcom Members",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.topicaudiencename",
+  "pk": "nomcom"
+},
+{
+  "fields": {
+    "desc": "Anyone who has accepted a Nomination for an open position",
+    "name": "Nominees",
+    "order": 0,
+    "used": true
+  },
+  "model": "name.topicaudiencename",
+  "pk": "nominees"
+},
+{
+  "fields": {
+    "alias": "AD",
+    "country": "AD"
+  },
+  "model": "stats.countryalias",
+  "pk": 1
+},
+{
+  "fields": {
+    "alias": "AE",
+    "country": "AE"
+  },
+  "model": "stats.countryalias",
+  "pk": 2
+},
+{
+  "fields": {
+    "alias": "AF",
+    "country": "AF"
+  },
+  "model": "stats.countryalias",
+  "pk": 3
+},
+{
+  "fields": {
+    "alias": "AG",
+    "country": "AG"
+  },
+  "model": "stats.countryalias",
+  "pk": 4
+},
+{
+  "fields": {
+    "alias": "AI",
+    "country": "AI"
+  },
+  "model": "stats.countryalias",
+  "pk": 5
+},
+{
+  "fields": {
+    "alias": "AL",
+    "country": "AL"
+  },
+  "model": "stats.countryalias",
+  "pk": 6
+},
+{
+  "fields": {
+    "alias": "AM",
+    "country": "AM"
+  },
+  "model": "stats.countryalias",
+  "pk": 7
+},
+{
+  "fields": {
+    "alias": "AO",
+    "country": "AO"
+  },
+  "model": "stats.countryalias",
+  "pk": 8
+},
+{
+  "fields": {
+    "alias": "AQ",
+    "country": "AQ"
+  },
+  "model": "stats.countryalias",
+  "pk": 9
+},
+{
+  "fields": {
+    "alias": "AR",
+    "country": "AR"
+  },
+  "model": "stats.countryalias",
+  "pk": 10
+},
+{
+  "fields": {
+    "alias": "AS",
+    "country": "AS"
+  },
+  "model": "stats.countryalias",
+  "pk": 11
+},
+{
+  "fields": {
+    "alias": "AT",
+    "country": "AT"
+  },
+  "model": "stats.countryalias",
+  "pk": 12
+},
+{
+  "fields": {
+    "alias": "AU",
+    "country": "AU"
+  },
+  "model": "stats.countryalias",
+  "pk": 13
+},
+{
+  "fields": {
+    "alias": "AW",
+    "country": "AW"
+  },
+  "model": "stats.countryalias",
+  "pk": 14
+},
+{
+  "fields": {
+    "alias": "AX",
+    "country": "AX"
+  },
+  "model": "stats.countryalias",
+  "pk": 15
+},
+{
+  "fields": {
+    "alias": "AZ",
+    "country": "AZ"
+  },
+  "model": "stats.countryalias",
+  "pk": 16
+},
+{
+  "fields": {
+    "alias": "BA",
+    "country": "BA"
+  },
+  "model": "stats.countryalias",
+  "pk": 17
+},
+{
+  "fields": {
+    "alias": "BB",
+    "country": "BB"
+  },
+  "model": "stats.countryalias",
+  "pk": 18
+},
+{
+  "fields": {
+    "alias": "BD",
+    "country": "BD"
+  },
+  "model": "stats.countryalias",
+  "pk": 19
+},
+{
+  "fields": {
+    "alias": "BE",
+    "country": "BE"
+  },
+  "model": "stats.countryalias",
+  "pk": 20
+},
+{
+  "fields": {
+    "alias": "BF",
+    "country": "BF"
+  },
+  "model": "stats.countryalias",
+  "pk": 21
+},
+{
+  "fields": {
+    "alias": "BG",
+    "country": "BG"
+  },
+  "model": "stats.countryalias",
+  "pk": 22
+},
+{
+  "fields": {
+    "alias": "BH",
+    "country": "BH"
+  },
+  "model": "stats.countryalias",
+  "pk": 23
+},
+{
+  "fields": {
+    "alias": "BI",
+    "country": "BI"
+  },
+  "model": "stats.countryalias",
+  "pk": 24
+},
+{
+  "fields": {
+    "alias": "BJ",
+    "country": "BJ"
+  },
+  "model": "stats.countryalias",
+  "pk": 25
+},
+{
+  "fields": {
+    "alias": "BL",
+    "country": "BL"
+  },
+  "model": "stats.countryalias",
+  "pk": 26
+},
+{
+  "fields": {
+    "alias": "BM",
+    "country": "BM"
+  },
+  "model": "stats.countryalias",
+  "pk": 27
+},
+{
+  "fields": {
+    "alias": "BN",
+    "country": "BN"
+  },
+  "model": "stats.countryalias",
+  "pk": 28
+},
+{
+  "fields": {
+    "alias": "BO",
+    "country": "BO"
+  },
+  "model": "stats.countryalias",
+  "pk": 29
+},
+{
+  "fields": {
+    "alias": "BQ",
+    "country": "BQ"
+  },
+  "model": "stats.countryalias",
+  "pk": 30
+},
+{
+  "fields": {
+    "alias": "BR",
+    "country": "BR"
+  },
+  "model": "stats.countryalias",
+  "pk": 31
+},
+{
+  "fields": {
+    "alias": "BS",
+    "country": "BS"
+  },
+  "model": "stats.countryalias",
+  "pk": 32
+},
+{
+  "fields": {
+    "alias": "BT",
+    "country": "BT"
+  },
+  "model": "stats.countryalias",
+  "pk": 33
+},
+{
+  "fields": {
+    "alias": "BV",
+    "country": "BV"
+  },
+  "model": "stats.countryalias",
+  "pk": 34
+},
+{
+  "fields": {
+    "alias": "BW",
+    "country": "BW"
+  },
+  "model": "stats.countryalias",
+  "pk": 35
+},
+{
+  "fields": {
+    "alias": "BY",
+    "country": "BY"
+  },
+  "model": "stats.countryalias",
+  "pk": 36
+},
+{
+  "fields": {
+    "alias": "BZ",
+    "country": "BZ"
+  },
+  "model": "stats.countryalias",
+  "pk": 37
+},
+{
+  "fields": {
+    "alias": "CA",
+    "country": "CA"
+  },
+  "model": "stats.countryalias",
+  "pk": 38
+},
+{
+  "fields": {
+    "alias": "CC",
+    "country": "CC"
+  },
+  "model": "stats.countryalias",
+  "pk": 39
+},
+{
+  "fields": {
+    "alias": "CD",
+    "country": "CD"
+  },
+  "model": "stats.countryalias",
+  "pk": 40
+},
+{
+  "fields": {
+    "alias": "CF",
+    "country": "CF"
+  },
+  "model": "stats.countryalias",
+  "pk": 41
+},
+{
+  "fields": {
+    "alias": "CG",
+    "country": "CG"
+  },
+  "model": "stats.countryalias",
+  "pk": 42
+},
+{
+  "fields": {
+    "alias": "CH",
+    "country": "CH"
+  },
+  "model": "stats.countryalias",
+  "pk": 43
+},
+{
+  "fields": {
+    "alias": "CI",
+    "country": "CI"
+  },
+  "model": "stats.countryalias",
+  "pk": 44
+},
+{
+  "fields": {
+    "alias": "CK",
+    "country": "CK"
+  },
+  "model": "stats.countryalias",
+  "pk": 45
+},
+{
+  "fields": {
+    "alias": "CL",
+    "country": "CL"
+  },
+  "model": "stats.countryalias",
+  "pk": 46
+},
+{
+  "fields": {
+    "alias": "CM",
+    "country": "CM"
+  },
+  "model": "stats.countryalias",
+  "pk": 47
+},
+{
+  "fields": {
+    "alias": "CN",
+    "country": "CN"
+  },
+  "model": "stats.countryalias",
+  "pk": 48
+},
+{
+  "fields": {
+    "alias": "CO",
+    "country": "CO"
+  },
+  "model": "stats.countryalias",
+  "pk": 49
+},
+{
+  "fields": {
+    "alias": "CR",
+    "country": "CR"
+  },
+  "model": "stats.countryalias",
+  "pk": 50
+},
+{
+  "fields": {
+    "alias": "CU",
+    "country": "CU"
+  },
+  "model": "stats.countryalias",
+  "pk": 51
+},
+{
+  "fields": {
+    "alias": "CV",
+    "country": "CV"
+  },
+  "model": "stats.countryalias",
+  "pk": 52
+},
+{
+  "fields": {
+    "alias": "CW",
+    "country": "CW"
+  },
+  "model": "stats.countryalias",
+  "pk": 53
+},
+{
+  "fields": {
+    "alias": "CX",
+    "country": "CX"
+  },
+  "model": "stats.countryalias",
+  "pk": 54
+},
+{
+  "fields": {
+    "alias": "CY",
+    "country": "CY"
+  },
+  "model": "stats.countryalias",
+  "pk": 55
+},
+{
+  "fields": {
+    "alias": "CZ",
+    "country": "CZ"
+  },
+  "model": "stats.countryalias",
+  "pk": 56
+},
+{
+  "fields": {
+    "alias": "DE",
+    "country": "DE"
+  },
+  "model": "stats.countryalias",
+  "pk": 57
+},
+{
+  "fields": {
+    "alias": "DJ",
+    "country": "DJ"
+  },
+  "model": "stats.countryalias",
+  "pk": 58
+},
+{
+  "fields": {
+    "alias": "DK",
+    "country": "DK"
+  },
+  "model": "stats.countryalias",
+  "pk": 59
+},
+{
+  "fields": {
+    "alias": "DM",
+    "country": "DM"
+  },
+  "model": "stats.countryalias",
+  "pk": 60
+},
+{
+  "fields": {
+    "alias": "DO",
+    "country": "DO"
+  },
+  "model": "stats.countryalias",
+  "pk": 61
+},
+{
+  "fields": {
+    "alias": "DZ",
+    "country": "DZ"
+  },
+  "model": "stats.countryalias",
+  "pk": 62
+},
+{
+  "fields": {
+    "alias": "EC",
+    "country": "EC"
+  },
+  "model": "stats.countryalias",
+  "pk": 63
+},
+{
+  "fields": {
+    "alias": "EE",
+    "country": "EE"
+  },
+  "model": "stats.countryalias",
+  "pk": 64
+},
+{
+  "fields": {
+    "alias": "EG",
+    "country": "EG"
+  },
+  "model": "stats.countryalias",
+  "pk": 65
+},
+{
+  "fields": {
+    "alias": "EH",
+    "country": "EH"
+  },
+  "model": "stats.countryalias",
+  "pk": 66
+},
+{
+  "fields": {
+    "alias": "ER",
+    "country": "ER"
+  },
+  "model": "stats.countryalias",
+  "pk": 67
+},
+{
+  "fields": {
+    "alias": "ES",
+    "country": "ES"
+  },
+  "model": "stats.countryalias",
+  "pk": 68
+},
+{
+  "fields": {
+    "alias": "ET",
+    "country": "ET"
+  },
+  "model": "stats.countryalias",
+  "pk": 69
+},
+{
+  "fields": {
+    "alias": "FI",
+    "country": "FI"
+  },
+  "model": "stats.countryalias",
+  "pk": 70
+},
+{
+  "fields": {
+    "alias": "FJ",
+    "country": "FJ"
+  },
+  "model": "stats.countryalias",
+  "pk": 71
+},
+{
+  "fields": {
+    "alias": "FK",
+    "country": "FK"
+  },
+  "model": "stats.countryalias",
+  "pk": 72
+},
+{
+  "fields": {
+    "alias": "FM",
+    "country": "FM"
+  },
+  "model": "stats.countryalias",
+  "pk": 73
+},
+{
+  "fields": {
+    "alias": "FO",
+    "country": "FO"
+  },
+  "model": "stats.countryalias",
+  "pk": 74
+},
+{
+  "fields": {
+    "alias": "FR",
+    "country": "FR"
+  },
+  "model": "stats.countryalias",
+  "pk": 75
+},
+{
+  "fields": {
+    "alias": "GA",
+    "country": "GA"
+  },
+  "model": "stats.countryalias",
+  "pk": 76
+},
+{
+  "fields": {
+    "alias": "GB",
+    "country": "GB"
+  },
+  "model": "stats.countryalias",
+  "pk": 77
+},
+{
+  "fields": {
+    "alias": "GD",
+    "country": "GD"
+  },
+  "model": "stats.countryalias",
+  "pk": 78
+},
+{
+  "fields": {
+    "alias": "GE",
+    "country": "GE"
+  },
+  "model": "stats.countryalias",
+  "pk": 79
+},
+{
+  "fields": {
+    "alias": "GF",
+    "country": "GF"
+  },
+  "model": "stats.countryalias",
+  "pk": 80
+},
+{
+  "fields": {
+    "alias": "GG",
+    "country": "GG"
+  },
+  "model": "stats.countryalias",
+  "pk": 81
+},
+{
+  "fields": {
+    "alias": "GH",
+    "country": "GH"
+  },
+  "model": "stats.countryalias",
+  "pk": 82
+},
+{
+  "fields": {
+    "alias": "GI",
+    "country": "GI"
+  },
+  "model": "stats.countryalias",
+  "pk": 83
+},
+{
+  "fields": {
+    "alias": "GL",
+    "country": "GL"
+  },
+  "model": "stats.countryalias",
+  "pk": 84
+},
+{
+  "fields": {
+    "alias": "GM",
+    "country": "GM"
+  },
+  "model": "stats.countryalias",
+  "pk": 85
+},
+{
+  "fields": {
+    "alias": "GN",
+    "country": "GN"
+  },
+  "model": "stats.countryalias",
+  "pk": 86
+},
+{
+  "fields": {
+    "alias": "GP",
+    "country": "GP"
+  },
+  "model": "stats.countryalias",
+  "pk": 87
+},
+{
+  "fields": {
+    "alias": "GQ",
+    "country": "GQ"
+  },
+  "model": "stats.countryalias",
+  "pk": 88
+},
+{
+  "fields": {
+    "alias": "GR",
+    "country": "GR"
+  },
+  "model": "stats.countryalias",
+  "pk": 89
+},
+{
+  "fields": {
+    "alias": "GS",
+    "country": "GS"
+  },
+  "model": "stats.countryalias",
+  "pk": 90
+},
+{
+  "fields": {
+    "alias": "GT",
+    "country": "GT"
+  },
+  "model": "stats.countryalias",
+  "pk": 91
+},
+{
+  "fields": {
+    "alias": "GU",
+    "country": "GU"
+  },
+  "model": "stats.countryalias",
+  "pk": 92
+},
+{
+  "fields": {
+    "alias": "GW",
+    "country": "GW"
+  },
+  "model": "stats.countryalias",
+  "pk": 93
+},
+{
+  "fields": {
+    "alias": "GY",
+    "country": "GY"
+  },
+  "model": "stats.countryalias",
+  "pk": 94
+},
+{
+  "fields": {
+    "alias": "HK",
+    "country": "HK"
+  },
+  "model": "stats.countryalias",
+  "pk": 95
+},
+{
+  "fields": {
+    "alias": "HM",
+    "country": "HM"
+  },
+  "model": "stats.countryalias",
+  "pk": 96
+},
+{
+  "fields": {
+    "alias": "HN",
+    "country": "HN"
+  },
+  "model": "stats.countryalias",
+  "pk": 97
+},
+{
+  "fields": {
+    "alias": "HR",
+    "country": "HR"
+  },
+  "model": "stats.countryalias",
+  "pk": 98
+},
+{
+  "fields": {
+    "alias": "HT",
+    "country": "HT"
+  },
+  "model": "stats.countryalias",
+  "pk": 99
+},
+{
+  "fields": {
+    "alias": "HU",
+    "country": "HU"
+  },
+  "model": "stats.countryalias",
+  "pk": 100
+},
+{
+  "fields": {
+    "alias": "ID",
+    "country": "ID"
+  },
+  "model": "stats.countryalias",
+  "pk": 101
+},
+{
+  "fields": {
+    "alias": "IE",
+    "country": "IE"
+  },
+  "model": "stats.countryalias",
+  "pk": 102
+},
+{
+  "fields": {
+    "alias": "IL",
+    "country": "IL"
+  },
+  "model": "stats.countryalias",
+  "pk": 103
+},
+{
+  "fields": {
+    "alias": "IM",
+    "country": "IM"
+  },
+  "model": "stats.countryalias",
+  "pk": 104
+},
+{
+  "fields": {
+    "alias": "IN",
+    "country": "IN"
+  },
+  "model": "stats.countryalias",
+  "pk": 105
+},
+{
+  "fields": {
+    "alias": "IO",
+    "country": "IO"
+  },
+  "model": "stats.countryalias",
+  "pk": 106
+},
+{
+  "fields": {
+    "alias": "IQ",
+    "country": "IQ"
+  },
+  "model": "stats.countryalias",
+  "pk": 107
+},
+{
+  "fields": {
+    "alias": "IR",
+    "country": "IR"
+  },
+  "model": "stats.countryalias",
+  "pk": 108
+},
+{
+  "fields": {
+    "alias": "IS",
+    "country": "IS"
+  },
+  "model": "stats.countryalias",
+  "pk": 109
+},
+{
+  "fields": {
+    "alias": "IT",
+    "country": "IT"
+  },
+  "model": "stats.countryalias",
+  "pk": 110
+},
+{
+  "fields": {
+    "alias": "JE",
+    "country": "JE"
+  },
+  "model": "stats.countryalias",
+  "pk": 111
+},
+{
+  "fields": {
+    "alias": "JM",
+    "country": "JM"
+  },
+  "model": "stats.countryalias",
+  "pk": 112
+},
+{
+  "fields": {
+    "alias": "JO",
+    "country": "JO"
+  },
+  "model": "stats.countryalias",
+  "pk": 113
+},
+{
+  "fields": {
+    "alias": "JP",
+    "country": "JP"
+  },
+  "model": "stats.countryalias",
+  "pk": 114
+},
+{
+  "fields": {
+    "alias": "KE",
+    "country": "KE"
+  },
+  "model": "stats.countryalias",
+  "pk": 115
+},
+{
+  "fields": {
+    "alias": "KG",
+    "country": "KG"
+  },
+  "model": "stats.countryalias",
+  "pk": 116
+},
+{
+  "fields": {
+    "alias": "KH",
+    "country": "KH"
+  },
+  "model": "stats.countryalias",
+  "pk": 117
+},
+{
+  "fields": {
+    "alias": "KI",
+    "country": "KI"
+  },
+  "model": "stats.countryalias",
+  "pk": 118
+},
+{
+  "fields": {
+    "alias": "KM",
+    "country": "KM"
+  },
+  "model": "stats.countryalias",
+  "pk": 119
+},
+{
+  "fields": {
+    "alias": "KN",
+    "country": "KN"
+  },
+  "model": "stats.countryalias",
+  "pk": 120
+},
+{
+  "fields": {
+    "alias": "KP",
+    "country": "KP"
+  },
+  "model": "stats.countryalias",
+  "pk": 121
+},
+{
+  "fields": {
+    "alias": "KR",
+    "country": "KR"
+  },
+  "model": "stats.countryalias",
+  "pk": 122
+},
+{
+  "fields": {
+    "alias": "KW",
+    "country": "KW"
+  },
+  "model": "stats.countryalias",
+  "pk": 123
+},
+{
+  "fields": {
+    "alias": "KY",
+    "country": "KY"
+  },
+  "model": "stats.countryalias",
+  "pk": 124
+},
+{
+  "fields": {
+    "alias": "KZ",
+    "country": "KZ"
+  },
+  "model": "stats.countryalias",
+  "pk": 125
+},
+{
+  "fields": {
+    "alias": "LA",
+    "country": "LA"
+  },
+  "model": "stats.countryalias",
+  "pk": 126
+},
+{
+  "fields": {
+    "alias": "LB",
+    "country": "LB"
+  },
+  "model": "stats.countryalias",
+  "pk": 127
+},
+{
+  "fields": {
+    "alias": "LC",
+    "country": "LC"
+  },
+  "model": "stats.countryalias",
+  "pk": 128
+},
+{
+  "fields": {
+    "alias": "LI",
+    "country": "LI"
+  },
+  "model": "stats.countryalias",
+  "pk": 129
+},
+{
+  "fields": {
+    "alias": "LK",
+    "country": "LK"
+  },
+  "model": "stats.countryalias",
+  "pk": 130
+},
+{
+  "fields": {
+    "alias": "LR",
+    "country": "LR"
+  },
+  "model": "stats.countryalias",
+  "pk": 131
+},
+{
+  "fields": {
+    "alias": "LS",
+    "country": "LS"
+  },
+  "model": "stats.countryalias",
+  "pk": 132
+},
+{
+  "fields": {
+    "alias": "LT",
+    "country": "LT"
+  },
+  "model": "stats.countryalias",
+  "pk": 133
+},
+{
+  "fields": {
+    "alias": "LU",
+    "country": "LU"
+  },
+  "model": "stats.countryalias",
+  "pk": 134
+},
+{
+  "fields": {
+    "alias": "LV",
+    "country": "LV"
+  },
+  "model": "stats.countryalias",
+  "pk": 135
+},
+{
+  "fields": {
+    "alias": "LY",
+    "country": "LY"
+  },
+  "model": "stats.countryalias",
+  "pk": 136
+},
+{
+  "fields": {
+    "alias": "MA",
+    "country": "MA"
+  },
+  "model": "stats.countryalias",
+  "pk": 137
+},
+{
+  "fields": {
+    "alias": "MC",
+    "country": "MC"
+  },
+  "model": "stats.countryalias",
+  "pk": 138
+},
+{
+  "fields": {
+    "alias": "MD",
+    "country": "MD"
+  },
+  "model": "stats.countryalias",
+  "pk": 139
+},
+{
+  "fields": {
+    "alias": "ME",
+    "country": "ME"
+  },
+  "model": "stats.countryalias",
+  "pk": 140
+},
+{
+  "fields": {
+    "alias": "MF",
+    "country": "MF"
+  },
+  "model": "stats.countryalias",
+  "pk": 141
+},
+{
+  "fields": {
+    "alias": "MG",
+    "country": "MG"
+  },
+  "model": "stats.countryalias",
+  "pk": 142
+},
+{
+  "fields": {
+    "alias": "MH",
+    "country": "MH"
+  },
+  "model": "stats.countryalias",
+  "pk": 143
+},
+{
+  "fields": {
+    "alias": "MK",
+    "country": "MK"
+  },
+  "model": "stats.countryalias",
+  "pk": 144
+},
+{
+  "fields": {
+    "alias": "ML",
+    "country": "ML"
+  },
+  "model": "stats.countryalias",
+  "pk": 145
+},
+{
+  "fields": {
+    "alias": "MM",
+    "country": "MM"
+  },
+  "model": "stats.countryalias",
+  "pk": 146
+},
+{
+  "fields": {
+    "alias": "MN",
+    "country": "MN"
+  },
+  "model": "stats.countryalias",
+  "pk": 147
+},
+{
+  "fields": {
+    "alias": "MO",
+    "country": "MO"
+  },
+  "model": "stats.countryalias",
+  "pk": 148
+},
+{
+  "fields": {
+    "alias": "MP",
+    "country": "MP"
+  },
+  "model": "stats.countryalias",
+  "pk": 149
+},
+{
+  "fields": {
+    "alias": "MQ",
+    "country": "MQ"
+  },
+  "model": "stats.countryalias",
+  "pk": 150
+},
+{
+  "fields": {
+    "alias": "MR",
+    "country": "MR"
+  },
+  "model": "stats.countryalias",
+  "pk": 151
+},
+{
+  "fields": {
+    "alias": "MS",
+    "country": "MS"
+  },
+  "model": "stats.countryalias",
+  "pk": 152
+},
+{
+  "fields": {
+    "alias": "MT",
+    "country": "MT"
+  },
+  "model": "stats.countryalias",
+  "pk": 153
+},
+{
+  "fields": {
+    "alias": "MU",
+    "country": "MU"
+  },
+  "model": "stats.countryalias",
+  "pk": 154
+},
+{
+  "fields": {
+    "alias": "MV",
+    "country": "MV"
+  },
+  "model": "stats.countryalias",
+  "pk": 155
+},
+{
+  "fields": {
+    "alias": "MW",
+    "country": "MW"
+  },
+  "model": "stats.countryalias",
+  "pk": 156
+},
+{
+  "fields": {
+    "alias": "MX",
+    "country": "MX"
+  },
+  "model": "stats.countryalias",
+  "pk": 157
+},
+{
+  "fields": {
+    "alias": "MY",
+    "country": "MY"
+  },
+  "model": "stats.countryalias",
+  "pk": 158
+},
+{
+  "fields": {
+    "alias": "MZ",
+    "country": "MZ"
+  },
+  "model": "stats.countryalias",
+  "pk": 159
+},
+{
+  "fields": {
+    "alias": "NA",
+    "country": "NA"
+  },
+  "model": "stats.countryalias",
+  "pk": 160
+},
+{
+  "fields": {
+    "alias": "NC",
+    "country": "NC"
+  },
+  "model": "stats.countryalias",
+  "pk": 161
+},
+{
+  "fields": {
+    "alias": "NE",
+    "country": "NE"
+  },
+  "model": "stats.countryalias",
+  "pk": 162
+},
+{
+  "fields": {
+    "alias": "NF",
+    "country": "NF"
+  },
+  "model": "stats.countryalias",
+  "pk": 163
+},
+{
+  "fields": {
+    "alias": "NG",
+    "country": "NG"
+  },
+  "model": "stats.countryalias",
+  "pk": 164
+},
+{
+  "fields": {
+    "alias": "NI",
+    "country": "NI"
+  },
+  "model": "stats.countryalias",
+  "pk": 165
+},
+{
+  "fields": {
+    "alias": "NL",
+    "country": "NL"
+  },
+  "model": "stats.countryalias",
+  "pk": 166
+},
+{
+  "fields": {
+    "alias": "NO",
+    "country": "NO"
+  },
+  "model": "stats.countryalias",
+  "pk": 167
+},
+{
+  "fields": {
+    "alias": "NP",
+    "country": "NP"
+  },
+  "model": "stats.countryalias",
+  "pk": 168
+},
+{
+  "fields": {
+    "alias": "NR",
+    "country": "NR"
+  },
+  "model": "stats.countryalias",
+  "pk": 169
+},
+{
+  "fields": {
+    "alias": "NU",
+    "country": "NU"
+  },
+  "model": "stats.countryalias",
+  "pk": 170
+},
+{
+  "fields": {
+    "alias": "NZ",
+    "country": "NZ"
+  },
+  "model": "stats.countryalias",
+  "pk": 171
+},
+{
+  "fields": {
+    "alias": "OM",
+    "country": "OM"
+  },
+  "model": "stats.countryalias",
+  "pk": 172
+},
+{
+  "fields": {
+    "alias": "PA",
+    "country": "PA"
+  },
+  "model": "stats.countryalias",
+  "pk": 173
+},
+{
+  "fields": {
+    "alias": "PE",
+    "country": "PE"
+  },
+  "model": "stats.countryalias",
+  "pk": 174
+},
+{
+  "fields": {
+    "alias": "PF",
+    "country": "PF"
+  },
+  "model": "stats.countryalias",
+  "pk": 175
+},
+{
+  "fields": {
+    "alias": "PG",
+    "country": "PG"
+  },
+  "model": "stats.countryalias",
+  "pk": 176
+},
+{
+  "fields": {
+    "alias": "PH",
+    "country": "PH"
+  },
+  "model": "stats.countryalias",
+  "pk": 177
+},
+{
+  "fields": {
+    "alias": "PK",
+    "country": "PK"
+  },
+  "model": "stats.countryalias",
+  "pk": 178
+},
+{
+  "fields": {
+    "alias": "PL",
+    "country": "PL"
+  },
+  "model": "stats.countryalias",
+  "pk": 179
+},
+{
+  "fields": {
+    "alias": "PM",
+    "country": "PM"
+  },
+  "model": "stats.countryalias",
+  "pk": 180
+},
+{
+  "fields": {
+    "alias": "PN",
+    "country": "PN"
+  },
+  "model": "stats.countryalias",
+  "pk": 181
+},
+{
+  "fields": {
+    "alias": "PR",
+    "country": "PR"
+  },
+  "model": "stats.countryalias",
+  "pk": 182
+},
+{
+  "fields": {
+    "alias": "PS",
+    "country": "PS"
+  },
+  "model": "stats.countryalias",
+  "pk": 183
+},
+{
+  "fields": {
+    "alias": "PT",
+    "country": "PT"
+  },
+  "model": "stats.countryalias",
+  "pk": 184
+},
+{
+  "fields": {
+    "alias": "PW",
+    "country": "PW"
+  },
+  "model": "stats.countryalias",
+  "pk": 185
+},
+{
+  "fields": {
+    "alias": "PY",
+    "country": "PY"
+  },
+  "model": "stats.countryalias",
+  "pk": 186
+},
+{
+  "fields": {
+    "alias": "QA",
+    "country": "QA"
+  },
+  "model": "stats.countryalias",
+  "pk": 187
+},
+{
+  "fields": {
+    "alias": "RE",
+    "country": "RE"
+  },
+  "model": "stats.countryalias",
+  "pk": 188
+},
+{
+  "fields": {
+    "alias": "RO",
+    "country": "RO"
+  },
+  "model": "stats.countryalias",
+  "pk": 189
+},
+{
+  "fields": {
+    "alias": "RS",
+    "country": "RS"
+  },
+  "model": "stats.countryalias",
+  "pk": 190
+},
+{
+  "fields": {
+    "alias": "RU",
+    "country": "RU"
+  },
+  "model": "stats.countryalias",
+  "pk": 191
+},
+{
+  "fields": {
+    "alias": "RW",
+    "country": "RW"
+  },
+  "model": "stats.countryalias",
+  "pk": 192
+},
+{
+  "fields": {
+    "alias": "SA",
+    "country": "SA"
+  },
+  "model": "stats.countryalias",
+  "pk": 193
+},
+{
+  "fields": {
+    "alias": "SB",
+    "country": "SB"
+  },
+  "model": "stats.countryalias",
+  "pk": 194
+},
+{
+  "fields": {
+    "alias": "SC",
+    "country": "SC"
+  },
+  "model": "stats.countryalias",
+  "pk": 195
+},
+{
+  "fields": {
+    "alias": "SD",
+    "country": "SD"
+  },
+  "model": "stats.countryalias",
+  "pk": 196
+},
+{
+  "fields": {
+    "alias": "SE",
+    "country": "SE"
+  },
+  "model": "stats.countryalias",
+  "pk": 197
+},
+{
+  "fields": {
+    "alias": "SG",
+    "country": "SG"
+  },
+  "model": "stats.countryalias",
+  "pk": 198
+},
+{
+  "fields": {
+    "alias": "SH",
+    "country": "SH"
+  },
+  "model": "stats.countryalias",
+  "pk": 199
+},
+{
+  "fields": {
+    "alias": "SI",
+    "country": "SI"
+  },
+  "model": "stats.countryalias",
+  "pk": 200
+},
+{
+  "fields": {
+    "alias": "SJ",
+    "country": "SJ"
+  },
+  "model": "stats.countryalias",
+  "pk": 201
+},
+{
+  "fields": {
+    "alias": "SK",
+    "country": "SK"
+  },
+  "model": "stats.countryalias",
+  "pk": 202
+},
+{
+  "fields": {
+    "alias": "SL",
+    "country": "SL"
+  },
+  "model": "stats.countryalias",
+  "pk": 203
+},
+{
+  "fields": {
+    "alias": "SM",
+    "country": "SM"
+  },
+  "model": "stats.countryalias",
+  "pk": 204
+},
+{
+  "fields": {
+    "alias": "SN",
+    "country": "SN"
+  },
+  "model": "stats.countryalias",
+  "pk": 205
+},
+{
+  "fields": {
+    "alias": "SO",
+    "country": "SO"
+  },
+  "model": "stats.countryalias",
+  "pk": 206
+},
+{
+  "fields": {
+    "alias": "SR",
+    "country": "SR"
+  },
+  "model": "stats.countryalias",
+  "pk": 207
+},
+{
+  "fields": {
+    "alias": "SS",
+    "country": "SS"
+  },
+  "model": "stats.countryalias",
+  "pk": 208
+},
+{
+  "fields": {
+    "alias": "ST",
+    "country": "ST"
+  },
+  "model": "stats.countryalias",
+  "pk": 209
+},
+{
+  "fields": {
+    "alias": "SV",
+    "country": "SV"
+  },
+  "model": "stats.countryalias",
+  "pk": 210
+},
+{
+  "fields": {
+    "alias": "SX",
+    "country": "SX"
+  },
+  "model": "stats.countryalias",
+  "pk": 211
+},
+{
+  "fields": {
+    "alias": "SY",
+    "country": "SY"
+  },
+  "model": "stats.countryalias",
+  "pk": 212
+},
+{
+  "fields": {
+    "alias": "SZ",
+    "country": "SZ"
+  },
+  "model": "stats.countryalias",
+  "pk": 213
+},
+{
+  "fields": {
+    "alias": "TC",
+    "country": "TC"
+  },
+  "model": "stats.countryalias",
+  "pk": 214
+},
+{
+  "fields": {
+    "alias": "TD",
+    "country": "TD"
+  },
+  "model": "stats.countryalias",
+  "pk": 215
+},
+{
+  "fields": {
+    "alias": "TF",
+    "country": "TF"
+  },
+  "model": "stats.countryalias",
+  "pk": 216
+},
+{
+  "fields": {
+    "alias": "TG",
+    "country": "TG"
+  },
+  "model": "stats.countryalias",
+  "pk": 217
+},
+{
+  "fields": {
+    "alias": "TH",
+    "country": "TH"
+  },
+  "model": "stats.countryalias",
+  "pk": 218
+},
+{
+  "fields": {
+    "alias": "TJ",
+    "country": "TJ"
+  },
+  "model": "stats.countryalias",
+  "pk": 219
+},
+{
+  "fields": {
+    "alias": "TK",
+    "country": "TK"
+  },
+  "model": "stats.countryalias",
+  "pk": 220
+},
+{
+  "fields": {
+    "alias": "TL",
+    "country": "TL"
+  },
+  "model": "stats.countryalias",
+  "pk": 221
+},
+{
+  "fields": {
+    "alias": "TM",
+    "country": "TM"
+  },
+  "model": "stats.countryalias",
+  "pk": 222
+},
+{
+  "fields": {
+    "alias": "TN",
+    "country": "TN"
+  },
+  "model": "stats.countryalias",
+  "pk": 223
+},
+{
+  "fields": {
+    "alias": "TO",
+    "country": "TO"
+  },
+  "model": "stats.countryalias",
+  "pk": 224
+},
+{
+  "fields": {
+    "alias": "TR",
+    "country": "TR"
+  },
+  "model": "stats.countryalias",
+  "pk": 225
+},
+{
+  "fields": {
+    "alias": "TT",
+    "country": "TT"
+  },
+  "model": "stats.countryalias",
+  "pk": 226
+},
+{
+  "fields": {
+    "alias": "TV",
+    "country": "TV"
+  },
+  "model": "stats.countryalias",
+  "pk": 227
+},
+{
+  "fields": {
+    "alias": "TW",
+    "country": "TW"
+  },
+  "model": "stats.countryalias",
+  "pk": 228
+},
+{
+  "fields": {
+    "alias": "TZ",
+    "country": "TZ"
+  },
+  "model": "stats.countryalias",
+  "pk": 229
+},
+{
+  "fields": {
+    "alias": "UA",
+    "country": "UA"
+  },
+  "model": "stats.countryalias",
+  "pk": 230
+},
+{
+  "fields": {
+    "alias": "UG",
+    "country": "UG"
+  },
+  "model": "stats.countryalias",
+  "pk": 231
+},
+{
+  "fields": {
+    "alias": "UM",
+    "country": "UM"
+  },
+  "model": "stats.countryalias",
+  "pk": 232
+},
+{
+  "fields": {
+    "alias": "US",
+    "country": "US"
+  },
+  "model": "stats.countryalias",
+  "pk": 233
+},
+{
+  "fields": {
+    "alias": "UY",
+    "country": "UY"
+  },
+  "model": "stats.countryalias",
+  "pk": 234
+},
+{
+  "fields": {
+    "alias": "UZ",
+    "country": "UZ"
+  },
+  "model": "stats.countryalias",
+  "pk": 235
+},
+{
+  "fields": {
+    "alias": "VA",
+    "country": "VA"
+  },
+  "model": "stats.countryalias",
+  "pk": 236
+},
+{
+  "fields": {
+    "alias": "VC",
+    "country": "VC"
+  },
+  "model": "stats.countryalias",
+  "pk": 237
+},
+{
+  "fields": {
+    "alias": "VE",
+    "country": "VE"
+  },
+  "model": "stats.countryalias",
+  "pk": 238
+},
+{
+  "fields": {
+    "alias": "VG",
+    "country": "VG"
+  },
+  "model": "stats.countryalias",
+  "pk": 239
+},
+{
+  "fields": {
+    "alias": "VI",
+    "country": "VI"
+  },
+  "model": "stats.countryalias",
+  "pk": 240
+},
+{
+  "fields": {
+    "alias": "VN",
+    "country": "VN"
+  },
+  "model": "stats.countryalias",
+  "pk": 241
+},
+{
+  "fields": {
+    "alias": "VU",
+    "country": "VU"
+  },
+  "model": "stats.countryalias",
+  "pk": 242
+},
+{
+  "fields": {
+    "alias": "WF",
+    "country": "WF"
+  },
+  "model": "stats.countryalias",
+  "pk": 243
+},
+{
+  "fields": {
+    "alias": "WS",
+    "country": "WS"
+  },
+  "model": "stats.countryalias",
+  "pk": 244
+},
+{
+  "fields": {
+    "alias": "YE",
+    "country": "YE"
+  },
+  "model": "stats.countryalias",
+  "pk": 245
+},
+{
+  "fields": {
+    "alias": "YT",
+    "country": "YT"
+  },
+  "model": "stats.countryalias",
+  "pk": 246
+},
+{
+  "fields": {
+    "alias": "ZA",
+    "country": "ZA"
+  },
+  "model": "stats.countryalias",
+  "pk": 247
+},
+{
+  "fields": {
+    "alias": "ZM",
+    "country": "ZM"
+  },
+  "model": "stats.countryalias",
+  "pk": 248
+},
+{
+  "fields": {
+    "alias": "ZW",
+    "country": "ZW"
+  },
+  "model": "stats.countryalias",
+  "pk": 249
+},
+{
+  "fields": {
+    "alias": "russian federation",
+    "country": "RU"
+  },
+  "model": "stats.countryalias",
+  "pk": 250
+},
+{
+  "fields": {
+    "alias": "p. r. china",
+    "country": "CN"
+  },
+  "model": "stats.countryalias",
+  "pk": 251
+},
+{
+  "fields": {
+    "alias": "p.r. china",
+    "country": "CN"
+  },
+  "model": "stats.countryalias",
+  "pk": 252
+},
+{
+  "fields": {
+    "alias": "p.r.china",
+    "country": "CN"
+  },
+  "model": "stats.countryalias",
+  "pk": 253
+},
+{
+  "fields": {
+    "alias": "p.r china",
+    "country": "CN"
+  },
+  "model": "stats.countryalias",
+  "pk": 254
+},
+{
+  "fields": {
+    "alias": "p.r. of china",
+    "country": "CN"
+  },
+  "model": "stats.countryalias",
+  "pk": 255
+},
+{
+  "fields": {
+    "alias": "PRC",
+    "country": "CN"
+  },
+  "model": "stats.countryalias",
+  "pk": 256
+},
+{
+  "fields": {
+    "alias": "P.R.C",
+    "country": "CN"
+  },
+  "model": "stats.countryalias",
+  "pk": 257
+},
+{
+  "fields": {
+    "alias": "P.R.C.",
+    "country": "CN"
+  },
+  "model": "stats.countryalias",
+  "pk": 258
+},
+{
+  "fields": {
+    "alias": "beijing",
+    "country": "CN"
+  },
+  "model": "stats.countryalias",
+  "pk": 259
+},
+{
+  "fields": {
+    "alias": "shenzhen",
+    "country": "CN"
+  },
+  "model": "stats.countryalias",
+  "pk": 260
+},
+{
+  "fields": {
+    "alias": "R.O.C.",
+    "country": "TW"
+  },
+  "model": "stats.countryalias",
+  "pk": 261
+},
+{
+  "fields": {
+    "alias": "usa",
+    "country": "US"
+  },
+  "model": "stats.countryalias",
+  "pk": 262
+},
+{
+  "fields": {
+    "alias": "UAS",
+    "country": "US"
+  },
+  "model": "stats.countryalias",
+  "pk": 263
+},
+{
+  "fields": {
+    "alias": "USA.",
+    "country": "US"
+  },
+  "model": "stats.countryalias",
+  "pk": 264
+},
+{
+  "fields": {
+    "alias": "u.s.a.",
+    "country": "US"
+  },
+  "model": "stats.countryalias",
+  "pk": 265
+},
+{
+  "fields": {
+    "alias": "u. s. a.",
+    "country": "US"
+  },
+  "model": "stats.countryalias",
+  "pk": 266
+},
+{
+  "fields": {
+    "alias": "u.s.a",
+    "country": "US"
+  },
+  "model": "stats.countryalias",
+  "pk": 267
+},
+{
+  "fields": {
+    "alias": "u.s.",
+    "country": "US"
+  },
+  "model": "stats.countryalias",
+  "pk": 268
+},
+{
+  "fields": {
+    "alias": "U.S",
+    "country": "GB"
+  },
+  "model": "stats.countryalias",
+  "pk": 269
+},
+{
+  "fields": {
+    "alias": "US of A",
+    "country": "US"
+  },
+  "model": "stats.countryalias",
+  "pk": 270
+},
+{
+  "fields": {
+    "alias": "united sates",
+    "country": "US"
+  },
+  "model": "stats.countryalias",
+  "pk": 271
+},
+{
+  "fields": {
+    "alias": "united state",
+    "country": "US"
+  },
+  "model": "stats.countryalias",
+  "pk": 272
+},
+{
+  "fields": {
+    "alias": "united states",
+    "country": "US"
+  },
+  "model": "stats.countryalias",
+  "pk": 273
+},
+{
+  "fields": {
+    "alias": "unites states",
+    "country": "US"
+  },
+  "model": "stats.countryalias",
+  "pk": 274
+},
+{
+  "fields": {
+    "alias": "texas",
+    "country": "US"
+  },
+  "model": "stats.countryalias",
+  "pk": 275
+},
+{
+  "fields": {
+    "alias": "UK",
+    "country": "GB"
+  },
+  "model": "stats.countryalias",
+  "pk": 276
+},
+{
+  "fields": {
+    "alias": "united kingcom",
+    "country": "GB"
+  },
+  "model": "stats.countryalias",
+  "pk": 277
+},
+{
+  "fields": {
+    "alias": "great britain",
+    "country": "GB"
+  },
+  "model": "stats.countryalias",
+  "pk": 278
+},
+{
+  "fields": {
+    "alias": "england",
+    "country": "GB"
+  },
+  "model": "stats.countryalias",
+  "pk": 279
+},
+{
+  "fields": {
+    "alias": "U.K.",
+    "country": "GB"
+  },
+  "model": "stats.countryalias",
+  "pk": 280
+},
+{
+  "fields": {
+    "alias": "U.K",
+    "country": "GB"
+  },
+  "model": "stats.countryalias",
+  "pk": 281
+},
+{
+  "fields": {
+    "alias": "scotland",
+    "country": "GB"
+  },
+  "model": "stats.countryalias",
+  "pk": 282
+},
+{
+  "fields": {
+    "alias": "republic of korea",
+    "country": "KR"
+  },
+  "model": "stats.countryalias",
+  "pk": 283
+},
+{
+  "fields": {
+    "alias": "korea",
+    "country": "KR"
+  },
+  "model": "stats.countryalias",
+  "pk": 284
+},
+{
+  "fields": {
+    "alias": "korea rep",
+    "country": "KR"
+  },
+  "model": "stats.countryalias",
+  "pk": 285
+},
+{
+  "fields": {
+    "alias": "korea (the republic of)",
+    "country": "KR"
+  },
+  "model": "stats.countryalias",
+  "pk": 286
+},
+{
+  "fields": {
+    "alias": "the netherlands",
+    "country": "NL"
+  },
+  "model": "stats.countryalias",
+  "pk": 287
+},
+{
+  "fields": {
+    "alias": "netherland",
+    "country": "NL"
+  },
+  "model": "stats.countryalias",
+  "pk": 288
+},
+{
+  "fields": {
+    "alias": "danmark",
+    "country": "DK"
+  },
+  "model": "stats.countryalias",
+  "pk": 289
+},
+{
+  "fields": {
+    "alias": "sweeden",
+    "country": "SE"
+  },
+  "model": "stats.countryalias",
+  "pk": 290
+},
+{
+  "fields": {
+    "alias": "swede",
+    "country": "SE"
+  },
+  "model": "stats.countryalias",
+  "pk": 291
+},
+{
+  "fields": {
+    "alias": "belgique",
+    "country": "BE"
+  },
+  "model": "stats.countryalias",
+  "pk": 292
+},
+{
+  "fields": {
+    "alias": "madrid",
+    "country": "ES"
+  },
+  "model": "stats.countryalias",
+  "pk": 293
+},
+{
+  "fields": {
+    "alias": "espana",
+    "country": "ES"
+  },
+  "model": "stats.countryalias",
+  "pk": 294
+},
+{
+  "fields": {
+    "alias": "hellas",
+    "country": "GR"
+  },
+  "model": "stats.countryalias",
+  "pk": 295
+},
+{
+  "fields": {
+    "alias": "gemany",
+    "country": "DE"
+  },
+  "model": "stats.countryalias",
+  "pk": 296
+},
+{
+  "fields": {
+    "alias": "deutschland",
+    "country": "DE"
+  },
+  "model": "stats.countryalias",
+  "pk": 297
+},
+{
+  "fields": {
+    "alias": "italia",
+    "country": "IT"
+  },
+  "model": "stats.countryalias",
+  "pk": 298
+},
+{
+  "fields": {
+    "alias": "isreal",
+    "country": "IL"
+  },
+  "model": "stats.countryalias",
+  "pk": 299
+},
+{
+  "fields": {
+    "alias": "tel aviv",
+    "country": "IL"
+  },
+  "model": "stats.countryalias",
+  "pk": 300
+},
+{
+  "fields": {
+    "alias": "UAE",
+    "country": "AE"
+  },
+  "model": "stats.countryalias",
+  "pk": 301
+},
+{
+  "fields": {
+    "alias": "grand-duchy of luxembourg",
+    "country": "LU"
+  },
+  "model": "stats.countryalias",
+  "pk": 302
+},
+{
+  "fields": {
+    "alias": "brasil",
+    "country": "BR"
+  },
+  "model": "stats.countryalias",
+  "pk": 303
+},
+{
+  "fields": {
+    "command": "xym",
+    "switch": "--version",
+    "time": "2020-07-09T00:12:56.528",
+    "used": true,
+    "version": "xym 0.4.8"
+  },
+  "model": "utils.versioninfo",
+  "pk": 1
+},
+{
+  "fields": {
+    "command": "pyang",
+    "switch": "--version",
+    "time": "2020-07-09T00:12:58.135",
+    "used": true,
+    "version": "pyang 2.2.1"
+  },
+  "model": "utils.versioninfo",
+  "pk": 2
+},
+{
+  "fields": {
+    "command": "yanglint",
+    "switch": "--version",
+    "time": "2020-07-09T00:12:58.398",
+    "used": true,
+    "version": "yanglint SO 1.6.7"
+  },
+  "model": "utils.versioninfo",
+  "pk": 3
+},
+{
+  "fields": {
+    "command": "xml2rfc",
+    "switch": "--version",
+    "time": "2020-07-09T00:13:00.193",
+    "used": true,
+    "version": "xml2rfc 2.46.0"
+  },
+  "model": "utils.versioninfo",
+  "pk": 4
+}
 ]
diff --git a/ietf/name/migrations/0013_extres.py b/ietf/name/migrations/0013_extres.py
new file mode 100644
index 000000000..931aed56d
--- /dev/null
+++ b/ietf/name/migrations/0013_extres.py
@@ -0,0 +1,51 @@
+# Copyright The IETF Trust 2020, All Rights Reserved
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.29 on 2020-03-19 13:56
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+import ietf.utils.models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('name', '0012_role_name_robots'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='ExtResourceName',
+            fields=[
+                ('slug', models.CharField(max_length=32, primary_key=True, serialize=False)),
+                ('name', models.CharField(max_length=255)),
+                ('desc', models.TextField(blank=True)),
+                ('used', models.BooleanField(default=True)),
+                ('order', models.IntegerField(default=0)),
+            ],
+            options={
+                'ordering': ['order', 'name'],
+                'abstract': False,
+            },
+        ),
+        migrations.CreateModel(
+            name='ExtResourceTypeName',
+            fields=[
+                ('slug', models.CharField(max_length=32, primary_key=True, serialize=False)),
+                ('name', models.CharField(max_length=255)),
+                ('desc', models.TextField(blank=True)),
+                ('used', models.BooleanField(default=True)),
+                ('order', models.IntegerField(default=0)),
+            ],
+            options={
+                'ordering': ['order', 'name'],
+                'abstract': False,
+            },
+        ),
+        migrations.AddField(
+            model_name='extresourcename',
+            name='type',
+            field=ietf.utils.models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='name.ExtResourceTypeName'),
+        ),
+    ]
diff --git a/ietf/name/migrations/0014_populate_extres.py b/ietf/name/migrations/0014_populate_extres.py
new file mode 100644
index 000000000..3dad5c9a0
--- /dev/null
+++ b/ietf/name/migrations/0014_populate_extres.py
@@ -0,0 +1,65 @@
+# Copyright The IETF Trust 2020, All Rights Reserved
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.29 on 2020-03-19 11:42
+from __future__ import unicode_literals
+
+from collections import namedtuple
+
+from django.db import migrations
+
+
+def forward(apps, schema_editor):
+    ExtResourceName = apps.get_model('name','ExtResourceName')
+    ExtResourceTypeName = apps.get_model('name','ExtResourceTypeName')
+
+    ExtResourceTypeName.objects.create(slug='email', name="Email address", desc="Email address", used=True, order=0)
+    ExtResourceTypeName.objects.create(slug='url', name="URL", desc="URL", used=True, order=0)
+    ExtResourceTypeName.objects.create(slug='string', name="string", desc="string", used=True, order=0)
+
+    resourcename = namedtuple('resourcename', ['slug', 'name', 'type'])
+    resourcenames= [
+        resourcename("webpage", "Additional Web Page", "url"),
+        resourcename("faq", "Frequently Asked Questions", "url"),
+        resourcename("github_username","GitHub Username", "string"),
+        resourcename("github_org","GitHub Organization", "url"),
+        resourcename("github_repo","GitHub Repository", "url"),
+        resourcename("gitlab_username","GitLab Username", "string"),
+        resourcename("tracker","Issuer Tracker", "url"),
+        resourcename("github_notify","GitHub Notifications Email", "email"),
+        resourcename("slack","Slack Channel", "url"),
+        resourcename("website","Website", "url"),
+        resourcename("wiki","Wiki", "url"),
+        resourcename("yc_entry","Yang Catalog Entry", "url"),
+        resourcename("yc_impact","Yang Impact Analysis", "url"),
+        resourcename("jabber_room","Jabber Room", "url"),
+        resourcename("jabber_log","Jabber Log", "url"),
+        resourcename("mailing_list","Mailing List", "url"),
+        resourcename("mailing_list_archive","Mailing List Archive","url"),
+        resourcename("repo","Other Repository", "url")
+    ]
+
+    for name in resourcenames:
+        ExtResourceName.objects.create(slug=name.slug, name=name.name, desc=name.name, used=True, order=0, type_id=name.type)
+
+
+
+def reverse(apps, schema_editor):
+    ExtResourceName = apps.get_model('name','ExtResourceName')
+    ExtResourceTypeName = apps.get_model('name','ExtResourceTypeName')
+
+    ExtResourceName.objects.all().delete()
+    ExtResourceTypeName.objects.all().delete()
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('name', '0013_extres'),
+        ('group', '0033_extres'),
+        ('doc', '0033_extres'),
+        ('person', '0013_extres'),
+    ]
+
+    operations = [
+        migrations.RunPython(forward, reverse)
+    ]
diff --git a/ietf/name/models.py b/ietf/name/models.py
index 19e53d28a..69c96c29a 100644
--- a/ietf/name/models.py
+++ b/ietf/name/models.py
@@ -125,4 +125,8 @@ class ImportantDateName(NameModel):
     default_offset_days = models.SmallIntegerField()
 class DocUrlTagName(NameModel):
     "Repository, Wiki, Issue Tracker, ..."
-    
+class ExtResourceTypeName(NameModel):
+    """Url, Email, String"""
+class ExtResourceName(NameModel):
+    """GitHub Repository URL, GitHub Username, ..."""
+    type = ForeignKey(ExtResourceTypeName)
diff --git a/ietf/name/resources.py b/ietf/name/resources.py
index 1f0d15549..80c78842a 100644
--- a/ietf/name/resources.py
+++ b/ietf/name/resources.py
@@ -17,7 +17,7 @@ from ietf.name.models import ( AgendaTypeName, BallotPositionName, ConstraintNam
     LiaisonStatementState, LiaisonStatementTagName, MeetingTypeName, NomineePositionStateName,
     ReviewAssignmentStateName, ReviewRequestStateName, ReviewResultName, ReviewTypeName,
     RoleName, RoomResourceName, SessionStatusName, StdLevelName, StreamName, TimeSlotTypeName,
-    TopicAudienceName, ReviewerQueuePolicyName, TimerangeName)
+    TopicAudienceName, ReviewerQueuePolicyName, TimerangeName, ExtResourceTypeName, ExtResourceName)
 
 class TimeSlotTypeNameResource(ModelResource):
     class Meta:
@@ -615,3 +615,38 @@ class TimerangeNameResource(ModelResource):
             "order": ALL,
         }
 api.name.register(TimerangeNameResource())
+
+
+class ExtResourceTypeNameResource(ModelResource):
+    class Meta:
+        queryset = ExtResourceTypeName.objects.all()
+        serializer = api.Serializer()
+        cache = SimpleCache()
+        resource_name = 'extresourcetypename'
+        ordering = ['slug', ]
+        filtering = { 
+            "slug": ALL,
+            "name": ALL,
+            "desc": ALL,
+            "used": ALL,
+            "order": ALL,
+        }
+api.name.register(ExtResourceTypeNameResource())
+
+class ExtResourceNameResource(ModelResource):
+    type             = ToOneField(ExtResourceTypeNameResource, 'type')
+    class Meta:
+        queryset = ExtResourceName.objects.all()
+        serializer = api.Serializer()
+        cache = SimpleCache()
+        resource_name = 'extresourcename'
+        ordering = ['slug', ]
+        filtering = { 
+            "slug": ALL,
+            "name": ALL,
+            "desc": ALL,
+            "used": ALL,
+            "order": ALL,
+            "type": ALL_WITH_RELATIONS,
+        }
+api.name.register(ExtResourceNameResource())
diff --git a/ietf/person/admin.py b/ietf/person/admin.py
index 73789d6d9..8ebb60a18 100644
--- a/ietf/person/admin.py
+++ b/ietf/person/admin.py
@@ -1,9 +1,14 @@
 from django.contrib import admin
 import simple_history
 
-from ietf.person.models import Email, Alias, Person, PersonalApiKey, PersonEvent, PersonApiKeyEvent
+from django import forms
+
+from ietf.person.models import Email, Alias, Person, PersonalApiKey, PersonEvent, PersonApiKeyEvent, PersonExtResource
 from ietf.person.name import name_parts
 
+from ietf.utils.validators import validate_external_resource_value
+
+
 class EmailAdmin(simple_history.admin.SimpleHistoryAdmin):
     list_display = ["address", "person", "time", "active", "origin"]
     raw_id_fields = ["person", ]
@@ -55,3 +60,14 @@ class PersonApiKeyEventAdmin(admin.ModelAdmin):
 admin.site.register(PersonApiKeyEvent, PersonApiKeyEventAdmin)
 
 
+
+class PersonExtResourceAdminForm(forms.ModelForm):
+    def clean(self):
+        validate_external_resource_value(self.cleaned_data['name'],self.cleaned_data['value'])
+
+class PersonExtResourceAdmin(admin.ModelAdmin):
+    form = PersonExtResourceAdminForm
+    list_display = ['id', 'person', 'name', 'display_name', 'value',]
+    search_fields = ['person__name', 'value', 'display_name', 'name__slug',]
+    raw_id_fields = ['person', ]
+admin.site.register(PersonExtResource, PersonExtResourceAdmin) 
diff --git a/ietf/person/migrations/0013_extres.py b/ietf/person/migrations/0013_extres.py
new file mode 100644
index 000000000..2953b24b1
--- /dev/null
+++ b/ietf/person/migrations/0013_extres.py
@@ -0,0 +1,28 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.29 on 2020-04-15 10:20
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+import django.db.models.deletion
+import ietf.utils.models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('name', '0013_extres'),
+        ('person', '0012_auto_20200624_1332'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='PersonExtResource',
+            fields=[
+                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('display_name', models.CharField(blank=True, default='', max_length=255)),
+                ('value', models.CharField(max_length=2083)),
+                ('name', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='name.ExtResourceName')),
+                ('person', ietf.utils.models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='person.Person')),
+            ],
+        ),
+    ]
diff --git a/ietf/person/models.py b/ietf/person/models.py
index 3d41e7fb7..c7a252870 100644
--- a/ietf/person/models.py
+++ b/ietf/person/models.py
@@ -24,6 +24,7 @@ from simple_history.models import HistoricalRecords
 
 import debug                            # pyflakes:ignore
 
+from ietf.name.models import ExtResourceName
 from ietf.person.name import name_parts, initials, plain_name
 from ietf.utils.mail import send_mail_preformatted
 from ietf.utils.storage import NoLocationMigrationFileSystemStorage
@@ -240,6 +241,15 @@ class Person(models.Model):
         return [ (v, n) for (v, n, r) in PERSON_API_KEY_VALUES if r==None or has_role(self.user, r) ]
 
 
+class PersonExtResource(models.Model):
+    person = ForeignKey(Person) 
+    name = models.ForeignKey(ExtResourceName, on_delete=models.CASCADE)
+    display_name = models.CharField(max_length=255, default='', blank=True)
+    value = models.CharField(max_length=2083) # 2083 is the maximum legal URL length
+    def __str__(self):
+        priority = self.display_name or self.name.name
+        return u"%s (%s) %s" % (priority, self.name.slug, self.value)
+
 class Alias(models.Model):
     """This is used for alternative forms of a name.  This is the
     primary lookup point for names, and should always contain the
diff --git a/ietf/person/resources.py b/ietf/person/resources.py
index cf54dede5..7db321ac6 100644
--- a/ietf/person/resources.py
+++ b/ietf/person/resources.py
@@ -10,7 +10,7 @@ from tastypie.cache import SimpleCache
 
 from ietf import api
 
-from ietf.person.models import (Person, Email, Alias, PersonalApiKey, PersonEvent, PersonApiKeyEvent, HistoricalPerson, HistoricalEmail) # type: ignore
+from ietf.person.models import (Person, Email, Alias, PersonalApiKey, PersonEvent, PersonApiKeyEvent, HistoricalPerson, HistoricalEmail, PersonExtResource) # type: ignore
 
 
 from ietf.utils.resources import UserResource
@@ -182,3 +182,23 @@ class HistoricalEmailResource(ModelResource):
             "history_user": ALL_WITH_RELATIONS,
         }
 api.person.register(HistoricalEmailResource())
+
+
+from ietf.name.resources import ExtResourceNameResource
+class PersonExtResourceResource(ModelResource):
+    person           = ToOneField(PersonResource, 'person')
+    name             = ToOneField(ExtResourceNameResource, 'name')
+    class Meta:
+        queryset = PersonExtResource.objects.all()
+        serializer = api.Serializer()
+        cache = SimpleCache()
+        resource_name = 'personextresource'
+        ordering = ['id', ]
+        filtering = { 
+            "id": ALL,
+            "display_name": ALL,
+            "value": ALL,
+            "person": ALL_WITH_RELATIONS,
+            "name": ALL_WITH_RELATIONS,
+        }
+api.person.register(PersonExtResourceResource())
diff --git a/ietf/secr/areas/forms.py b/ietf/secr/areas/forms.py
index edd399379..2a34408ad 100644
--- a/ietf/secr/areas/forms.py
+++ b/ietf/secr/areas/forms.py
@@ -1,10 +1,7 @@
 from django import forms
 
 from ietf.person.models import Person, Email
-from ietf.group.models import Group, GroupURL
-from ietf.name.models import GroupTypeName, GroupStateName
 
-import datetime
 import re
 
 STATE_CHOICES = (
@@ -13,132 +10,6 @@ STATE_CHOICES = (
 )
 
 
-class AWPForm(forms.ModelForm):
-    class Meta:
-        model = GroupURL
-        fields = '__all__'
-
-    def __init__(self, *args, **kwargs):
-        super(AWPForm, self).__init__(*args,**kwargs)
-        self.fields['url'].widget.attrs['width'] = 40
-        self.fields['name'].widget.attrs['width'] = 40
-        self.fields['url'].required = False
-        self.fields['name'].required = False
-        
-    # Validation: url without description and vice-versa 
-    def clean(self):
-        super(AWPForm, self).clean()
-        cleaned_data = self.cleaned_data
-        url = cleaned_data.get('url')
-        name = cleaned_data.get('name')
-
-        if (url and not name) or (name and not url):
-            raise forms.ValidationError('You must fill out URL and Name')
-
-        # Always return the full collection of cleaned data.
-        return cleaned_data
-
-
-class AreaForm(forms.ModelForm):
-    class Meta:
-        model = Group
-        fields = ('acronym','name','state','comments')
-
-    # use this method to set attrs which keeps other meta info from model.  
-    def __init__(self, *args, **kwargs):
-        super(AreaForm, self).__init__(*args, **kwargs)
-        self.fields['state'].queryset = GroupStateName.objects.filter(slug__in=('active','conclude'))
-        self.fields['state'].empty_label = None
-        self.fields['comments'].widget.attrs['rows'] = 2
-
-"""
-    # Validation: status and conclude_date must agree
-    def clean(self):
-        super(AreaForm, self).clean()
-        cleaned_data = self.cleaned_data
-        concluded_date = cleaned_data.get('concluded_date')
-        state = cleaned_data.get('state')
-        concluded_status_object = AreaStatus.objects.get(status_id=2)
-
-        if concluded_date and status != concluded_status_object:
-            raise forms.ValidationError('Concluded Date set but status is %s' % (status.status_value))
-
-        if status == concluded_status_object and not concluded_date:
-            raise forms.ValidationError('Status is Concluded but Concluded Date not set.')
-
-        # Always return the full collection of cleaned data.
-        return cleaned_data
-
-"""
-class AWPAddModelForm(forms.ModelForm):
-    class Meta:
-        model = GroupURL
-        fields = ('url', 'name')
-        
-# for use with Add view, ModelForm doesn't work because the parent type hasn't been created yet
-# when initial screen is displayed
-class AWPAddForm(forms.Form):
-    url = forms.CharField(
-        max_length=50,
-        required=False,
-        widget=forms.TextInput(attrs={'size':'40'}))
-    description = forms.CharField(
-        max_length=50,
-        required=False,
-        widget=forms.TextInput(attrs={'size':'40'}))
- 
-    # Validation: url without description and vice-versa 
-    def clean(self):
-        super(AWPAddForm, self).clean()
-        cleaned_data = self.cleaned_data
-        url = cleaned_data.get('url')
-        description = cleaned_data.get('description')
-
-        if (url and not description) or (description and not url):
-            raise forms.ValidationError('You must fill out URL and Description')
-
-        # Always return the full collection of cleaned data.
-        return cleaned_data
-
-class AddAreaModelForm(forms.ModelForm):
-    start_date = forms.DateField()
-    
-    class Meta:
-        model = Group
-        fields = ('acronym','name','state','start_date','comments')
-        
-    def __init__(self, *args, **kwargs):
-        super(AddAreaModelForm, self).__init__(*args, **kwargs)
-        self.fields['acronym'].required = True
-        self.fields['name'].required = True
-        self.fields['start_date'].required = True
-        self.fields['start_date'].initial = datetime.date.today
-        
-    def clean_acronym(self):
-        acronym = self.cleaned_data['acronym']
-        if Group.objects.filter(acronym=acronym):
-            raise forms.ValidationError("This acronym already exists.  Enter a unique one.")
-        r1 = re.compile(r'[a-zA-Z\-\. ]+$')
-        if not r1.match(acronym):
-            raise forms.ValidationError("Enter a valid acronym (only letters,period,hyphen allowed)")
-        return acronym
-        
-    def clean_name(self):
-        name = self.cleaned_data['name']
-        if Group.objects.filter(name=name):
-            raise forms.ValidationError("This name already exists.  Enter a unique one.")
-        r1 = re.compile(r'[a-zA-Z\-\. ]+$')
-        if name and not r1.match(name):
-            raise forms.ValidationError("Enter a valid name (only letters,period,hyphen allowed)")
-        return name
-        
-    def save(self, force_insert=False, force_update=False, commit=True):
-        area = super(AddAreaModelForm, self).save(commit=False)
-        area.type = GroupTypeName.objects.get(slug='area')
-        area.parent = Group.objects.get(acronym='iesg')
-        if commit:
-            area.save()
-        return area
         
 class AreaDirectorForm(forms.Form):
     ad_name = forms.CharField(max_length=100,label='Name',help_text="To see a list of people type the first name, or last name, or both.")
diff --git a/ietf/secr/areas/tests.py b/ietf/secr/areas/tests.py
index 956277dfa..f7341dfa9 100644
--- a/ietf/secr/areas/tests.py
+++ b/ietf/secr/areas/tests.py
@@ -32,19 +32,3 @@ class SecrAreasTestCase(TestCase):
         response = self.client.get(url)
         self.assertEqual(response.status_code, 200)
 
-    def test_add(self):
-        "Add Test"
-        url = reverse('ietf.secr.areas.views.add')
-        self.client.login(username="secretary", password="secretary+password")
-        data = {'acronym':'ta',
-             'name':'Test Area',
-             'state':'active',
-             'start_date':'2017-01-01',
-             'awp-TOTAL_FORMS':'2',
-             'awp-INITIAL_FORMS':'0',
-             'submit':'Save'}
-        response = self.client.post(url,data)
-        self.assertRedirects(response, reverse('ietf.secr.areas.views.list_areas'))
-        area = Group.objects.get(acronym='ta')
-        iesg = Group.objects.get(acronym='iesg')
-        self.assertTrue(area.parent == iesg)
\ No newline at end of file
diff --git a/ietf/secr/areas/urls.py b/ietf/secr/areas/urls.py
index 7603403d2..cbb9a4a2f 100644
--- a/ietf/secr/areas/urls.py
+++ b/ietf/secr/areas/urls.py
@@ -4,11 +4,9 @@ from ietf.utils.urls import url
 
 urlpatterns = [
     url(r'^$', views.list_areas),
-    url(r'^add/$', views.add),
     url(r'^getemails', views.getemails),
     url(r'^getpeople', views.getpeople),
     url(r'^(?P<name>[A-Za-z0-9.-]+)/$', views.view),
-    url(r'^(?P<name>[A-Za-z0-9.-]+)/edit/$', views.edit),
     url(r'^(?P<name>[A-Za-z0-9.-]+)/people/$', views.people),
     url(r'^(?P<name>[A-Za-z0-9.-]+)/people/modify/$', views.modify),
 ]
diff --git a/ietf/secr/areas/views.py b/ietf/secr/areas/views.py
index ca0bcb0a8..93e438cf8 100644
--- a/ietf/secr/areas/views.py
+++ b/ietf/secr/areas/views.py
@@ -1,17 +1,14 @@
-import datetime
 import json
  
 from django.contrib import messages
-from django.forms.formsets import formset_factory
-from django.forms.models import inlineformset_factory
 from django.http import HttpResponse
 from django.shortcuts import render, get_object_or_404, redirect
 
-from ietf.group.models import Group, GroupEvent, GroupURL, Role, ChangeStateGroupEvent
+from ietf.group.models import Group, GroupEvent, Role
 from ietf.group.utils import save_group_in_history
 from ietf.ietfauth.utils import role_required
 from ietf.person.models import Person
-from ietf.secr.areas.forms import AWPAddModelForm, AWPForm, AddAreaModelForm, AreaDirectorForm, AreaForm
+from ietf.secr.areas.forms import AreaDirectorForm
 
 # --------------------------------------------------
 # AJAX FUNCTIONS
@@ -49,114 +46,7 @@ def getemails(request):
 # --------------------------------------------------
 # STANDARD VIEW FUNCTIONS
 # --------------------------------------------------
-@role_required('Secretariat')
-def add(request):
-    """ 
-    Add a new IETF Area
 
-    **Templates:**
-
-    * ``areas/add.html``
-
-    **Template Variables:**
-
-    * area_form
-
-    """
-    AWPFormSet = formset_factory(AWPAddModelForm, extra=2)
-    if request.method == 'POST':
-        area_form = AddAreaModelForm(request.POST)
-        awp_formset = AWPFormSet(request.POST, prefix='awp')
-        if area_form.is_valid() and awp_formset.is_valid():
-            area = area_form.save()
-            
-            #save groupevent 'started' record
-            start_date = area_form.cleaned_data.get('start_date')
-            login = request.user.person
-            group_event = GroupEvent(group=area,time=start_date,type='started',by=login)
-            group_event.save()
-            
-            # save AWPs
-            for item in awp_formset.cleaned_data:
-                if item.get('url', 0):
-                    group_url = GroupURL(group=area,name=item['name'],url=item['url'])
-                    group_url.save()
-
-            messages.success(request, 'The Area was created successfully!')
-            return redirect('ietf.secr.areas.views.list_areas')
-    else:
-        # display initial forms
-        area_form = AddAreaModelForm()
-        awp_formset = AWPFormSet(prefix='awp')
-
-    return render(request, 'areas/add.html', {
-        'area_form': area_form,
-        'awp_formset': awp_formset},
-    )
-
-@role_required('Secretariat')
-def edit(request, name):
-    """ 
-    Edit IETF Areas 
-
-    **Templates:**
-
-    * ``areas/edit.html``
-
-    **Template Variables:**
-
-    * acronym, area_formset, awp_formset, acronym_form 
-
-    """
-    area = get_object_or_404(Group, acronym=name, type='area')
-
-    AWPFormSet = inlineformset_factory(Group, GroupURL, form=AWPForm, max_num=2)
-    if request.method == 'POST':
-        button_text = request.POST.get('submit', '')
-        if button_text == 'Save':
-            form = AreaForm(request.POST, instance=area)
-            awp_formset = AWPFormSet(request.POST, instance=area)
-            if form.is_valid() and awp_formset.is_valid():
-                state = form.cleaned_data['state']
-                
-                # save group
-                save_group_in_history(area)
-                
-                new_area = form.save()
-                new_area.time = datetime.datetime.now()
-                new_area.save()
-                awp_formset.save()
-                
-                # create appropriate GroupEvent
-                if 'state' in form.changed_data:
-                    ChangeStateGroupEvent.objects.create(group=new_area,
-                                                         type='changed_state',
-                                                         by=request.user.person,
-                                                         state=state,
-                                                         time=new_area.time)
-                    form.changed_data.remove('state')
-                    
-                # if anything else was changed
-                if form.changed_data:
-                    GroupEvent.objects.create(group=new_area,
-                                              type='info_changed',
-                                              by=request.user.person,
-                                              time=new_area.time)
-                
-                messages.success(request, 'The Area entry was changed successfully')
-                return redirect('ietf.secr.areas.views.view', name=name)
-        else:
-            return redirect('ietf.secr.areas.views.view', name=name)
-    else:
-        form = AreaForm(instance=area)
-        awp_formset = AWPFormSet(instance=area)
-
-    return render(request, 'areas/edit.html', {
-        'area': area,
-        'form': form,
-        'awp_formset': awp_formset,
-        },
-    )
 
 @role_required('Secretariat')
 def list_areas(request):
diff --git a/ietf/secr/groups/forms.py b/ietf/secr/groups/forms.py
index a21d57243..7b9611515 100644
--- a/ietf/secr/groups/forms.py
+++ b/ietf/secr/groups/forms.py
@@ -6,7 +6,6 @@ from django.db.models import Count
 from ietf.group.models import Group, Role
 from ietf.name.models import GroupStateName, GroupTypeName, RoleName
 from ietf.person.models import Person, Email
-from ietf.liaisons.models import LiaisonStatementGroupContacts
 
 
 # ---------------------------------------------
@@ -48,83 +47,6 @@ class DescriptionForm (forms.Form):
     description = forms.CharField(widget=forms.Textarea(attrs={'rows':'20'}),required=True, strip=False)
 
 
-class GroupModelForm(forms.ModelForm):
-    type = forms.ModelChoiceField(queryset=GroupTypeName.objects.all(),empty_label=None)
-    parent = forms.ModelChoiceField(queryset=Group.objects.all(),required=False)
-    ad = forms.ModelChoiceField(queryset=Person.objects.filter(role__name='ad',role__group__state='active',role__group__type='area'),required=False)
-    state = forms.ModelChoiceField(queryset=GroupStateName.objects.exclude(slug__in=('dormant','unknown')),empty_label=None)
-    liaison_contacts = forms.CharField(max_length=255,required=False,label='Default Liaison Contacts')
-    
-    class Meta:
-        model = Group
-        fields = ('acronym','name','type','state','parent','ad','list_email','list_subscribe','list_archive','description','comments')
-    
-    def __init__(self, *args, **kwargs):
-        super(GroupModelForm, self).__init__(*args, **kwargs)
-        self.fields['list_email'].label = 'List Email'
-        self.fields['list_subscribe'].label = 'List Subscribe'
-        self.fields['list_archive'].label = 'List Archive'
-        self.fields['ad'].label = 'Area Director'
-        self.fields['comments'].widget.attrs['rows'] = 3
-        self.fields['parent'].label = 'Area / Parent'
-        self.fields['parent'].choices = get_parent_group_choices()
-
-        if self.instance.pk:
-            lsgc = self.instance.liaisonstatementgroupcontacts_set.first() # there can only be one
-            if lsgc:
-                self.fields['liaison_contacts'].initial = lsgc.contacts
-        
-    def clean_acronym(self):
-        acronym = self.cleaned_data['acronym']
-        if any(x.isupper() for x in acronym):
-            raise forms.ValidationError('Capital letters not allowed in group acronym')
-        return acronym
-
-    def clean_parent(self):
-        parent = self.cleaned_data['parent']
-        type = self.cleaned_data['type']
-        
-        if type.features.acts_like_wg and not parent:
-            raise forms.ValidationError("This field is required.")
-        
-        return parent
-        
-    def clean(self):
-        if any(self.errors):
-            return self.cleaned_data
-        super(GroupModelForm, self).clean()
-            
-        type = self.cleaned_data['type']
-        parent = self.cleaned_data['parent']
-        state = self.cleaned_data['state']
-        irtf_area = Group.objects.get(acronym='irtf')
-        
-        # ensure proper parent for group type
-        if type.slug == 'rg' and parent != irtf_area:
-            raise forms.ValidationError('The Area for a research group must be %s' % irtf_area)
-            
-        # an RG can't be proposed
-        if type.slug == 'rg' and state.slug not in ('active','conclude'):
-            raise forms.ValidationError('You must choose "active" or "concluded" for research group state')
-            
-        return self.cleaned_data
-    
-    def save(self, force_insert=False, force_update=False, commit=True):
-        obj = super(GroupModelForm, self).save(commit=False)
-        if commit:
-            obj.save()
-        contacts = self.cleaned_data.get('liaison_contacts')
-        if contacts:
-            try:
-                lsgc = LiaisonStatementGroupContacts.objects.get(group=self.instance)
-                lsgc.contacts = contacts
-                lsgc.save()
-            except LiaisonStatementGroupContacts.DoesNotExist:
-                LiaisonStatementGroupContacts.objects.create(group=self.instance,contacts=contacts)
-        elif LiaisonStatementGroupContacts.objects.filter(group=self.instance):
-            LiaisonStatementGroupContacts.objects.filter(group=self.instance).delete()
-        
-        return obj
 
 class RoleForm(forms.Form):
     name = forms.ModelChoiceField(RoleName.objects.filter(slug__in=('chair','editor','secr','techadv')),empty_label=None)
diff --git a/ietf/secr/groups/tests.py b/ietf/secr/groups/tests.py
index 35bd245eb..f4772abcf 100644
--- a/ietf/secr/groups/tests.py
+++ b/ietf/secr/groups/tests.py
@@ -9,7 +9,6 @@ from ietf.secr.groups.forms import get_parent_group_choices
 from ietf.group.factories import GroupFactory, RoleFactory
 from ietf.meeting.factories import MeetingFactory
 from ietf.person.factories import PersonFactory
-from ietf.person.models import Person
 import debug                            # pyflakes:ignore
 
 class GroupsTest(TestCase):
@@ -31,73 +30,6 @@ class GroupsTest(TestCase):
         response = self.client.post(url,post_data,follow=True)
         self.assertContains(response, group.acronym)
 
-    # ------- Test Add -------- #
-    def test_add_button(self):
-        url = reverse('ietf.secr.groups.views.search')
-        target = reverse('ietf.secr.groups.views.add')
-        post_data = {'submit':'Add'}
-        self.client.login(username="secretary", password="secretary+password")
-        response = self.client.post(url,post_data,follow=True)
-        self.assertRedirects(response, target)
-
-    def test_add_group_invalid(self):
-        url = reverse('ietf.secr.groups.views.add')
-        post_data = {'acronym':'test',
-                     'type':'wg',
-                     'awp-TOTAL_FORMS':'2',
-                     'awp-INITIAL_FORMS':'0',
-                     'submit':'Save'}
-        self.client.login(username="secretary", password="secretary+password")
-        response = self.client.post(url,post_data)
-        self.assertContains(response, 'This field is required')
-
-    def test_add_group_dupe(self):
-        group = GroupFactory()
-        area = GroupFactory(type_id='area')
-        url = reverse('ietf.secr.groups.views.add')
-        post_data = {'acronym':group.acronym,
-                     'name':'Test Group',
-                     'state':'active',
-                     'type':'wg',
-                     'parent':area.id,
-                     'awp-TOTAL_FORMS':'2',
-                     'awp-INITIAL_FORMS':'0',
-                     'submit':'Save'}
-        self.client.login(username="secretary", password="secretary+password")
-        response = self.client.post(url,post_data)
-        self.assertContains(response, 'Group with this Acronym already exists')
-
-    def test_add_group_success(self):
-        area = GroupFactory(type_id='area')
-        url = reverse('ietf.secr.groups.views.add')
-        post_data = {'acronym':'test',
-                     'name':'Test Group',
-                     'type':'wg',
-                     'status':'active',
-                     'parent':area.id,
-                     'awp-TOTAL_FORMS':'2',
-                     'awp-INITIAL_FORMS':'0',
-                     'submit':'Save'}
-        self.client.login(username="secretary", password="secretary+password")
-        response = self.client.post(url,post_data)
-        self.assertEqual(response.status_code, 200)
-
-    def test_add_group_capital_acronym(self):
-        area = GroupFactory(type_id='area')
-        url = reverse('ietf.secr.groups.views.add')
-        post_data = {'acronym':'TEST',
-                     'name':'Test Group',
-                     'type':'wg',
-                     'status':'active',
-                     'parent':area.id,
-                     'awp-TOTAL_FORMS':'2',
-                     'awp-INITIAL_FORMS':'0',
-                     'submit':'Save'}
-        self.client.login(username="secretary", password="secretary+password")
-        response = self.client.post(url,post_data)
-        self.assertEqual(response.status_code, 200)
-        self.assertContains(response, 'Capital letters not allowed in group acronym')
-
     # ------- Test View -------- #
     def test_view(self):
         MeetingFactory(type_id='ietf')
@@ -107,47 +39,6 @@ class GroupsTest(TestCase):
         response = self.client.get(url)
         self.assertEqual(response.status_code, 200)
 
-    # ------- Test Edit -------- #
-    def test_edit_valid(self):
-        group = GroupFactory()
-        area = GroupFactory(type_id='area')
-        ad = Person.objects.get(name='AreaĆ° Irector')
-        MeetingFactory(type_id='ietf')        
-        url = reverse('ietf.secr.groups.views.edit', kwargs={'acronym':group.acronym})
-        target = reverse('ietf.secr.groups.views.view', kwargs={'acronym':group.acronym})
-        post_data = {'acronym':group.acronym,
-                     'name':group.name,
-                     'type':'wg',
-                     'state':group.state_id,
-                     'parent':area.id,
-                     'ad':ad.id,
-                     'groupurl_set-TOTAL_FORMS':'2',
-                     'groupurl_set-INITIAL_FORMS':'0',
-                     'submit':'Save'}
-        self.client.login(username="secretary", password="secretary+password")
-        response = self.client.post(url,post_data,follow=True)
-        self.assertRedirects(response, target)
-        self.assertContains(response, 'changed successfully')
-
-    def test_edit_non_wg_group(self):
-        parent_sdo = GroupFactory.create(type_id='sdo',state_id='active')
-        child_sdo = GroupFactory.create(type_id='sdo',state_id='active',parent=parent_sdo)
-        MeetingFactory(type_id='ietf')
-        url = reverse('ietf.secr.groups.views.edit', kwargs={'acronym':child_sdo.acronym})
-        target = reverse('ietf.secr.groups.views.view', kwargs={'acronym':child_sdo.acronym})
-        post_data = {'acronym':child_sdo.acronym,
-                     'name':'New Name',
-                     'type':'sdo',
-                     'state':child_sdo.state_id,
-                     'parent':parent_sdo.id,
-                     'ad':'',
-                     'groupurl_set-TOTAL_FORMS':'2',
-                     'groupurl_set-INITIAL_FORMS':'0',
-                     'submit':'Save'}
-        self.client.login(username="secretary", password="secretary+password")
-        response = self.client.post(url,post_data,follow=True)
-        self.assertRedirects(response, target)
-        self.assertContains(response, 'changed successfully')
 
     # ------- Test People -------- #
     def test_people_delete(self):
diff --git a/ietf/secr/groups/urls.py b/ietf/secr/groups/urls.py
index 32659e323..60d3566ca 100644
--- a/ietf/secr/groups/urls.py
+++ b/ietf/secr/groups/urls.py
@@ -5,12 +5,10 @@ from ietf.utils.urls import url
 
 urlpatterns = [
     url(r'^$', views.search),
-    url(r'^add/$', views.add),
     url(r'^blue-dot-report/$', views.blue_dot),
     #(r'^ajax/get_ads/$', views.get_ads),
     url(r'^%(acronym)s/$' % settings.URL_REGEXPS, views.view),
     url(r'^%(acronym)s/delete/(?P<id>\d{1,6})/$' % settings.URL_REGEXPS, views.delete_role),
     url(r'^%(acronym)s/charter/$' % settings.URL_REGEXPS, views.charter),
-    url(r'^%(acronym)s/edit/$' % settings.URL_REGEXPS, views.edit),
     url(r'^%(acronym)s/people/$' % settings.URL_REGEXPS, views.people),
 ]
diff --git a/ietf/secr/groups/views.py b/ietf/secr/groups/views.py
index ad3ac8ff7..7f72dce43 100644
--- a/ietf/secr/groups/views.py
+++ b/ietf/secr/groups/views.py
@@ -1,14 +1,12 @@
 from django.contrib import messages
 from django.conf import settings
-from django.forms.models import inlineformset_factory
 from django.shortcuts import render, get_object_or_404, redirect
 
-from ietf.group.models import Group, ChangeStateGroupEvent, GroupEvent, GroupURL, Role
-from ietf.group.utils import save_group_in_history, get_charter_text, setup_default_community_list_for_group
+from ietf.group.models import Group, GroupEvent, Role
+from ietf.group.utils import save_group_in_history, get_charter_text
 from ietf.ietfauth.utils import role_required
 from ietf.person.models import Person
-from ietf.secr.groups.forms import GroupModelForm, RoleForm, SearchForm
-from ietf.secr.areas.forms import AWPForm
+from ietf.secr.groups.forms import RoleForm, SearchForm
 from ietf.secr.utils.meeting import get_current_meeting
 
 # -------------------------------------------------
@@ -71,58 +69,7 @@ def get_ads(request):
 # Standard View Functions
 # -------------------------------------------------
 
-@role_required('Secretariat')
-def add(request):
-    '''
-    Add a new IETF or IRTF Group
 
-    **Templates:**
-
-    * ``groups/add.html``
-
-    **Template Variables:**
-
-    * form, awp_formset
-
-    '''
-    AWPFormSet = inlineformset_factory(Group, GroupURL, form=AWPForm, max_num=2, can_delete=False)
-    if request.method == 'POST':
-        button_text = request.POST.get('submit', '')
-        if button_text == 'Cancel':
-            return redirect('ietf.secr.groups.views.search')
-
-        form = GroupModelForm(request.POST)
-        awp_formset = AWPFormSet(request.POST, prefix='awp')
-        if form.is_valid() and awp_formset.is_valid():
-            group = form.save()
-            for form in awp_formset.forms:
-                if form.has_changed():
-                    awp = form.save(commit=False)
-                    awp.group = group
-                    awp.save()
-
-            if group.features.has_documents:
-                setup_default_community_list_for_group(group)
-
-            # create GroupEvent(s)
-            # always create started event
-            ChangeStateGroupEvent.objects.create(group=group,
-                                                 type='changed_state',
-                                                 by=request.user.person,
-                                                 state=group.state,
-                                                 desc='Started group')
-
-            messages.success(request, 'The Group was created successfully!')
-            return redirect('ietf.secr.groups.views.view', acronym=group.acronym)
-
-    else:
-        form = GroupModelForm(initial={'state':'active','type':'wg'})
-        awp_formset = AWPFormSet(prefix='awp')
-
-    return render(request, 'groups/add.html', {
-        'form': form,
-        'awp_formset': awp_formset},
-    )
 
 @role_required('Secretariat')
 def blue_dot(request):
@@ -202,83 +149,6 @@ def delete_role(request, acronym, id):
     return render(request, 'confirm_delete.html', {'object': role})
 
 
-@role_required('Secretariat')
-def edit(request, acronym):
-    """
-    Edit Group details
-
-    **Templates:**
-
-    * ``groups/edit.html``
-
-    **Template Variables:**
-
-    * group, form, awp_formset
-
-    """
-
-    group = get_object_or_404(Group, acronym=acronym)
-    AWPFormSet = inlineformset_factory(Group, GroupURL, form=AWPForm, max_num=2)
-
-    if request.method == 'POST':
-        button_text = request.POST.get('submit', '')
-        if button_text == 'Cancel':
-            return redirect('ietf.secr.groups.views.view', acronym=acronym)
-
-        form = GroupModelForm(request.POST, instance=group)
-        awp_formset = AWPFormSet(request.POST, instance=group)
-        if form.is_valid() and awp_formset.is_valid():
-
-            awp_formset.save()
-            if form.changed_data:
-                state = form.cleaned_data['state']
-
-                # save group
-                save_group_in_history(group)
-
-                form.save()
-
-                # create appropriate GroupEvent
-                if 'state' in form.changed_data:
-                    if state.name == 'Active':
-                        desc = 'Started group'
-                    else:
-                        desc = state.name + ' group'
-                    ChangeStateGroupEvent.objects.create(group=group,
-                                                         type='changed_state',
-                                                         by=request.user.person,
-                                                         state=state,
-                                                         desc=desc)
-                    form.changed_data.remove('state')
-
-                # if anything else was changed
-                if form.changed_data:
-                    GroupEvent.objects.create(group=group,
-                                              type='info_changed',
-                                              by=request.user.person,
-                                              desc='Info Changed')
-
-                # if the acronym was changed we'll want to redirect using the new acronym below
-                if 'acronym' in form.changed_data:
-                    acronym = form.cleaned_data['acronym']
-
-                messages.success(request, 'The Group was changed successfully')
-
-            return redirect('ietf.secr.groups.views.view', acronym=acronym)
-
-    else:
-        form = GroupModelForm(instance=group)
-        awp_formset = AWPFormSet(instance=group)
-
-    messages.warning(request, "WARNING: don't use this tool to change group names.  Use Datatracker when possible.")
-
-    return render(request, 'groups/edit.html', {
-        'group': group,
-        'awp_formset': awp_formset,
-        'form': form},
-    )
-
-
 @role_required('Secretariat')
 def people(request, acronym):
     """
@@ -343,8 +213,6 @@ def search(request):
     results = []
     if request.method == 'POST':
         form = SearchForm(request.POST)
-        if request.POST['submit'] == 'Add':
-            return redirect('ietf.secr.groups.views.add')
 
         if form.is_valid():
             kwargs = {}
diff --git a/ietf/secr/templates/areas/add.html b/ietf/secr/templates/areas/add.html
deleted file mode 100644
index 19edd797c..000000000
--- a/ietf/secr/templates/areas/add.html
+++ /dev/null
@@ -1,31 +0,0 @@
-{% extends "base_site.html" %}
-{% load staticfiles %}
-{% block title %}Areas - Add{% endblock %}
-
-{% block extrahead %}{{ block.super }}
-  <script type="text/javascript" src="{% static 'secr/js/utils.js' %}"></script>
-{% endblock %}
-
-{% block breadcrumbs %}{{ block.super }} 
-  &raquo; <a href="../">Areas</a>
-  &raquo; Add
-{% endblock %}
-
-{% block content %}
-
-<div class="module">
-  <h2>Area - Add</h2>
-  <form enctype="multipart/form-data" action="" method="post">{% csrf_token %}
-  <table id="area-add-table" class="full-width amstable">
-    <col width="150">
-    {{ area_form.as_table }}
-  </table>
-
-  {% include "includes/awp_add_form.html" %}
-
-  {% include "includes/buttons_submit.html" %}
-
-  </form>
-</div> <!-- module -->
-
-{% endblock %}
diff --git a/ietf/secr/templates/areas/edit.html b/ietf/secr/templates/areas/edit.html
deleted file mode 100644
index 238c295dc..000000000
--- a/ietf/secr/templates/areas/edit.html
+++ /dev/null
@@ -1,32 +0,0 @@
-{% extends "base_site.html" %}
-{% load staticfiles %}
-{% block title %}Areas - Edit{% endblock %}
-
-{% block extrahead %}{{ block.super }}
-  <script type="text/javascript" src="{% static 'secr/js/utils.js' %}"></script>
-{% endblock %}
-
-{% block breadcrumbs %}{{ block.super }} 
-  &raquo; <a href="../../">Areas</a>
-  &raquo; <a href="../">{{ area.acronym }}</a>
-  &raquo; Edit
-{% endblock %}
-
-{% block content %}
-
-<div class="module">
-    <form action="." method="post">{% csrf_token %}
-    <h2>Area - Edit</h2>
-      <table class="full-width amstable">
-        <col width="150">
-        {{ form.as_table }}
-      </table>
-
-      {% include "includes/awp_edit_form.html" %}
-
-      {% include "includes/buttons_save_cancel.html" %}
-
-    </form>
-</div> <!-- module -->
-
-{% endblock %}
diff --git a/ietf/secr/templates/areas/list.html b/ietf/secr/templates/areas/list.html
index ed5ec4511..7cefc114e 100644
--- a/ietf/secr/templates/areas/list.html
+++ b/ietf/secr/templates/areas/list.html
@@ -13,7 +13,7 @@
 {% block content %}
 
 <div class="module">
-    <h2>Areas <span class="unlocked"><a href="add/" class="addlink">Add</a></span></h2>
+    <h2>Areas</h2>
     <table id="areas-list-table" class="full-width">
       <thead>
 	<tr>
diff --git a/ietf/secr/templates/groups/add.html b/ietf/secr/templates/groups/add.html
deleted file mode 100644
index 6111f7ab9..000000000
--- a/ietf/secr/templates/groups/add.html
+++ /dev/null
@@ -1,32 +0,0 @@
-{% extends "base_site.html" %}
-{% load staticfiles %}
-
-{% block title %}Groups - Add{% endblock %}
-
-{% block extrahead %}{{ block.super }}
-  <script type="text/javascript" src="{% static 'secr/js/utils.js' %}"></script>
-{% endblock %}
-
-{% block breadcrumbs %}{{ block.super }} 
-  &raquo; <a href="../">Groups</a>
-  &raquo; Add 
-{% endblock %}
-
-{% block content %}
-
-<div class="module group-container">
-    <h2>Groups - Add</h2>
-    <form enctype="multipart/form-data" action="" method="post">{% csrf_token %}
-      <table id="groups-table" class="full-width amstable">
-        <col width="150">
-        {{ form.as_table }}
-      </table>
-
-      {% include "includes/awp_add_form.html" %}
-
-      {% include "includes/buttons_save_cancel.html" %}
-
-    </form>
-</div> <!-- module -->
-
-{% endblock %}
diff --git a/ietf/secr/templates/groups/edit.html b/ietf/secr/templates/groups/edit.html
deleted file mode 100644
index b3d21dc12..000000000
--- a/ietf/secr/templates/groups/edit.html
+++ /dev/null
@@ -1,33 +0,0 @@
-{% extends "base_site.html" %}
-{% load staticfiles %}
-
-{% block title %}Groups - Edit{% endblock %}
-
-{% block extrahead %}{{ block.super }}
-  <script type="text/javascript" src="{% static 'secr/js/utils.js' %}"></script>
-{% endblock %}
-
-{% block breadcrumbs %}{{ block.super }} 
-  &raquo; <a href="../../">Groups</a>
-  &raquo; <a href="../">{{ group.acronym }}</a>
-  &raquo; Edit
-{% endblock %}
-
-{% block content %}
-
-<div class="module group-container">
-    <h2>Groups - Edit</h2>
-    <form enctype="multipart/form-data" action="" method="post">{% csrf_token %}
-      <table id="groups-table" class="full-width amstable">
-        <col width="150">
-        {{ form }}
-      </table>
-
-  {% include "includes/awp_edit_form.html" %}
-
-  {% include "includes/buttons_save_cancel.html" %}
-
-    </form>
-</div> <!-- module -->
-
-{% endblock %}
diff --git a/ietf/secr/templates/groups/search.html b/ietf/secr/templates/groups/search.html
index 285ce7bde..4b57aa718 100644
--- a/ietf/secr/templates/groups/search.html
+++ b/ietf/secr/templates/groups/search.html
@@ -14,7 +14,7 @@
 {% block content %}
 
 <div class="module group-container">
-    <h2>Groups - Search <span class="unlocked"><a href="add/" class="addlink">Add</a></span></h2>
+    <h2>Groups - Search</h2>
     <form enctype="multipart/form-data" action="" method="post">{% csrf_token %}
       <table class="full-width amstable">
         {{ form.as_table }}
diff --git a/ietf/secr/templates/roles/main.html b/ietf/secr/templates/roles/main.html
index 97fb37010..c552a3921 100755
--- a/ietf/secr/templates/roles/main.html
+++ b/ietf/secr/templates/roles/main.html
@@ -47,7 +47,6 @@
            <form id="roles-form".>
              {{ group_form.as_p }}
            </form>
-           <p><a href="{% url 'ietf.secr.groups.views.add' %}">Add a new group...</a></p>
          </div> <!-- inline-related -->
          <br>
          
diff --git a/ietf/submit/utils.py b/ietf/submit/utils.py
index 82142d134..c60fc2d41 100644
--- a/ietf/submit/utils.py
+++ b/ietf/submit/utils.py
@@ -377,19 +377,19 @@ def post_submission(request, submission, approved_doc_desc, approved_subm_desc):
             if 'yang' in code:
                 modules = code['yang']
                 # Yang impact analysis URL
-                draft.documenturl_set.filter(tag_id='yang-impact-analysis').delete()
+                draft.docextresource_set.filter(name_id='yc_impact').delete()
                 f = settings.SUBMIT_YANG_CATALOG_MODULEARG
                 moduleargs = '&'.join([ f.format(module=m) for m in modules])
                 url  = settings.SUBMIT_YANG_CATALOG_IMPACT_URL.format(moduleargs=moduleargs, draft=draft.name)
                 desc = settings.SUBMIT_YANG_CATALOG_IMPACT_DESC.format(modules=','.join(modules), draft=draft.name)
-                draft.documenturl_set.create(url=url, tag_id='yang-impact-analysis', desc=desc)
+                draft.docextresource_set.create(value=url, name_id='yang-impact-analysis', display_name=desc)
                 # Yang module metadata URLs
-                old_urls = draft.documenturl_set.filter(tag_id='yang-module-metadata')
+                old_urls = draft.documenturl_set.filter(tag_id='yc_entry')
                 old_urls.delete()
                 for module in modules:
                     url  = settings.SUBMIT_YANG_CATALOG_MODULE_URL.format(module=module)
                     desc = settings.SUBMIT_YANG_CATALOG_MODULE_DESC.format(module=module)
-                    draft.documenturl_set.create(url=url, tag_id='yang-module-metadata', desc=desc)
+                    draft.docextresource_set.create(value=url, name_id='yc_entry', display_name=desc)
 
     if not draft.get_state('draft-iesg'):
         draft.states.add(State.objects.get(type_id='draft-iesg', slug='idexists'))
diff --git a/ietf/templates/doc/document_draft.html b/ietf/templates/doc/document_draft.html
index f6d01ac7f..ac3bd9a4f 100644
--- a/ietf/templates/doc/document_draft.html
+++ b/ietf/templates/doc/document_draft.html
@@ -245,31 +245,36 @@
         </tr>
       {% endif %}
 
-      {% with doc.documenturl_set.all as urls %}
-        {% if urls or can_edit_stream_info or can_edit_individual %}
-        <tr>
-          <td></td>
-          <th>Additional URLs</th>
-          <td class="edit">
-            {% if can_edit_stream_info or can_edit_individual %}
-              <a class="btn btn-default btn-xs" href="{% url 'ietf.doc.views_draft.edit_document_urls' name=doc.name %}">Edit</a>
-            {% endif %}
-          </td>
-          <td>
-            {% if urls or doc.group and doc.group.list_archive %}
-            <table class="col-md-12 col-sm-12 col-xs-12">
-              <tbody>
-                {% for url in urls|dictsort:"desc" %}
-                  <tr><td> - <a href="{{ url.url }}">{% firstof url.desc url.tag.name %}</a></td></tr>
-                {% endfor %}
-                {% if doc.group and doc.group.list_archive %}
-                  <tr><td> - <a href="{{doc.group.list_archive}}?q={{doc.name}}">Mailing list discussion</a><td></tr>
-                {% endif %}
-              </tbody>
-            </table>
-            {% endif %}
-          </td>
-        </tr>
+      {% with doc.docextresource_set.all as resources %}
+        {% if resources or can_edit_stream_info or can_edit_individual %}
+          <tr>
+            <td></td>
+            <th>Additional Resources</th>
+            <td class="edit">
+              {% if can_edit_stream_info or can_edit_individual %}
+                <a class="btn btn-default btn-xs" href="{% url 'ietf.doc.views_draft.edit_doc_extresources' name=doc.name %}">Edit</a> 
+              {% endif %}
+            </td>
+            <td>
+              {% if resources or doc.group and doc.group.list_archive %}
+              <table class="col-md-12 col-sm-12 col-xs-12">
+                <tbody>
+                  {% for resource in resources|dictsort:"display_name" %}
+                    {% if resource.name.type.slug == 'url' or resource.name.type.slug == 'email' %}
+                      <tr><td> - <a href="{{ resource.value }}" title="{{resource.name.name}}">{% firstof resource.display_name resource.name.name %}</a></td></tr> 
+                      {# Maybe make how a resource displays itself a method on the class so templates aren't doing this switching #}
+                    {% else %}
+                      <tr><td> - <span title="{{resource.name.name}}">{% firstof resource.display_name resource.name.name %}: {{resource.value}}</span></td></tr>
+                    {% endif %}
+                  {% endfor %}
+                  {% if doc.group and doc.group.list_archive %}
+                    <tr><td> - <a href="{{doc.group.list_archive}}?q={{doc.name}}">Mailing list discussion</a><td></tr>
+                  {% endif %}
+                </tbody>
+              </table>
+              {% endif %}
+            </td>
+          </tr>
         {% endif %}
       {% endwith %}
 
diff --git a/ietf/templates/group/group_about.html b/ietf/templates/group/group_about.html
index ba94d4407..0bc00f6d7 100644
--- a/ietf/templates/group/group_about.html
+++ b/ietf/templates/group/group_about.html
@@ -114,30 +114,35 @@
 	</tr>
       {% endif %}
 
-      {% with group.groupurl_set.all as urls %}
-        {% if urls or can_edit_group %}
-	<tr>
-          <td></td>
-          <th>Additional URLs</th>
-	  <td class="edit">
-	    {% if can_edit_group %}
-	      <a class="btn btn-default btn-xs" href="{% url 'ietf.group.views.edit' acronym=group.acronym field='urls' %}">Edit</a>
-	    {% endif %}
-	  </td>
-          <td>
-            {% if urls %}
-	    <table class="col-md-12 col-sm-12 col-xs-12">
-	      <tbody>
-		{% for url in urls %}
-		<tr><td> - <a href="{{ url.url }}">{% firstof url.name url.url %}</a></td></tr>
-		{% endfor %}
-	      </tbody>
-	    </table>
-            {% endif %}
-          </td>
-	</tr>
+       {% with group.groupextresource_set.all as resources %}
+        {% if resources or can_edit_group %}
+          <tr>
+            <td></td>
+            <th>Additional Resources</th>
+            <td class="edit">
+              {% if can_edit_group %}
+                <a class="btn btn-default btn-xs" href="{% url 'ietf.group.views.edit' acronym=group.acronym field='resources' %}">Edit</a>
+              {% endif %}
+            </td>
+            <td>
+              {% if resources %}
+                <table class="col-md-12 col-sm-12 col-xs-12">
+                  <tbody>
+                    {% for resource in resources|dictsort:"display_name" %}
+                      {% if resource.name.type.slug == 'url' or resource.name.type.slug == 'email' %}
+                        <tr><td> - <a href="{{ resource.value }}" title="{{resource.name.name}}">{% firstof resource.display_name resource.name.name %}</a></td></tr> 
+                        {# Maybe make how a resource displays itself a method on the class so templates aren't doing this switching #}
+                      {% else %}
+                        <tr><td> - <span title="{{resource.name.name}}">{% firstof resource.display_name resource.name.name %}: {{resource.value}}</span></td></tr>
+                      {% endif %}
+                    {% endfor %}
+                  </tbody>
+                </table>
+              {% endif %}
+            </td>
+          </tr>
         {% endif %}
-      {% endwith %}
+      {% endwith %}     
     </tbody>
 
     <tbody class="meta">
diff --git a/ietf/templates/ietfauth/edit_field.html b/ietf/templates/ietfauth/edit_field.html
new file mode 100644
index 000000000..4a3ae692a
--- /dev/null
+++ b/ietf/templates/ietfauth/edit_field.html
@@ -0,0 +1,33 @@
+{% extends "base.html" %}
+{# Copyright The IETF Trust 2015, All Rights Reserved #}
+{% load origin %}
+
+{% load bootstrap3 %}
+
+{% block title %}
+  {{ title }} {{ person.plain_name }}
+{% endblock %}
+
+{% block content %}
+  {% origin %}
+  <h1>{{ title }}<br><small>{{ person.plain_name }}</small></h1>
+
+  <p>
+    <b>
+    {{ info|safe }}
+    </b>
+  </p>
+
+
+  <form enctype="multipart/form-data" method="post">
+    {% csrf_token %}
+    {% bootstrap_form form %}
+
+    {% buttons %}
+      <!-- Regarding placement of buttons: https://www.lukew.com/ff/entry.asp?571 -->
+      <button type="submit" class="btn btn-primary" name="submit" value="Save">Submit</button>
+      <a class="btn btn-default pull-right" href="{% url "ietf.ietfauth.views.profile" %}">Back</a>
+    {% endbuttons %}
+  </form>
+
+{% endblock %}
diff --git a/ietf/templates/liaisons/edit.html b/ietf/templates/liaisons/edit.html
index 20d2b73e6..16a7ca6eb 100644
--- a/ietf/templates/liaisons/edit.html
+++ b/ietf/templates/liaisons/edit.html
@@ -45,7 +45,7 @@
 
     {% for fieldset in form.fieldsets %}
       {% if forloop.first and user|has_role:"Secretariat" %}
-        <h2><div class="col-md-2">{{ fieldset.name }}</div><div class="col-md-10"><a class="small" target="_blank" href="{% url 'ietf.secr.groups.views.add' %}">Add new group &gt&gt</a></div></h2>
+        <h2><div class="col-md-2">{{ fieldset.name }}</div><div class="col-md-10"></div></h2>
       {% else %}
         <h2>{{ fieldset.name }}</h2>
       {% endif %}
diff --git a/ietf/templates/person/profile.html b/ietf/templates/person/profile.html
index 1238e3081..3e3c74e9a 100644
--- a/ietf/templates/person/profile.html
+++ b/ietf/templates/person/profile.html
@@ -57,7 +57,19 @@
     </div>
   {% endif %}
 
-
+  {% if person.personextresource_set.exists %}
+    <div class="col-md-12">
+      <h2 id="extresources">External Resources</h2>
+      <table class="table">
+        {% for extres in person.personextresource_set.all %}
+          <tr>
+            <td class="col-md-1"><span title="{{ extres.name.name }}">{% firstof extres.display_name extres.name.name %}</span></td>
+            <td class="col-md-11">{{extres.value}}</td>
+          </tr>
+        {% endfor %}
+      </table>
+    </div>
+  {% endif %}
 
   <div class="col-md-6">
      <h2 id="rfcs">RFCs</h2>
diff --git a/ietf/templates/registration/edit_profile.html b/ietf/templates/registration/edit_profile.html
index 23f63e31e..b879c4aa8 100644
--- a/ietf/templates/registration/edit_profile.html
+++ b/ietf/templates/registration/edit_profile.html
@@ -94,7 +94,7 @@
       <label class="col-sm-2 control-label">Nomcom Eligible</label>
       <div class="col-sm-1 form-control-static">{{person|is_nomcom_eligible|yesno:'Yes,No,No'}}</div>
       <div class="col-sm-9">
-	   <p class="alert alert-info form-control-static ">
+	   <p class="alert alert-info form-control-static">
 	     This calculation is EXPERIMENTAL.<br/>
 
 	     If you believe it is incorrect, make sure you've added all the
@@ -111,6 +111,22 @@
       </div>
     </div>
 
+    <div class="form-group">
+      <label class="col-sm-2 control-label">External Resources</label>
+      <div class="col-sm-10 form-control-static">
+        {% for extres in person.personextresource_set.all %}
+          <div class="row">
+            <div class="col-sm-1"><span title="{{ extres.name.name}}">{% firstof extres.display_name extres.name.name %}</span></div>
+            <div class="col-sm-11">{{extres.value}}
+              {% if forloop.first %}&nbsp;<a href="{% url 'ietf.ietfauth.views.edit_person_externalresources' %}"><span class="fa fa-pencil"></span></a>{% endif %}
+            </div>
+          </div>
+        {% empty %}
+          <div class="row"><div class="col-sm-1">None&nbsp;<a href="{% url 'ietf.ietfauth.views.edit_person_externalresources' %}"><span class="fa fa-pencil"></span></a></div></div>
+        {% endfor %}
+      </div>
+    </div>
+
     <div class="form-group">
       <label class="col-sm-2 control-label">Email addresses</label>
       <div class="col-sm-10">
diff --git a/ietf/utils/validators.py b/ietf/utils/validators.py
index b38127154..e82a02950 100644
--- a/ietf/utils/validators.py
+++ b/ietf/utils/validators.py
@@ -5,12 +5,16 @@
 import os
 import re
 from pyquery import PyQuery
+from urllib.parse import urlparse, urlsplit, urlunsplit
+
 
 from django.conf import settings
 from django.core.exceptions import ValidationError
-from django.core.validators import RegexValidator
+from django.core.validators import RegexValidator, URLValidator, EmailValidator, _lazy_re_compile
 from django.template.defaultfilters import filesizeformat
 from django.utils.deconstruct import deconstructible
+from django.utils.ipv6 import is_valid_ipv6_address
+from django.utils.translation import gettext_lazy as _
 
 import debug                            # pyflakes:ignore
 
@@ -83,3 +87,106 @@ def validate_no_html_frame(file):
     q = PyQuery(file.read())
     if q("frameset") or q("frame") or q("iframe"):
         raise ValidationError('Found content with html frames.  Please upload a file that does not use frames')
+
+# instantiations of sub-validiators used by the external_resource validator
+
+validate_url = URLValidator()
+validate_http_url = URLValidator(schemes=['http','https'])
+validate_email = EmailValidator()
+
+def validate_ipv6_address(value):
+    if not is_valid_ipv6_address(value):
+        raise ValidationError(_('Enter a valid IPv6 address.'), code='invalid')
+
+@deconstructible
+class XMPPURLValidator(RegexValidator):
+    ul = '\u00a1-\uffff'  # unicode letters range (must not be a raw string)
+
+    # IP patterns
+    ipv4_re = r'(?:25[0-5]|2[0-4]\d|[0-1]?\d?\d)(?:\.(?:25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}'
+    ipv6_re = r'\[[0-9a-f:\.]+\]'  # (simple regex, validated later)
+
+    # Host patterns
+    hostname_re = r'[a-z' + ul + r'0-9](?:[a-z' + ul + r'0-9-]{0,61}[a-z' + ul + r'0-9])?'
+    # Max length for domain name labels is 63 characters per RFC 1034 sec. 3.1
+    domain_re = r'(?:\.(?!-)[a-z' + ul + r'0-9-]{1,63}(?<!-))*'
+    tld_re = (
+        r'\.'                                # dot
+        r'(?!-)'                             # can't start with a dash
+        r'(?:[a-z' + ul + '-]{2,63}'         # domain label
+        r'|xn--[a-z0-9]{1,59})'              # or punycode label
+        r'(?<!-)'                            # can't end with a dash
+        r'\.?'                               # may have a trailing dot
+    )
+    host_re = '(' + hostname_re + domain_re + tld_re + '|localhost)'
+
+    regex = _lazy_re_compile(
+        r'^(?:xmpp:)'  # Note there is no '//'
+        r'(?:[^\s:@/]+(?::[^\s:@/]*)?@)?'  # user:pass authentication
+        r'(?:' + ipv4_re + '|' + ipv6_re + '|' + host_re + ')'
+        r'(?::\d{2,5})?'  # port
+        r'(?:[/?#][^\s]*)?'  # resource path
+        r'\Z', re.IGNORECASE)
+    message = _('Enter a valid URL.')
+    schemes = ['http', 'https', 'ftp', 'ftps']
+
+    def __call__(self, value):
+        try:
+            super().__call__(value)
+        except ValidationError as e:
+            # Trivial case failed. Try for possible IDN domain
+            if value:
+                try:
+                    scheme, netloc, path, query, fragment = urlsplit(value)
+                except ValueError:  # for example, "Invalid IPv6 URL"
+                    raise ValidationError(self.message, code=self.code)
+                try:
+                    netloc = netloc.encode('idna').decode('ascii')  # IDN -> ACE
+                except UnicodeError:  # invalid domain part
+                    raise e
+                url = urlunsplit((scheme, netloc, path, query, fragment))
+                super().__call__(url)
+            else:
+                raise
+        else:
+            # Now verify IPv6 in the netloc part
+            host_match = re.search(r'^\[(.+)\](?::\d{2,5})?$', urlsplit(value).netloc)
+            if host_match:
+                potential_ip = host_match.groups()[0]
+                try:
+                    validate_ipv6_address(potential_ip)
+                except ValidationError:
+                    raise ValidationError(self.message, code=self.code)
+
+        # The maximum length of a full host name is 253 characters per RFC 1034
+        # section 3.1. It's defined to be 255 bytes or less, but this includes
+        # one byte for the length of the name and one byte for the trailing dot
+        # that's used to indicate absolute names in DNS.
+        if len(urlsplit(value).netloc) > 253:
+            raise ValidationError(self.message, code=self.code)
+
+validate_xmpp = XMPPURLValidator()
+
+def validate_external_resource_value(name, value):
+    """ validate a resource value using its name's properties """
+
+    if name.type.slug == 'url':
+
+        if name.slug in ( 'github_org', 'github_repo' ):
+            validate_http_url(value)
+            if urlparse(value).netloc.lower() != 'github.com':
+                raise ValidationError('URL must be a github url')
+        elif name.slug == 'jabber_room':
+            validate_xmpp(value)
+        else:
+            validate_url(value)
+
+    elif name.type.slug == 'email':
+        validate_email(value)
+
+    elif name.type.slug == 'string':
+        pass
+
+    else:
+        raise ValidationError('Unknown resource type '+name.type.name)
+