Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1547)

Unified Diff: mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/versioning/versioning_test_client.mojom.dart

Issue 2006093002: Dart: Futures -> Callbacks. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Cleanup Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/versioning/versioning_test_client.mojom.dart
diff --git a/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/versioning/versioning_test_client.mojom.dart b/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/versioning/versioning_test_client.mojom.dart
index 2004a480db11f6b543899744a3b61f6fb21913e5..f25985a88435b119a5872be5105071eccd86d047 100644
--- a/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/versioning/versioning_test_client.mojom.dart
+++ b/mojo/dart/packages/_mojo_for_test_only/lib/mojo/test/versioning/versioning_test_client.mojom.dart
@@ -77,6 +77,12 @@ class Employee extends bindings.Struct {
Employee() : super(kVersions.last.size);
+ Employee.init(
+ int this.employeeId,
+ String this.name,
+ Department this.department
+ ) : super(kVersions.last.size);
+
static Employee deserialize(bindings.Message message) {
var decoder = new bindings.Decoder(message);
var result = decode(decoder);
@@ -179,6 +185,10 @@ class _HumanResourceDatabaseAddEmployeeParams extends bindings.Struct {
_HumanResourceDatabaseAddEmployeeParams() : super(kVersions.last.size);
+ _HumanResourceDatabaseAddEmployeeParams.init(
+ Employee this.employee
+ ) : super(kVersions.last.size);
+
static _HumanResourceDatabaseAddEmployeeParams deserialize(bindings.Message message) {
var decoder = new bindings.Decoder(message);
var result = decode(decoder);
@@ -252,6 +262,10 @@ class HumanResourceDatabaseAddEmployeeResponseParams extends bindings.Struct {
HumanResourceDatabaseAddEmployeeResponseParams() : super(kVersions.last.size);
+ HumanResourceDatabaseAddEmployeeResponseParams.init(
+ bool this.success
+ ) : super(kVersions.last.size);
+
static HumanResourceDatabaseAddEmployeeResponseParams deserialize(bindings.Message message) {
var decoder = new bindings.Decoder(message);
var result = decode(decoder);
@@ -326,6 +340,11 @@ class _HumanResourceDatabaseQueryEmployeeParams extends bindings.Struct {
_HumanResourceDatabaseQueryEmployeeParams() : super(kVersions.last.size);
+ _HumanResourceDatabaseQueryEmployeeParams.init(
+ int this.id,
+ bool this.retrieveFingerPrint
+ ) : super(kVersions.last.size);
+
static _HumanResourceDatabaseQueryEmployeeParams deserialize(bindings.Message message) {
var decoder = new bindings.Decoder(message);
var result = decode(decoder);
@@ -413,6 +432,11 @@ class HumanResourceDatabaseQueryEmployeeResponseParams extends bindings.Struct {
HumanResourceDatabaseQueryEmployeeResponseParams() : super(kVersions.last.size);
+ HumanResourceDatabaseQueryEmployeeResponseParams.init(
+ Employee this.employee,
+ List<int> this.fingerPrint
+ ) : super(kVersions.last.size);
+
static HumanResourceDatabaseQueryEmployeeResponseParams deserialize(bindings.Message message) {
var decoder = new bindings.Decoder(message);
var result = decode(decoder);
@@ -500,6 +524,11 @@ class _HumanResourceDatabaseAttachFingerPrintParams extends bindings.Struct {
_HumanResourceDatabaseAttachFingerPrintParams() : super(kVersions.last.size);
+ _HumanResourceDatabaseAttachFingerPrintParams.init(
+ int this.id,
+ List<int> this.fingerPrint
+ ) : super(kVersions.last.size);
+
static _HumanResourceDatabaseAttachFingerPrintParams deserialize(bindings.Message message) {
var decoder = new bindings.Decoder(message);
var result = decode(decoder);
@@ -585,6 +614,10 @@ class HumanResourceDatabaseAttachFingerPrintResponseParams extends bindings.Stru
HumanResourceDatabaseAttachFingerPrintResponseParams() : super(kVersions.last.size);
+ HumanResourceDatabaseAttachFingerPrintResponseParams.init(
+ bool this.success
+ ) : super(kVersions.last.size);
+
static HumanResourceDatabaseAttachFingerPrintResponseParams deserialize(bindings.Message message) {
var decoder = new bindings.Decoder(message);
var result = decode(decoder);
@@ -656,6 +689,9 @@ class _HumanResourceDatabaseListEmployeeIdsParams extends bindings.Struct {
_HumanResourceDatabaseListEmployeeIdsParams() : super(kVersions.last.size);
+ _HumanResourceDatabaseListEmployeeIdsParams.init(
+ ) : super(kVersions.last.size);
+
static _HumanResourceDatabaseListEmployeeIdsParams deserialize(bindings.Message message) {
var decoder = new bindings.Decoder(message);
var result = decode(decoder);
@@ -715,6 +751,10 @@ class HumanResourceDatabaseListEmployeeIdsResponseParams extends bindings.Struct
HumanResourceDatabaseListEmployeeIdsResponseParams() : super(kVersions.last.size);
+ HumanResourceDatabaseListEmployeeIdsResponseParams.init(
+ List<int> this.ids
+ ) : super(kVersions.last.size);
+
static HumanResourceDatabaseListEmployeeIdsResponseParams deserialize(bindings.Message message) {
var decoder = new bindings.Decoder(message);
var result = decode(decoder);
@@ -784,17 +824,19 @@ const int _humanResourceDatabaseMethodAttachFingerPrintName = 2;
const int _humanResourceDatabaseMethodListEmployeeIdsName = 3;
class _HumanResourceDatabaseServiceDescription implements service_describer.ServiceDescription {
- dynamic getTopLevelInterface([Function responseFactory]){
+ void getTopLevelInterface(Function responder){
var interfaceTypeKey = getRuntimeTypeInfo().services["mojo::test::versioning::HumanResourceDatabase"];
var userDefinedType = getAllMojomTypeDefinitions()[interfaceTypeKey];
- return responseFactory(userDefinedType.interfaceType);
+ responder(userDefinedType.interfaceType);
}
- dynamic getTypeDefinition(String typeKey, [Function responseFactory]) =>
- responseFactory(getAllMojomTypeDefinitions()[typeKey]);
+ void getTypeDefinition(String typeKey, Function responder) {
+ responder(getAllMojomTypeDefinitions()[typeKey]);
+ }
- dynamic getAllTypeDefinitions([Function responseFactory]) =>
- responseFactory(getAllMojomTypeDefinitions());
+ void getAllTypeDefinitions(Function responder) {
+ responder(getAllMojomTypeDefinitions());
+ }
}
abstract class HumanResourceDatabase {
@@ -819,10 +861,10 @@ abstract class HumanResourceDatabase {
s.connectToService(url, p, name);
return p;
}
- dynamic addEmployee(Employee employee,[Function responseFactory = null]);
- dynamic queryEmployee(int id,bool retrieveFingerPrint,[Function responseFactory = null]);
- dynamic attachFingerPrint(int id,List<int> fingerPrint,[Function responseFactory = null]);
- dynamic listEmployeeIds([Function responseFactory = null]);
+ void addEmployee(Employee employee,void callback(bool success));
+ void queryEmployee(int id,bool retrieveFingerPrint,void callback(Employee employee, List<int> fingerPrint));
+ void attachFingerPrint(int id,List<int> fingerPrint,void callback(bool success));
+ void listEmployeeIds(void callback(List<int> ids));
}
abstract class HumanResourceDatabaseInterface
@@ -872,18 +914,14 @@ class _HumanResourceDatabaseProxyControl
proxyError("Expected a message with a valid request Id.");
return;
}
- Completer c = completerMap[message.header.requestId];
- if (c == null) {
+ Function callback = callbackMap[message.header.requestId];
+ if (callback == null) {
proxyError(
"Message had unknown request Id: ${message.header.requestId}");
return;
}
- completerMap.remove(message.header.requestId);
- if (c.isCompleted) {
- proxyError("Response completer already completed");
- return;
- }
- c.complete(r);
+ callbackMap.remove(message.header.requestId);
+ callback(r.success );
break;
case _humanResourceDatabaseMethodQueryEmployeeName:
var r = HumanResourceDatabaseQueryEmployeeResponseParams.deserialize(
@@ -892,18 +930,14 @@ class _HumanResourceDatabaseProxyControl
proxyError("Expected a message with a valid request Id.");
return;
}
- Completer c = completerMap[message.header.requestId];
- if (c == null) {
+ Function callback = callbackMap[message.header.requestId];
+ if (callback == null) {
proxyError(
"Message had unknown request Id: ${message.header.requestId}");
return;
}
- completerMap.remove(message.header.requestId);
- if (c.isCompleted) {
- proxyError("Response completer already completed");
- return;
- }
- c.complete(r);
+ callbackMap.remove(message.header.requestId);
+ callback(r.employee , r.fingerPrint );
break;
case _humanResourceDatabaseMethodAttachFingerPrintName:
var r = HumanResourceDatabaseAttachFingerPrintResponseParams.deserialize(
@@ -912,18 +946,14 @@ class _HumanResourceDatabaseProxyControl
proxyError("Expected a message with a valid request Id.");
return;
}
- Completer c = completerMap[message.header.requestId];
- if (c == null) {
+ Function callback = callbackMap[message.header.requestId];
+ if (callback == null) {
proxyError(
"Message had unknown request Id: ${message.header.requestId}");
return;
}
- completerMap.remove(message.header.requestId);
- if (c.isCompleted) {
- proxyError("Response completer already completed");
- return;
- }
- c.complete(r);
+ callbackMap.remove(message.header.requestId);
+ callback(r.success );
break;
case _humanResourceDatabaseMethodListEmployeeIdsName:
var r = HumanResourceDatabaseListEmployeeIdsResponseParams.deserialize(
@@ -932,18 +962,14 @@ class _HumanResourceDatabaseProxyControl
proxyError("Expected a message with a valid request Id.");
return;
}
- Completer c = completerMap[message.header.requestId];
- if (c == null) {
+ Function callback = callbackMap[message.header.requestId];
+ if (callback == null) {
proxyError(
"Message had unknown request Id: ${message.header.requestId}");
return;
}
- completerMap.remove(message.header.requestId);
- if (c.isCompleted) {
- proxyError("Response completer already completed");
- return;
- }
- c.complete(r);
+ callbackMap.remove(message.header.requestId);
+ callback(r.ids );
break;
default:
proxyError("Unexpected message type: ${message.header.type}");
@@ -988,54 +1014,62 @@ class HumanResourceDatabaseProxy
}
- dynamic addEmployee(Employee employee,[Function responseFactory = null]) {
+ void addEmployee(Employee employee,void callback(bool success)) {
if (impl != null) {
- return new Future(() => impl.addEmployee(employee,_HumanResourceDatabaseStubControl._humanResourceDatabaseAddEmployeeResponseParamsFactory));
+ impl.addEmployee(employee,callback);
+ return;
}
var params = new _HumanResourceDatabaseAddEmployeeParams();
params.employee = employee;
- return ctrl.sendMessageWithRequestId(
+ ctrl.sendMessageWithRequestId(
params,
_humanResourceDatabaseMethodAddEmployeeName,
-1,
- bindings.MessageHeader.kMessageExpectsResponse);
+ bindings.MessageHeader.kMessageExpectsResponse,
+ callback);
}
- dynamic queryEmployee(int id,bool retrieveFingerPrint,[Function responseFactory = null]) {
+ void queryEmployee(int id,bool retrieveFingerPrint,void callback(Employee employee, List<int> fingerPrint)) {
if (impl != null) {
- return new Future(() => impl.queryEmployee(id,retrieveFingerPrint,_HumanResourceDatabaseStubControl._humanResourceDatabaseQueryEmployeeResponseParamsFactory));
+ impl.queryEmployee(id,retrieveFingerPrint,callback);
+ return;
}
var params = new _HumanResourceDatabaseQueryEmployeeParams();
params.id = id;
params.retrieveFingerPrint = retrieveFingerPrint;
- return ctrl.sendMessageWithRequestId(
+ ctrl.sendMessageWithRequestId(
params,
_humanResourceDatabaseMethodQueryEmployeeName,
-1,
- bindings.MessageHeader.kMessageExpectsResponse);
+ bindings.MessageHeader.kMessageExpectsResponse,
+ callback);
}
- dynamic attachFingerPrint(int id,List<int> fingerPrint,[Function responseFactory = null]) {
+ void attachFingerPrint(int id,List<int> fingerPrint,void callback(bool success)) {
if (impl != null) {
- return new Future(() => impl.attachFingerPrint(id,fingerPrint,_HumanResourceDatabaseStubControl._humanResourceDatabaseAttachFingerPrintResponseParamsFactory));
+ impl.attachFingerPrint(id,fingerPrint,callback);
+ return;
}
var params = new _HumanResourceDatabaseAttachFingerPrintParams();
params.id = id;
params.fingerPrint = fingerPrint;
- return ctrl.sendMessageWithRequestId(
+ ctrl.sendMessageWithRequestId(
params,
_humanResourceDatabaseMethodAttachFingerPrintName,
-1,
- bindings.MessageHeader.kMessageExpectsResponse);
+ bindings.MessageHeader.kMessageExpectsResponse,
+ callback);
}
- dynamic listEmployeeIds([Function responseFactory = null]) {
+ void listEmployeeIds(void callback(List<int> ids)) {
if (impl != null) {
- return new Future(() => impl.listEmployeeIds(_HumanResourceDatabaseStubControl._humanResourceDatabaseListEmployeeIdsResponseParamsFactory));
+ impl.listEmployeeIds(callback);
+ return;
}
var params = new _HumanResourceDatabaseListEmployeeIdsParams();
- return ctrl.sendMessageWithRequestId(
+ ctrl.sendMessageWithRequestId(
params,
_humanResourceDatabaseMethodListEmployeeIdsName,
-1,
- bindings.MessageHeader.kMessageExpectsResponse);
+ bindings.MessageHeader.kMessageExpectsResponse,
+ callback);
}
}
@@ -1061,33 +1095,61 @@ class _HumanResourceDatabaseStubControl
String get serviceName => HumanResourceDatabase.serviceName;
- static HumanResourceDatabaseAddEmployeeResponseParams _humanResourceDatabaseAddEmployeeResponseParamsFactory(bool success) {
- var result = new HumanResourceDatabaseAddEmployeeResponseParams();
- result.success = success;
- return result;
- }
- static HumanResourceDatabaseQueryEmployeeResponseParams _humanResourceDatabaseQueryEmployeeResponseParamsFactory(Employee employee, List<int> fingerPrint) {
- var result = new HumanResourceDatabaseQueryEmployeeResponseParams();
- result.employee = employee;
- result.fingerPrint = fingerPrint;
- return result;
- }
- static HumanResourceDatabaseAttachFingerPrintResponseParams _humanResourceDatabaseAttachFingerPrintResponseParamsFactory(bool success) {
- var result = new HumanResourceDatabaseAttachFingerPrintResponseParams();
- result.success = success;
- return result;
- }
- static HumanResourceDatabaseListEmployeeIdsResponseParams _humanResourceDatabaseListEmployeeIdsResponseParamsFactory(List<int> ids) {
- var result = new HumanResourceDatabaseListEmployeeIdsResponseParams();
- result.ids = ids;
- return result;
- }
-
- dynamic handleMessage(bindings.ServiceMessage message) {
+ Function _humanResourceDatabaseAddEmployeeResponseParamsResponder(
+ int requestId) {
+ return (bool success) {
+ var result = new HumanResourceDatabaseAddEmployeeResponseParams();
+ result.success = success;
+ sendResponse(buildResponseWithId(
+ result,
+ _humanResourceDatabaseMethodAddEmployeeName,
+ requestId,
+ bindings.MessageHeader.kMessageIsResponse));
+ };
+ }
+ Function _humanResourceDatabaseQueryEmployeeResponseParamsResponder(
+ int requestId) {
+ return (Employee employee, List<int> fingerPrint) {
+ var result = new HumanResourceDatabaseQueryEmployeeResponseParams();
+ result.employee = employee;
+ result.fingerPrint = fingerPrint;
+ sendResponse(buildResponseWithId(
+ result,
+ _humanResourceDatabaseMethodQueryEmployeeName,
+ requestId,
+ bindings.MessageHeader.kMessageIsResponse));
+ };
+ }
+ Function _humanResourceDatabaseAttachFingerPrintResponseParamsResponder(
+ int requestId) {
+ return (bool success) {
+ var result = new HumanResourceDatabaseAttachFingerPrintResponseParams();
+ result.success = success;
+ sendResponse(buildResponseWithId(
+ result,
+ _humanResourceDatabaseMethodAttachFingerPrintName,
+ requestId,
+ bindings.MessageHeader.kMessageIsResponse));
+ };
+ }
+ Function _humanResourceDatabaseListEmployeeIdsResponseParamsResponder(
+ int requestId) {
+ return (List<int> ids) {
+ var result = new HumanResourceDatabaseListEmployeeIdsResponseParams();
+ result.ids = ids;
+ sendResponse(buildResponseWithId(
+ result,
+ _humanResourceDatabaseMethodListEmployeeIdsName,
+ requestId,
+ bindings.MessageHeader.kMessageIsResponse));
+ };
+ }
+
+ void handleMessage(bindings.ServiceMessage message) {
if (bindings.ControlMessageHandler.isControlMessage(message)) {
- return bindings.ControlMessageHandler.handleMessage(this,
- 2,
- message);
+ bindings.ControlMessageHandler.handleMessage(
+ this, 2, message);
+ return;
}
if (_impl == null) {
throw new core.MojoApiError("$this has no implementation set");
@@ -1096,94 +1158,25 @@ class _HumanResourceDatabaseStubControl
case _humanResourceDatabaseMethodAddEmployeeName:
var params = _HumanResourceDatabaseAddEmployeeParams.deserialize(
message.payload);
- var response = _impl.addEmployee(params.employee,_humanResourceDatabaseAddEmployeeResponseParamsFactory);
- if (response is Future) {
- return response.then((response) {
- if (response != null) {
- return buildResponseWithId(
- response,
- _humanResourceDatabaseMethodAddEmployeeName,
- message.header.requestId,
- bindings.MessageHeader.kMessageIsResponse);
- }
- });
- } else if (response != null) {
- return buildResponseWithId(
- response,
- _humanResourceDatabaseMethodAddEmployeeName,
- message.header.requestId,
- bindings.MessageHeader.kMessageIsResponse);
- }
+ _impl.addEmployee(params.employee, _humanResourceDatabaseAddEmployeeResponseParamsResponder(message.header.requestId));
break;
case _humanResourceDatabaseMethodQueryEmployeeName:
var params = _HumanResourceDatabaseQueryEmployeeParams.deserialize(
message.payload);
- var response = _impl.queryEmployee(params.id,params.retrieveFingerPrint,_humanResourceDatabaseQueryEmployeeResponseParamsFactory);
- if (response is Future) {
- return response.then((response) {
- if (response != null) {
- return buildResponseWithId(
- response,
- _humanResourceDatabaseMethodQueryEmployeeName,
- message.header.requestId,
- bindings.MessageHeader.kMessageIsResponse);
- }
- });
- } else if (response != null) {
- return buildResponseWithId(
- response,
- _humanResourceDatabaseMethodQueryEmployeeName,
- message.header.requestId,
- bindings.MessageHeader.kMessageIsResponse);
- }
+ _impl.queryEmployee(params.id, params.retrieveFingerPrint, _humanResourceDatabaseQueryEmployeeResponseParamsResponder(message.header.requestId));
break;
case _humanResourceDatabaseMethodAttachFingerPrintName:
var params = _HumanResourceDatabaseAttachFingerPrintParams.deserialize(
message.payload);
- var response = _impl.attachFingerPrint(params.id,params.fingerPrint,_humanResourceDatabaseAttachFingerPrintResponseParamsFactory);
- if (response is Future) {
- return response.then((response) {
- if (response != null) {
- return buildResponseWithId(
- response,
- _humanResourceDatabaseMethodAttachFingerPrintName,
- message.header.requestId,
- bindings.MessageHeader.kMessageIsResponse);
- }
- });
- } else if (response != null) {
- return buildResponseWithId(
- response,
- _humanResourceDatabaseMethodAttachFingerPrintName,
- message.header.requestId,
- bindings.MessageHeader.kMessageIsResponse);
- }
+ _impl.attachFingerPrint(params.id, params.fingerPrint, _humanResourceDatabaseAttachFingerPrintResponseParamsResponder(message.header.requestId));
break;
case _humanResourceDatabaseMethodListEmployeeIdsName:
- var response = _impl.listEmployeeIds(_humanResourceDatabaseListEmployeeIdsResponseParamsFactory);
- if (response is Future) {
- return response.then((response) {
- if (response != null) {
- return buildResponseWithId(
- response,
- _humanResourceDatabaseMethodListEmployeeIdsName,
- message.header.requestId,
- bindings.MessageHeader.kMessageIsResponse);
- }
- });
- } else if (response != null) {
- return buildResponseWithId(
- response,
- _humanResourceDatabaseMethodListEmployeeIdsName,
- message.header.requestId,
- bindings.MessageHeader.kMessageIsResponse);
- }
+ _impl.listEmployeeIds(_humanResourceDatabaseListEmployeeIdsResponseParamsResponder(message.header.requestId));
break;
default:
throw new bindings.MojoCodecError("Unexpected message name");
break;
}
- return null;
}
HumanResourceDatabase get impl => _impl;
@@ -1237,17 +1230,17 @@ class HumanResourceDatabaseStub
}
- dynamic addEmployee(Employee employee,[Function responseFactory = null]) {
- return impl.addEmployee(employee,responseFactory);
+ void addEmployee(Employee employee,void callback(bool success)) {
+ return impl.addEmployee(employee,callback);
}
- dynamic queryEmployee(int id,bool retrieveFingerPrint,[Function responseFactory = null]) {
- return impl.queryEmployee(id,retrieveFingerPrint,responseFactory);
+ void queryEmployee(int id,bool retrieveFingerPrint,void callback(Employee employee, List<int> fingerPrint)) {
+ return impl.queryEmployee(id,retrieveFingerPrint,callback);
}
- dynamic attachFingerPrint(int id,List<int> fingerPrint,[Function responseFactory = null]) {
- return impl.attachFingerPrint(id,fingerPrint,responseFactory);
+ void attachFingerPrint(int id,List<int> fingerPrint,void callback(bool success)) {
+ return impl.attachFingerPrint(id,fingerPrint,callback);
}
- dynamic listEmployeeIds([Function responseFactory = null]) {
- return impl.listEmployeeIds(responseFactory);
+ void listEmployeeIds(void callback(List<int> ids)) {
+ return impl.listEmployeeIds(callback);
}
}
@@ -1264,7 +1257,7 @@ mojom_types.RuntimeTypeInfo _initRuntimeTypeInfo() {
// serializedRuntimeTypeInfo contains the bytes of the Mojo serialization of
// a mojom_types.RuntimeTypeInfo struct describing the Mojom types in this
// file. The string contains the base64 encoding of the gzip-compressed bytes.
- var serializedRuntimeTypeInfo = "H4sIAAAJbogC/+xaT2/jRBS3nUJDl9WW/VfDQtcFAdHCxhUIKcpeWtGgRSwoULRiT5HrTBujxA62U3U57ZEjH4PjHvcj8BE47pEjx95gZv0GT8YztpO4sSN1pKepXccz7zfv/d5vJtGVqG1C/wJ6/n6XuVax1eH6C2z3sY28n712O0RB2G6fIj9wPNdxT9rth5OR5f6AAm/i2+jACq0jK0CC9zzA9jm2H590O71vOk/a5IVN8r5m/Lqm7G3J+f4JvYGtxvx/D/oB9LvYGpnjHqCx5Ycj5IZN/OxHmc93RuOh9xShxf1qwfypXw1uHZ7X4mvy51918fptqtP+K4z/7P1/of2kiNt1bBvYYkSi+x9juwtxkAJfYl5XsL2GzcV2jM2cBL459GxraJ543skQmQNvhMxffcskrzYD347+GE+Oho5tOm6I/GPLRoF55Lh9PFpgkuEDMx6/R2707KFD1o98eBThozHzaKnT+BpKepPh2MqJ41Xw+3D/UecQcujDbPya9HkexzfBn2XjmIWXWhBeVyC+DzqPX11/gu2DHHjR53m8rpaEl8HzKwB0vjYbTl0JTpvAqZSBSEy9J8MppqkkX2BbLwkflq93AZ+uNo1Pi5vvhpKvyfBVGHxF92m7AbGIALqe0xfG11vY3igBPxE+KpuIXKvPgY/K8CTfCA+RUHatERLhcr0kXDYlfrI4ET6uq/K8mhUnLSWOaB3tc3WUx+sGcFVZPMX7b2TogFn1FK8DdWbMGjMeX2dewDr9Db0mWdfnnB6k/PlPCn+y8zEEeniduU/54BD5p46NvoOwn1sXE66+hU32/8+w3ZPxuVxGJuJqC9Zv2XE1Ly66JA514BtKcRrETQPu0+d2X4/6365F/cvb4rg6h/6P2sXUjf1+n6m6Sb/0iugSisOZlt9/0loS/+8ABoz/9330ywTPRIgDbWXUCTb/ZXVCVk/n1RuNDD1H9YYoXrYqVB90iQ6ddd+cVhdUCQ+wcasXFLfvYruZiNtg7LkBWrW4naUtGrfXoE4GExv7Egh57l4FcJLFlawuvFzLt6/l9bKsLtwCfff9BPlPU/Zj71SsLvxeKya/qN6Z8p+pDFXJL/68yFCXux+V5dkGzAu2ocK42arIPjSt1SXnRfTzZ5K8eraAjq8x49H9zLeO+zhybDo+fRT6DjpFvWPsMPJ7Y99xQwneZhXiM4PfdE4z6xn1tL5WTL5vY7styHdaUaua78/U1dCDd0CvlFUn1AvSgyLcyfp01WL55OyC+eQmnJFxNKKI1vFByetIMKHzWef2p4vyDK+vHtLznLX4PEfNuW7aEurA23Cmux+Glj346tXqdeniCdZvuyJ6jTo2mFGv7Unw3AEsEjhM7eYvdduium0bOKAKuk1LORef9/sD2X4oLz8SfD4t+dxDxI9p+8s0nUXz1NCKydP3QYuK8jQ+vbg8v5j3/ILE35crdH6xB/E11uLvVrSc9bVWgC7SMurrFmD+yAlCqvq+7idx36nYOci5Usy+6C5gwPn/f1WtSp7Wc/CckhIPFK9WQeezBrw7iVvEcqvEb9oS95H09zQOzjFRHdiB33RVZf+xkSPuWP77LwAA///UgNHD2CgAAA==";
+ var serializedRuntimeTypeInfo = "H4sIAAAJbogC/+xaT4/bRBS3nYUNW6ou/beGwtYLAqJC41URUpRedsUGFVFQYFFFT5HXmSZGiR1sZ7Xl1CNHPgbHHvsR+Agce+TIcW8wk7ypJ+MZ20m8sSN1pKdZe53xvN+893u/mURXpm0b+hfQ8/fbzLWKrQrXX2K7i23o/eI1myEKwmbzFPmB47mO22s2H4yHlvsjCryxb6MjK7ROrAAJxrmP7QtsPz1utzrfth43yYB1Ml49Gq4uGy0+37+gN7BVmP8fQN+Hfh9bLfW9R2hk+eEQuWEdP/tJ6vOt4WjgPUVoeb8aMH/qV41bh+eV6Jr8+XdVvH7b6qz/CuM/e/8/aD8r4nYV2xa2CJHp/U+x3YY4SIAvNq9L2N7A5mHrYTPHgW8OPNsamD3P6w2Q2feGyPzNt0wy9D0z8O3JX+ZofDJwbNNxQ+Q/sWwUmCeO28WvC0zy/sCMJtAhNzr2wCELSD48nMxDY+bRUGfxNZTkJsOxkRHHy+D38eHD1jHk0Mfp+NXp8zyOb4M/q8YxDS81J7wuQXwftR5Nrj/D9lEGvOjzPF6XC8LL4PkVADrfmA+ntgSnbeBUykAkpj6Q4RTRVJwvsG0WhA/L1/uAT1ubxafBzXdLydZk+CoMvqL7tF2DWEQAXcfpCuPrHWxvFYCfCB+VTUSuVRfAR2V4km+Eh0gou9YQiXC5WhAu2xI/WZwIH1dVeV7Ni5OWEEe0jna5OsrjdQ24qiie4v03UnTAvHqK14E6884K8z6+zryAdfoHek2yrs85PUj5898E/mTnYwj08CZzn/LBMfJPHRt9D2G/sC4mXH0Dm+z/97DdkfG5XEbG4moH1m/VcbUoLrokDnXgG0pxGsRNDe7T5/bfnPa/X5n2L2+K4+oc+j8rF1M3DrtdpurG/dJLoksoDmdadv9Ja0j8vwUYMP7f9dGvYzwRIQ60FVEn2PyX1QlZPV1Ub9RS9BzVG6J42SlRfdAlOnTefXNSXVAlPMDGrZ5T3L6P7XosboOR5wZo3eJ2nrZs3F6BOhmMbexKIOS5OyXASRZXsrrwciPbvpbXy7K6cAP03Q9j5D9N2I+9V7K68Ecln/yiemfGf6YylCW/+PMiQ13tflSWZ1swL9iGCuNmpyT70KRWlZwX0c+fSfLq2RI6vsK8j+5nvnPcR1O/ZuPTR6HvoFPUeYL9RX5n5DtuKMHbLEN8pvCbzmlmPaWeVjfyyfddbDcF+U4ralnz/Zm6HnrwFuiVouqEekF6UIQ7WZ+2mi+fnF0wn1yHMzKORhTROt4veB0JJnQ+m9z+dFme4fXVA3qesxGd56gZ101bQR14F850D8PQsvtfT1avTRdPsH67JdFr1LH+nHrtQILnHmARw2FmN/9aty2r23aBA8qg27SEc/FFvz+Q7Yey8iPB5/OCzz1E/Ji0v0zSWTRPDS2fPP0QtKgoT6PTi9fnF4ueX5D4+2qNzi8OIL5GWvTdipaxvlZy0EVaSn3dAcwfOkFIVd833TjueyU7BzlX8tkX3QYMOP9fVdWy5Gk1A88pCfFA8WrkdD5rwNhx3KYst078pq1wH0l/T+PgHBPVgT34TVdZ9h9bGeKO5b//AwAA///eLupx2CgAAA==";
// Deserialize RuntimeTypeInfo
var bytes = BASE64.decode(serializedRuntimeTypeInfo);

Powered by Google App Engine
This is Rietveld 408576698