Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Is Relay supported? #437

Closed
joonhocho opened this issue Mar 31, 2016 · 18 comments
Closed

Is Relay supported? #437

joonhocho opened this issue Mar 31, 2016 · 18 comments

Comments

@joonhocho
Copy link

Does/will react-native-router-flux support Relay?
Relay now supports react-native as you can see from the official example.
https://github.com/facebook/relay/tree/master/examples/TodoMVC
I'm wondering if react-native-router-flux has any plans to support Relay if not already supported.
If it is already supported, it would be very helpful to have an example.
I will be exploring on this topic. Meanwhile, any help/advice will be very welcomed!

@aksonov
Copy link
Owner

aksonov commented Mar 31, 2016

I don't have time to do example but as i remember someone used it without any problem - just wrap Router by Relay component...

@joonhocho
Copy link
Author

Thanks. Once I figure it out, I will make a PR.

@ugputu18
Copy link
Contributor

ugputu18 commented Apr 1, 2016

There is an easy way, yet not most optimal. See the sample on typescript.

export function relay(Component: Relay.RelayContainerClass<any>, queries: any, params?: any): React.ComponentClass<any> {

  return class RelayRootContainer extends React.Component<void, void> {
    private routedComponent: any = null
    private params: any = {}

    constructor(props: any, context?: any) {
      super(props, context)
      class Routed extends React.Component<void, void> {
        render(): JSX.Element {
          return <Component {...props} {...this.props}/>
        }
      }
      this.routedComponent = hoistStatics(Routed, Component)

      // Prepare queries params
      if (queries.params) {
        Object.assign(this.params, queries.params, _.pick(props, Object.keys(queries.params)))
      }
      if (params) {
        Object.assign(this.params, params)
      }
    }

    render(): JSX.Element {
      const route = {
        name: ['$$_aggregated', ...Object.keys(queries)].join('-'),
        queries: _.omit(queries, ['params']),
        params: this.params,
      }
      return <Relay.RootContainer Component={this.routedComponent} route={route}/>
    }
  }
}

And then in routes:
<Scene component={relay(SampleScreen, viewer)}/>

@aksonov
Copy link
Owner

aksonov commented Apr 1, 2016

Why just not

   <Relay>
         <Router><Scene>...</Scene></Router>
   </Relay>

On 01 Apr 2016, at 11:14, ugputu18 notifications@github.com wrote:

There is an easy way, yet not most optimal. See the sample on typescript.

export function relay(Component: Relay.RelayContainerClass, queries: any, params?: any): React.ComponentClass {

return class RelayRootContainer extends React.Component<void, void> {
private routedComponent: any = null
private params: any = {}

constructor(props: any, context?: any) {
  super(props, context)
  class Routed extends React.Component<void, void> {
    render(): JSX.Element {
      return <Component {...props} {...this.props}/>
    }
  }
  this.routedComponent = hoistStatics(Routed, Component)

  // Prepare queries params
  if (queries.params) {
    Object.assign(this.params, queries.params, _.pick(props, Object.keys(queries.params)))
  }
  if (params) {
    Object.assign(this.params, params)
  }
}

render(): JSX.Element {
  const route = {
    name: ['$$_aggregated', ...Object.keys(queries)].join('-'),
    queries: _.omit(queries, ['params']),
    params: this.params,
  }
  return <Relay.RootContainer Component={this.routedComponent} route={route}/>
}

}
}
And then in routes:
<Scene component={relay(SampleScreen, viewer)}/>


You are receiving this because you commented.
Reply to this email directly or view it on GitHub #437 (comment)

@aksonov aksonov closed this as completed Apr 4, 2016
@r0b1n
Copy link
Contributor

r0b1n commented Apr 26, 2016

@aksonov I may try to achieve this as a OOB feature.

I would like to suggest something like this:
Inspired by react-router-relay

const ViewerQueries = {
  viewer: () => Relay.QL`query { viewer }`
};

<Router createReducer={reducerCreate}>
  <Scene key="modal" component={Modal} >
    <Scene key="root" hideNavBar={true}>
      <Scene key="echo" clone component={EchoView} />
      <Scene key="register" component={Register} title="Register" />
      <RelayScene // or even just Scene
        key="relay"
        queries={ViewerQueries} // queries needed for relay component
        component={RelayBasedScene}
        title="RelayScene"
      />
    </Scene>
    <Scene key="error" component={Error}/>
  </Scene>
</Router>

And as I see we can extend DefaultRenderer here to render Relay components.

Does it work for you?

@rgovindji
Copy link

@r0b1n I would really appreciate this feature, since my app will over fetch data if I simply wrap the router in a Relay component.

@sibelius
Copy link
Contributor

@r0b1n @joonhocho @ugputu18 could u guys share an example repo please?

@r0b1n
Copy link
Contributor

r0b1n commented May 27, 2016

@sibeliusseraphini can't provide any usable examples now, I was just experimenting with relay rendering.
Check: master...r0b1n:relay-integration
You may slightly change the way RelayComponentRenderer.js handle params and wrap your Scene component with it, then feed it to <Scene component={RelayComponentRendererWrappedScene} .../>
Maybe I will implement some examples later.

P.S. Router itself needs to have ability to intercept rendering, just like react-router did. And then we can setup relay renderer to it without changing the code.

@rturk
Copy link
Collaborator

rturk commented May 27, 2016

@sibeliusseraphini this seems to work
https://github.com/codefoundries/UniversalRelayBoilerplate/blob/master/app/app.js

@sibelius
Copy link
Contributor

@rturk I think this solution does not integrate seamless with this package, I think @r0b1n solution is the best one based on react-router-relay

@chrissm79
Copy link

chrissm79 commented May 27, 2016

@r0b1n Are we able to use RNRF's wrapBy?

(Example w/ MobX's observer) https://github.com/aksonov/react-native-mobx/blob/master/index.js

@aksonov
Copy link
Owner

aksonov commented May 27, 2016

Yes, it works!

Pavel.

27 мая 2016 г., в 17:29, Christopher Moore notifications@github.com написал(а):

Are we able to use RNRF's wrapBy?

(Example w/ MobX's observer) https://github.com/aksonov/react-native-mobx/blob/master/index.js


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@chrissm79
Copy link

Tinkering around w/ @r0b1n solution and wrapBy, and if I get it working I'll post it here. Does anyone have an example they could share?

@r0b1n
Copy link
Contributor

r0b1n commented May 28, 2016

Hi guys, here is my example. https://github.com/r0b1n/rnrf-relay-example
Please check if it works for you.
// cc @chrissm79 @sibeliusseraphini

P.s. tested on iOS only.

@sibelius
Copy link
Contributor

great job @r0b1n it works great.

@aksonov I think @r0b1n should submit a PR to add this info to the docs and this example as well, as Relay is getting more main stream now

@chrissm79
Copy link

Just a note for anyone using Action.create to generate scenes, the api changed a bit. You need to move wrapBy from the <Router> to the Actions.create function as a second parameter like so:

const scenes = Actions.create(
  <Scene key="root">
    <Scene
      key="page1"
      title="PageOne"
      component={PageOne}
      queries={{ viewer: () => Relay.QL`query { viewer }` }}
    />
    {/* ... */}
  </Scene>,
  RelayComponentRenderer // This is necessary otherwise you will encoutner a Relay context error
);

@aksonov
Copy link
Owner

aksonov commented May 31, 2016

Router could create actions for you if you put scenes as children

Pavel.

31 мая 2016 г., в 20:43, Christopher Moore notifications@github.com написал(а):

Just a note for anyone using Action.create to generate scenes, the api changed a bit. You need to move wrapBy from the to the Actions.create function as a second parameter like so:

const scenes = Actions.create(

<Scene
key="page1"
title="PageOne"
component={PageOne}
queries={{ viewer: () => Relay.QLquery { viewer } }}
/>
{/* ... */}
,
RelayComponentRenderer // This is necessary otherwise you will encoutner a Relay context error
);

You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@proProbe
Copy link

Sorry for reusing this issue. Im having troubles with tabbar-scenes not rendering when the relaystore updates. If I in tab1 sends an update and changes the store which tab2 is dependent on, nothing happens in tab2. ComponentWillReceiveProps does not trigger. Even by Actions.refresh(), the relaystore does not send its newly updated information to tab2

aksonov added a commit that referenced this issue Jul 8, 2017
…#10,#11,#12,#13,#14,#15,#16,#17,#18,#19,#20,#21,#22,#23,#24,#25,#26,#27,#28,#29,#30,#31,#32,#33,#34,#35,#36,#37,#38,#39,#40,#41,#42,#43,#44,#45,#46,#47,#48,#49,#50,#51,#52,#53,#54,#55,#56,#57,#58,#59,#60,#61,#62,#63,#64,#65,#66,#67,#68,#69,#70,#71,#72,#73,#74,#75,#76,#77,#78,#79,#80,#81,#82,#83,#84,#85,#86,#87,#88,#89,#90,#91,#92,#93,#94,#95,#96,#97,#98,#99,#100,#101,#102,#103,#104,#105,#106,#107,#108,#109,#110,#111,#112,#113,#114,#115,#116,#117,#118,#119,#120,#121,#122,#123,#124,#125,#126,#127,#128,#129,#130,#131,#132,#133,#134,#135,#136,#137,#138,#139,#140,#141,#142,#143,#144,#145,#146,#147,#148,#149,#150,#151,#152,#153,#154,#155,#156,#157,#158,#159,#160,#161,#162,#163,#164,#165,#166,#167,#168,#169,#170,#171,#172,#173,#174,#175,#176,#177,#178,#179,#180,#181,#182,#183,#184,#185,#186,#187,#188,#189,#190,#191,#192,#193,#194,#195,#196,#197,#198,#199,#200,#201,#202,#203,#204,#205,#206,#207,#208,#209,#210,#211,#212,#213,#214,#215,#216,#217,#218,#219,#220,#221,#222,#223,#224,#225,#226,#227,#228,#229,#230,#231,#232,#233,#234,#235,#236,#237,#238,#239,#240,#241,#242,#243,#244,#245,#246,#247,#248,#249,#250,#251,#252,#253,#254,#255,#256,#257,#258,#259,#260,#261,#262,#263,#264,#265,#266,#267,#268,#269,#270,#271,#272,#273,#274,#275,#276,#277,#278,#279,#280,#281,#282,#283,#284,#285,#286,#287,#288,#289,#290,#291,#292,#293,#294,#295,#296,#297,#298,#299,#300,#301,#302,#303,#304,#305,#306,#307,#308,#309,#310,#311,#312,#313,#314,#315,#316,#317,#318,#319,#320,#321,#322,#323,#324,#325,#326,#327,#328,#329,#330,#331,#332,#333,#334,#335,#336,#337,#338,#339,#340,#341,#342,#343,#344,#345,#346,#347,#348,#349,#350,#351,#352,#353,#354,#355,#356,#357,#358,#359,#360,#361,#362,#363,#364,#365,#366,#367,#368,#369,#370,#371,#372,#373,#374,#375,#376,#377,#378,#379,#380,#381,#382,#383,#384,#385,#386,#387,#388,#389,#390,#391,#392,#393,#394,#395,#396,#397,#398,#399,#400,#401,#402,#403,#404,#405,#406,#407,#408,#409,#410,#411,#412,#413,#414,#415,#416,#417,#418,#419,#420,#421,#422,#423,#424,#425,#426,#427,#428,#429,#430,#431,#432,#433,#434,#435,#436,#437,#438,#439,#440,#441,#442,#443,#444,#445,#446,#447,#448,#449,#450,#451,#452,#453,#454,#455,#456,#457,#458,#459,#460,#461,#462,#463,#464,#465,#466,#467,#468,#469,#470,#471,#472,#473,#474,#475,#476,#477,#478,#479,#480,#481,#482,#483,#484,#485,#486,#487,#488,#489,#490,#491,#492,#493,#494,#495,#496,#497,#498,#499,#500,#501,#502,#503,#504,#505,#506,#507,#508,#509,#510,#511,#512,#513,#514,#515,#516,#517,#518,#519,#520,#521,#522,#523,#524,#525,#526,#527,#528,#529,#530,#531,#532,#533,#534,#535,#536,#537,#538,#539,#540,#541,#542,#543,#544,#545,#546,#547,#548,#549,#550,#551,#552,#553,#554,#555,#556,#557,#558,#559,#560,#561,#562,#563,#564,#565,#566,#567,#568,#569,#570,#571,#572,#573,#574,#575,#576,#577,#578,#579,#580,#581,#582,#583,#584,#585,#586,#587,#588,#589,#590,#591,#592,#593,#594,#595,#596,#597,#598,#599,#600,#601,#602,#603,#604,#605,#606,#607,#608,#609,#610,#611,#612,#613,#614,#615,#616,#617,#618,#619,#620,#621,#622,#623,#624,#625,#626,#627,#628,#629,#630,#631,#632,#633,#634,#635,#636,#637,#638,#639,#640,#641,#642,#643,#644,#645,#646,#647,#648,#649,#650,#651,#652,#653,#654,#655,#656,#657,#658,#659,#660,#661,#662,#663,#664,#665,#666,#667,#668,#669,#670,#671,#672,#673,#674,#675,#676,#677,#678,#679,#680,#681,#682,#683,#684,#685,#686,#687,#688,#689,#690,#691,#692,#693,#694,#695,#696,#697,#698,#699,#700,#701,#702,#703,#704,#705,#706,#707,#708,#709,#710,#711,#712,#713,#714,#715,#716,#717,#718,#719,#720,#721,#722,#723,#724,#725,#726,#727,#728,#729,#730,#731,#732,#733,#734,#735,#736,#737,#738,#739,#740,#741,#742,#743,#744,#745,#746,#747,#748,#749,#750,#751,#752,#753,#754,#755,#756,#757,#758,#759,#760,#761,#762,#763,#764,#765,#766,#767,#768,#769,#770,#771,#772,#773,#774,#775,#776,#777,#778,#779,#780,#781,#782,#783,#784,#785,#786,#787,#788,#789,#790,#791,#792,#793,#794,#795,#796,#797,#798,#799,#800,#801,#802,#803,#804,#805,#806,#807,#808,#809,#810,#811,#812,#813,#814,#815,#816,#817,#818,#819,#820,#821,#822,#823,#824,#825,#826,#827,#828,#829,#830,#831,#832,#833,#834,#835,#836,#837,#838,#839,#840,#841,#842,#843,#844,#845,#846,#847,#848,#849,#850,#851,#852,#853,#854,#855,#856,#857,#858,#859,#860,#861,#862,#863,#864,#865,#866,#867,#868,#869,#870,#871,#872,#873,#874,#875,#876,#877,#878,#879,#880,#881,#882,#883,#884,#885,#886,#887,#888,#889,#890,#891,#892,#893,#894,#895,#896,#897,#898,#899,#900,#901,#902,#903,#904,#905,#906,#907,#908,#909,#910,#911,#912,#913,#914,#915,#916,#917,#918,#919,#920,#921,#922,#923,#924,#925,#926,#927,#928,#929,#930,#931,#932,#933,#934,#935,#936,#937,#938,#939,#940,#941,#942,#943,#944,#945,#946,#947,#948,#949,#950,#951,#952,#953,#954,#955,#956,#957,#958,#959,#960,#961,#962,#963,#964,#965,#966,#967,#968,#969,#970,#971,#972,#973,#974,#975,#976,#977,#978,#979,#980,#981,#982,#983,#984,#985,#986,#987,#988,#989,#990,#991,#992,#993,#994,#995,#996,#997,#998,#999,#1000,#1001,#1002,#1003,#1004,#1005,#1006,#1007,#1008,#1009,#1010,#1011,#1012,#1013,#1014,#1015,#1016,#1017,#1018,#1019,#1020,#1021,#1022,#1023,#1024,#1025,#1026,#1027,#1028,#1029,#1030,#1031,#1032,#1033,#1034,#1035,#1036,#1037,#1038,#1039,#1040,#1041,#1042,#1043,#1044,#1045,#1046,#1047,#1048,#1049,#1050,#1051,#1052,#1053,#1054,#1055,#1056,#1057,#1058,#1059,#1060,#1061,#1062,#1063,#1064,#1065,#1066,#1067,#1068,#1069,#1070,#1071,#1072,#1073,#1074,#1075,#1076,#1077,#1078,#1079,#1080,#1081,#1082,#1083,#1084,#1085,#1086,#1087,#1088,#1089,#1090,#1091,#1092,#1093,#1094,#1095,#1096,#1097,#1098,#1099,#1100,#1101,#1102,#1103,#1104,#1105,#1106,#1107,#1108,#1109,#1110,#1111,#1112,#1113,#1114,#1115,#1116,#1117,#1118,#1119,#1120,#1121,#1122,#1123,#1124,#1125,#1126,#1127,#1128,#1129,#1130,#1131,#1132,#1133,#1134,#1135,#1136,#1137,#1138,#1139,#1140,#1141,#1142,#1143,#1144,#1145,#1146,#1147,#1148,#1149,#1150,#1151,#1152,#1153,#1154,#1155,#1156,#1157,#1158,#1159,#1160,#1161,#1162,#1163,#1164,#1165,#1166,#1167,#1168,#1169,#1170,#1171,#1172,#1173,#1174,#1175,#1176,#1177,#1178,#1179,#1180,#1181,#1182,#1183,#1184,#1185,#1186,#1187,#1188,#1189,#1190,#1191,#1192,#1193,#1194,#1195,#1196,#1197,#1198,#1199,#1200,#1201,#1202,#1203,#1204,#1205,#1206,#1207,#1208,#1209,#1210,#1211,#1212,#1213,#1214,#1215,#1216,#1217,#1218,#1219,#1220,#1221,#1222,#1223,#1224,#1225,#1226,#1227,#1228,#1229,#1230,#1231,#1232,#1233,#1234,#1235,#1236,#1237,#1238,#1239,#1240,#1241,#1242,#1243,#1244,#1245,#1246,#1247,#1248,#1249,#1250,#1251,#1252,#1253,#1254,#1255,#1256,#1257,#1258,#1259,#1260,#1261,#1262,#1263,#1264,#1265,#1266,#1267,#1268,#1269,#1270,#1271,#1272,#1273,#1274,#1275,#1276,#1277,#1278,#1279,#1280,#1281,#1282,#1283,#1284,#1285,#1286,#1287,#1288,#1289,#1290,#1291,#1292,#1293,#1294,#1295,#1296,#1297,#1298,#1299,#1300,#1301,#1302,#1303,#1304,#1305,#1306,#1307,#1308,#1309,#1310,#1311,#1312,#1313,#1314,#1315,#1316,#1317,#1318,#1319,#1320,#1321,#1322,#1323,#1324,#1325,#1326,#1327,#1328,#1329,#1330,#1331,#1332,#1333,#1334,#1335,#1336,#1337,#1338,#1339,#1340,#1341,#1342,#1343,#1344,#1345,#1346,#1347,#1348,#1349,#1350,#1351,#1352,#1353,#1354,#1355,#1356,#1357,#1358,#1359,#1360,#1361,#1362,#1363,#1364,#1365,#1366,#1367,#1368,#1369,#1370,#1371,#1372,#1373,#1374,#1375,#1376,#1377,#1378,#1379,#1380,#1381,#1382,#1383,#1384,#1385,#1386,#1387,#1388,#1389,#1390,#1391,#1392,#1393,#1394,#1395,#1396,#1397,#1398,#1399,#1400,#1401,#1402,#1403,#1404,#1405,#1406,#1407,#1408,#1409,#1410,#1411,#1412,#1413,#1414,#1415,#1416,#1417,#1418,#1419,#1420,#1421,#1422,#1423,#1424,#1425,#1426,#1427,#1428,#1429,#1430,#1431,#1432,#1433,#1434,#1435,#1436,#1437,#1438,#1439,#1440,#1441,#1442,#1443,#1444,#1445,#1446,#1447,#1448,#1449,#1450,#1451,#1452,#1453,#1454,#1455,#1456,#1457,#1458,#1459,#1460,#1461,#1462,#1463,#1464,#1465,#1466,#1467,#1468,#1469,#1470,#1471,#1472,#1473,#1474,#1475,#1476,#1477,#1478,#1479,#1480,#1481,#1482,#1483,#1484,#1485,#1486,#1487,#1488,#1489,#1490,#1491,#1492,#1493,#1494,#1495,#1496,#1497,#1498,#1499,#1500,#1501,#1502,#1503,#1504,#1505,#1506,#1507,#1508,#1509,#1510,#1511,#1512,#1513,#1514,#1515,#1516,#1517,#1518,#1519,#1520,#1521,#1522,#1523,#1524,#1525,#1526,#1527,#1528,#1529,#1530,#1531,#1532,#1533,#1534,#1535,#1536,#1537,#1538,#1539,#1540,#1541,#1542,#1543,#1544,#1545,#1546,#1547,#1548,#1549,#1550,#1551,#1552,#1553,#1554,#1555,#1556,#1557,#1558,#1559,#1560,#1561,#1562,#1563,#1564,#1565,#1566,#1567,#1568,#1569,#1570,#1571,#1572,#1573,#1574,#1575,#1576,#1577,#1578,#1579,#1580,#1581,#1582,#1583,#1584,#1585,#1586,#1587,#1588,#1589,#1590,#1591,#1592,#1593,#1594,#1595,#1596,#1597,#1598,#1599,#1600,#1601,#1602,#1603,#1604,#1605,#1606,#1607,#1608,#1609,#1610,#1611,#1612,#1613,#1614,#1615,#1616,#1617,#1618,#1619,#1620,#1621,#1622,#1623,#1624,#1625,#1626,#1627,#1628,#1629,#1630,#1631,#1632,#1633,#1634,#1635,#1636,#1637,#1638,#1639,#1640,#1641,#1642,#1643,#1644,#1645,#1646,#1647,#1648,#1649,#1650,#1651,#1652,#1653,#1654,#1655,#1656,#1657,#1658,#1659,#1660,#1661,#1662,#1663,#1664,#1665,#1666,#1667,#1668,#1669,#1670,#1671,#1672,#1673,#1674,#1675,#1676,#1677,#1678,#1679,#1680,#1681,#1682,#1683,#1684,#1685,#1686,#1687,#1688,#1689,#1690,#1691,#1692,#1693,#1694,#1695,#1696,#1697,#1698,#1699,#1700,#1701,#1702,#1703,#1704,#1705,#1706,#1707,#1708,#1709,#1710,#1711,#1712,#1713,#1714,#1715,#1716,#1717,#1718,#1719,#1720,#1721,#1722,#1723,#1724,#1725,#1726,#1727,#1728,#1729,#1730,#1731,#1732,#1733,#1734,#1735,#1736,#1737,#1738,#1739,#1740,#1741,#1742,#1743,#1744,#1745,#1746,#1747,#1748,#1749,#1750,#1751,#1752,#1753,#1754,#1755,#1756,#1757,#1758,#1759,#1760,#1761,#1762,#1763,#1764,#1765,#1766,#1767,#1768,#1769,#1770,#1771,#1772,#1773,#1774,#1775,#1776,#1777,#1778,#1779,#1780,#1781,#1782,#1783,#1784,#1785,#1786,#1787,#1788,#1789,#1790,#1791,#1792,#1793,#1794,#1795,#1796,#1797,#1798,#1799,#1800,#1801,#1802,#1803,#1804,#1805,#1806,#1807,#1808,#1809,#1810,#1811,#1812,#1813,#1814,#1815,#1816,#1817,#1818,#1819,#1820,#1821,#1822,#1823,#1824,#1825,#1826,#1827,#1828,#1829,#1830,#1831,#1832,#1833,#1834,#1835,#1836,#1837,#1838,#1839,#1840,#1841,#1842,#1843,#1844,#1845,#1846,#1847,#1848,#1849,#1850,#1851,#1852,#1853,#1854,#1855,#1856,#1857,#1858,#1859,#1860,#1861,#1862,#1863,#1864,#1865,#1866,#1867,#1868,#1869,#1870,#1871,#1872,#1873,#1874,#1875,#1876,#1877,#1878,#1879,#1880,#1881,#1882,#1883,#1884,#1885,#1886,#1887,#1888,#1889,#1890,#1891,#1892,#1893,#1894,#1895,#1896,#1897,#1898,#1899,#1900,#1901,#1902,#1903,#1904,#1905,#1906,#1907,#1908,#1909,#1910,#1911,#1912,#1913,#1914,#1915,#1916,#1917,#1918,#1919,#1920,#1921,#1922,#1923,#1924,#1925,#1926,#1927,#1928,#1929,#1930,#1931,#1932,#1933,#1934,#1935,#1936,#1937,#1938,#1939,#1940,#1941,#1942,#1943,#1944,#1945,#1946,#1947,#1948,#1949,#1950,#1951,#1952,#1953,#1954,#1955,#1956,#1957,#1958,#1959,#1960,#1961,#1962,#1963,#1964,#1965,#1966,#1967,#1968,#1969,#1970,#1971,#1972,#1973

V4 announcement, v3 is obsolete now.
aksonov added a commit that referenced this issue Jul 8, 2017
…loses #7,closes #8,closes #9,closes #10,closes #11,closes #12,closes #13,closes #14,closes #15,closes #16,closes #17,closes #18,closes #19,closes #20,closes #21,closes #22,closes #23,closes #24,closes #25,closes #26,closes #27,closes #28,closes #29,closes #30,closes #31,closes #32,closes #33,closes #34,closes #35,closes #36,closes #37,closes #38,closes #39,closes #40,closes #41,closes #42,closes #43,closes #44,closes #45,closes #46,closes #47,closes #48,closes #49,closes #50,closes #51,closes #52,closes #53,closes #54,closes #55,closes #56,closes #57,closes #58,closes #59,closes #60,closes #61,closes #62,closes #63,closes #64,closes #65,closes #66,closes #67,closes #68,closes #69,closes #70,closes #71,closes #72,closes #73,closes #74,closes #75,closes #76,closes #77,closes #78,closes #79,closes #80,closes #81,closes #82,closes #83,closes #84,closes #85,closes #86,closes #87,closes #88,closes #89,closes #90,closes #91,closes #92,closes #93,closes #94,closes #95,closes #96,closes #97,closes #98,closes #99,closes #100,closes #101,closes #102,closes #103,closes #104,closes #105,closes #106,closes #107,closes #108,closes #109,closes #110,closes #111,closes #112,closes #113,closes #114,closes #115,closes #116,closes #117,closes #118,closes #119,closes #120,closes #121,closes #122,closes #123,closes #124,closes #125,closes #126,closes #127,closes #128,closes #129,closes #130,closes #131,closes #132,closes #133,closes #134,closes #135,closes #136,closes #137,closes #138,closes #139,closes #140,closes #141,closes #142,closes #143,closes #144,closes #145,closes #146,closes #147,closes #148,closes #149,closes #150,closes #151,closes #152,closes #153,closes #154,closes #155,closes #156,closes #157,closes #158,closes #159,closes #160,closes #161,closes #162,closes #163,closes #164,closes #165,closes #166,closes #167,closes #168,closes #169,closes #170,closes #171,closes #172,closes #173,closes #174,closes #175,closes #176,closes #177,closes #178,closes #179,closes #180,closes #181,closes #182,closes #183,closes #184,closes #185,closes #186,closes #187,closes #188,closes #189,closes #190,closes #191,closes #192,closes #193,closes #194,closes #195,closes #196,closes #197,closes #198,closes #199,closes #200,closes #201,closes #202,closes #203,closes #204,closes #205,closes #206,closes #207,closes #208,closes #209,closes #210,closes #211,closes #212,closes #213,closes #214,closes #215,closes #216,closes #217,closes #218,closes #219,closes #220,closes #221,closes #222,closes #223,closes #224,closes #225,closes #226,closes #227,closes #228,closes #229,closes #230,closes #231,closes #232,closes #233,closes #234,closes #235,closes #236,closes #237,closes #238,closes #239,closes #240,closes #241,closes #242,closes #243,closes #244,closes #245,closes #246,closes #247,closes #248,closes #249,closes #250,closes #251,closes #252,closes #253,closes #254,closes #255,closes #256,closes #257,closes #258,closes #259,closes #260,closes #261,closes #262,closes #263,closes #264,closes #265,closes #266,closes #267,closes #268,closes #269,closes #270,closes #271,closes #272,closes #273,closes #274,closes #275,closes #276,closes #277,closes #278,closes #279,closes #280,closes #281,closes #282,closes #283,closes #284,closes #285,closes #286,closes #287,closes #288,closes #289,closes #290,closes #291,closes #292,closes #293,closes #294,closes #295,closes #296,closes #297,closes #298,closes #299,closes #300,closes #301,closes #302,closes #303,closes #304,closes #305,closes #306,closes #307,closes #308,closes #309,closes #310,closes #311,closes #312,closes #313,closes #314,closes #315,closes #316,closes #317,closes #318,closes #319,closes #320,closes #321,closes #322,closes #323,closes #324,closes #325,closes #326,closes #327,closes #328,closes #329,closes #330,closes #331,closes #332,closes #333,closes #334,closes #335,closes #336,closes #337,closes #338,closes #339,closes #340,closes #341,closes #342,closes #343,closes #344,closes #345,closes #346,closes #347,closes #348,closes #349,closes #350,closes #351,closes #352,closes #353,closes #354,closes #355,closes #356,closes #357,closes #358,closes #359,closes #360,closes #361,closes #362,closes #363,closes #364,closes #365,closes #366,closes #367,closes #368,closes #369,closes #370,closes #371,closes #372,closes #373,closes #374,closes #375,closes #376,closes #377,closes #378,closes #379,closes #380,closes #381,closes #382,closes #383,closes #384,closes #385,closes #386,closes #387,closes #388,closes #389,closes #390,closes #391,closes #392,closes #393,closes #394,closes #395,closes #396,closes #397,closes #398,closes #399,closes #400,closes #401,closes #402,closes #403,closes #404,closes #405,closes #406,closes #407,closes #408,closes #409,closes #410,closes #411,closes #412,closes #413,closes #414,closes #415,closes #416,closes #417,closes #418,closes #419,closes #420,closes #421,closes #422,closes #423,closes #424,closes #425,closes #426,closes #427,closes #428,closes #429,closes #430,closes #431,closes #432,closes #433,closes #434,closes #435,closes #436,closes #437,closes #438,closes #439,closes #440,closes #441,closes #442,closes #443,closes #444,closes #445,closes #446,closes #447,closes #448,closes #449,closes #450,closes #451,closes #452,closes #453,closes #454,closes #455,closes #456,closes #457,closes #458,closes #459,closes #460,closes #461,closes #462,closes #463,closes #464,closes #465,closes #466,closes #467,closes #468,closes #469,closes #470,closes #471,closes #472,closes #473,closes #474,closes #475,closes #476,closes #477,closes #478,closes #479,closes #480,closes #481,closes #482,closes #483,closes #484,closes #485,closes #486,closes #487,closes #488,closes #489,closes #490,closes #491,closes #492,closes #493,closes #494,closes #495,closes #496,closes #497,closes #498,closes #499,closes #500,closes #501,closes #502,closes #503,closes #504,closes #505,closes #506,closes #507,closes #508,closes #509,closes #510,closes #511,closes #512,closes #513,closes #514,closes #515,closes #516,closes #517,closes #518,closes #519,closes #520,closes #521,closes #522,closes #523,closes #524,closes #525,closes #526,closes #527,closes #528,closes #529,closes #530,closes #531,closes #532,closes #533,closes #534,closes #535,closes #536,closes #537,closes #538,closes #539,closes #540,closes #541,closes #542,closes #543,closes #544,closes #545,closes #546,closes #547,closes #548,closes #549,closes #550,closes #551,closes #552,closes #553,closes #554,closes #555,closes #556,closes #557,closes #558,closes #559,closes #560,closes #561,closes #562,closes #563,closes #564,closes #565,closes #566,closes #567,closes #568,closes #569,closes #570,closes #571,closes #572,closes #573,closes #574,closes #575,closes #576,closes #577,closes #578,closes #579,closes #580,closes #581,closes #582,closes #583,closes #584,closes #585,closes #586,closes #587,closes #588,closes #589,closes #590,closes #591,closes #592,closes #593,closes #594,closes #595,closes #596,closes #597,closes #598,closes #599,closes #600,closes #601,closes #602,closes #603,closes #604,closes #605,closes #606,closes #607,closes #608,closes #609,closes #610,closes #611,closes #612,closes #613,closes #614,closes #615,closes #616,closes #617,closes #618,closes #619,closes #620,closes #621,closes #622,closes #623,closes #624,closes #625,closes #626,closes #627,closes #628,closes #629,closes #630,closes #631,closes #632,closes #633,closes #634,closes #635,closes #636,closes #637,closes #638,closes #639,closes #640,closes #641,closes #642,closes #643,closes #644,closes #645,closes #646,closes #647,closes #648,closes #649,closes #650,closes #651,closes #652,closes #653,closes #654,closes #655,closes #656,closes #657,closes #658,closes #659,closes #660,closes #661,closes #662,closes #663,closes #664,closes #665,closes #666,closes #667,closes #668,closes #669,closes #670,closes #671,closes #672,closes #673,closes #674,closes #675,closes #676,closes #677,closes #678,closes #679,closes #680,closes #681,closes #682,closes #683,closes #684,closes #685,closes #686,closes #687,closes #688,closes #689,closes #690,closes #691,closes #692,closes #693,closes #694,closes #695,closes #696,closes #697,closes #698,closes #699,closes #700,closes #701,closes #702,closes #703,closes #704,closes #705,closes #706,closes #707,closes #708,closes #709,closes #710,closes #711,closes #712,closes #713,closes #714,closes #715,closes #716,closes #717,closes #718,closes #719,closes #720,closes #721,closes #722,closes #723,closes #724,closes #725,closes #726,closes #727,closes #728,closes #729,closes #730,closes #731,closes #732,closes #733,closes #734,closes #735,closes #736,closes #737,closes #738,closes #739,closes #740,closes #741,closes #742,closes #743,closes #744,closes #745,closes #746,closes #747,closes #748,closes #749,closes #750,closes #751,closes #752,closes #753,closes #754,closes #755,closes #756,closes #757,closes #758,closes #759,closes #760,closes #761,closes #762,closes #763,closes #764,closes #765,closes #766,closes #767,closes #768,closes #769,closes #770,closes #771,closes #772,closes #773,closes #774,closes #775,closes #776,closes #777,closes #778,closes #779,closes #780,closes #781,closes #782,closes #783,closes #784,closes #785,closes #786,closes #787,closes #788,closes #789,closes #790,closes #791,closes #792,closes #793,closes #794,closes #795,closes #796,closes #797,closes #798,closes #799,closes #800,closes #801,closes #802,closes #803,closes #804,closes #805,closes #806,closes #807,closes #808,closes #809,closes #810,closes #811,closes #812,closes #813,closes #814,closes #815,closes #816,closes #817,closes #818,closes #819,closes #820,closes #821,closes #822,closes #823,closes #824,closes #825,closes #826,closes #827,closes #828,closes #829,closes #830,closes #831,closes #832,closes #833,closes #834,closes #835,closes #836,closes #837,closes #838,closes #839,closes #840,closes #841,closes #842,closes #843,closes #844,closes #845,closes #846,closes #847,closes #848,closes #849,closes #850,closes #851,closes #852,closes #853,closes #854,closes #855,closes #856,closes #857,closes #858,closes #859,closes #860,closes #861,closes #862,closes #863,closes #864,closes #865,closes #866,closes #867,closes #868,closes #869,closes #870,closes #871,closes #872,closes #873,closes #874,closes #875,closes #876,closes #877,closes #878,closes #879,closes #880,closes #881,closes #882,closes #883,closes #884,closes #885,closes #886,closes #887,closes #888,closes #889,closes #890,closes #891,closes #892,closes #893,closes #894,closes #895,closes #896,closes #897,closes #898,closes #899,closes #900,closes #901,closes #902,closes #903,closes #904,closes #905,closes #906,closes #907,closes #908,closes #909,closes #910,closes #911,closes #912,closes #913,closes #914,closes #915,closes #916,closes #917,closes #918,closes #919,closes #920,closes #921,closes #922,closes #923,closes #924,closes #925,closes #926,closes #927,closes #928,closes #929,closes #930,closes #931,closes #932,closes #933,closes #934,closes #935,closes #936,closes #937,closes #938,closes #939,closes #940,closes #941,closes #942,closes #943,closes #944,closes #945,closes #946,closes #947,closes #948,closes #949,closes #950,closes #951,closes #952,closes #953,closes #954,closes #955,closes #956,closes #957,closes #958,closes #959,closes #960,closes #961,closes #962,closes #963,closes #964,closes #965,closes #966,closes #967,closes #968,closes #969,closes #970,closes #971,closes #972,closes #973,closes #974,closes #975,closes #976,closes #977,closes #978,closes #979,closes #980,closes #981,closes #982,closes #983,closes #984,closes #985,closes #986,closes #987,closes #988,closes #989,closes #990,closes #991,closes #992,closes #993,closes #994,closes #995,closes #996,closes #997,closes #998,closes #999,closes #1000,closes #1001,closes #1002,closes #1003,closes #1004,closes #1005,closes #1006,closes #1007,closes #1008,closes #1009,closes #1010,closes #1011,closes #1012,closes #1013,closes #1014,closes #1015,closes #1016,closes #1017,closes #1018,closes #1019,closes #1020,closes #1021,closes #1022,closes #1023,closes #1024,closes #1025,closes #1026,closes #1027,closes #1028,closes #1029,closes #1030,closes #1031,closes #1032,closes #1033,closes #1034,closes #1035,closes #1036,closes #1037,closes #1038,closes #1039,closes #1040,closes #1041,closes #1042,closes #1043,closes #1044,closes #1045,closes #1046,closes #1047,closes #1048,closes #1049,closes #1050,closes #1051,closes #1052,closes #1053,closes #1054,closes #1055,closes #1056,closes #1057,closes #1058,closes #1059,closes #1060,closes #1061,closes #1062,closes #1063,closes #1064,closes #1065,closes #1066,closes #1067,closes #1068,closes #1069,closes #1070,closes #1071,closes #1072,closes #1073,closes #1074,closes #1075,closes #1076,closes #1077,closes #1078,closes #1079,closes #1080,closes #1081,closes #1082,closes #1083,closes #1084,closes #1085,closes #1086,closes #1087,closes #1088,closes #1089,closes #1090,closes #1091,closes #1092,closes #1093,closes #1094,closes #1095,closes #1096,closes #1097,closes #1098,closes #1099,closes #1100,closes #1101,closes #1102,closes #1103,closes #1104,closes #1105,closes #1106,closes #1107,closes #1108,closes #1109,closes #1110,closes #1111,closes #1112,closes #1113,closes #1114,closes #1115,closes #1116,closes #1117,closes #1118,closes #1119,closes #1120,closes #1121,closes #1122,closes #1123,closes #1124,closes #1125,closes #1126,closes #1127,closes #1128,closes #1129,closes #1130,closes #1131,closes #1132,closes #1133,closes #1134,closes #1135,closes #1136,closes #1137,closes #1138,closes #1139,closes #1140,closes #1141,closes #1142,closes #1143,closes #1144,closes #1145,closes #1146,closes #1147,closes #1148,closes #1149,closes #1150,closes #1151,closes #1152,closes #1153,closes #1154,closes #1155,closes #1156,closes #1157,closes #1158,closes #1159,closes #1160,closes #1161,closes #1162,closes #1163,closes #1164,closes #1165,closes #1166,closes #1167,closes #1168,closes #1169,closes #1170,closes #1171,closes #1172,closes #1173,closes #1174,closes #1175,closes #1176,closes #1177,closes #1178,closes #1179,closes #1180,closes #1181,closes #1182,closes #1183,closes #1184,closes #1185,closes #1186,closes #1187,closes #1188,closes #1189,closes #1190,closes #1191,closes #1192,closes #1193,closes #1194,closes #1195,closes #1196,closes #1197,closes #1198,closes #1199,closes #1200,closes #1201,closes #1202,closes #1203,closes #1204,closes #1205,closes #1206,closes #1207,closes #1208,closes #1209,closes #1210,closes #1211,closes #1212,closes #1213,closes #1214,closes #1215,closes #1216,closes #1217,closes #1218,closes #1219,closes #1220,closes #1221,closes #1222,closes #1223,closes #1224,closes #1225,closes #1226,closes #1227,closes #1228,closes #1229,closes #1230,closes #1231,closes #1232,closes #1233,closes #1234,closes #1235,closes #1236,closes #1237,closes #1238,closes #1239,closes #1240,closes #1241,closes #1242,closes #1243,closes #1244,closes #1245,closes #1246,closes #1247,closes #1248,closes #1249,closes #1250,closes #1251,closes #1252,closes #1253,closes #1254,closes #1255,closes #1256,closes #1257,closes #1258,closes #1259,closes #1260,closes #1261,closes #1262,closes #1263,closes #1264,closes #1265,closes #1266,closes #1267,closes #1268,closes #1269,closes #1270,closes #1271,closes #1272,closes #1273,closes #1274,closes #1275,closes #1276,closes #1277,closes #1278,closes #1279,closes #1280,closes #1281,closes #1282,closes #1283,closes #1284,closes #1285,closes #1286,closes #1287,closes #1288,closes #1289,closes #1290,closes #1291,closes #1292,closes #1293,closes #1294,closes #1295,closes #1296,closes #1297,closes #1298,closes #1299,closes #1300,closes #1301,closes #1302,closes #1303,closes #1304,closes #1305,closes #1306,closes #1307,closes #1308,closes #1309,closes #1310,closes #1311,closes #1312,closes #1313,closes #1314,closes #1315,closes #1316,closes #1317,closes #1318,closes #1319,closes #1320,closes #1321,closes #1322,closes #1323,closes #1324,closes #1325,closes #1326,closes #1327,closes #1328,closes #1329,closes #1330,closes #1331,closes #1332,closes #1333,closes #1334,closes #1335,closes #1336,closes #1337,closes #1338,closes #1339,closes #1340,closes #1341,closes #1342,closes #1343,closes #1344,closes #1345,closes #1346,closes #1347,closes #1348,closes #1349,closes #1350,closes #1351,closes #1352,closes #1353,closes #1354,closes #1355,closes #1356,closes #1357,closes #1358,closes #1359,closes #1360,closes #1361,closes #1362,closes #1363,closes #1364,closes #1365,closes #1366,closes #1367,closes #1368,closes #1369,closes #1370,closes #1371,closes #1372,closes #1373,closes #1374,closes #1375,closes #1376,closes #1377,closes #1378,closes #1379,closes #1380,closes #1381,closes #1382,closes #1383,closes #1384,closes #1385,closes #1386,closes #1387,closes #1388,closes #1389,closes #1390,closes #1391,closes #1392,closes #1393,closes #1394,closes #1395,closes #1396,closes #1397,closes #1398,closes #1399,closes #1400,closes #1401,closes #1402,closes #1403,closes #1404,closes #1405,closes #1406,closes #1407,closes #1408,closes #1409,closes #1410,closes #1411,closes #1412,closes #1413,closes #1414,closes #1415,closes #1416,closes #1417,closes #1418,closes #1419,closes #1420,closes #1421,closes #1422,closes #1423,closes #1424,closes #1425,closes #1426,closes #1427,closes #1428,closes #1429,closes #1430,closes #1431,closes #1432,closes #1433,closes #1434,closes #1435,closes #1436,closes #1437,closes #1438,closes #1439,closes #1440,closes #1441,closes #1442,closes #1443,closes #1444,closes #1445,closes #1446,closes #1447,closes #1448,closes #1449,closes #1450,closes #1451,closes #1452,closes #1453,closes #1454,closes #1455,closes #1456,closes #1457,closes #1458,closes #1459,closes #1460,closes #1461,closes #1462,closes #1463,closes #1464,closes #1465,closes #1466,closes #1467,closes #1468,closes #1469,closes #1470,closes #1471,closes #1472,closes #1473,closes #1474,closes #1475,closes #1476,closes #1477,closes #1478,closes #1479,closes #1480,closes #1481,closes #1482,closes #1483,closes #1484,closes #1485,closes #1486,closes #1487,closes #1488,closes #1489,closes #1490,closes #1491,closes #1492,closes #1493,closes #1494,closes #1495,closes #1496,closes #1497,closes #1498,closes #1499,closes #1500,closes #1501,closes #1502,closes #1503,closes #1504,closes #1505,closes #1506,closes #1507,closes #1508,closes #1509,closes #1510,closes #1511,closes #1512,closes #1513,closes #1514,closes #1515,closes #1516,closes #1517,closes #1518,closes #1519,closes #1520,closes #1521,closes #1522,closes #1523,closes #1524,closes #1525,closes #1526,closes #1527,closes #1528,closes #1529,closes #1530,closes #1531,closes #1532,closes #1533,closes #1534,closes #1535,closes #1536,closes #1537,closes #1538,closes #1539,closes #1540,closes #1541,closes #1542,closes #1543,closes #1544,closes #1545,closes #1546,closes #1547,closes #1548,closes #1549,closes #1550,closes #1551,closes #1552,closes #1553,closes #1554,closes #1555,closes #1556,closes #1557,closes #1558,closes #1559,closes #1560,closes #1561,closes #1562,closes #1563,closes #1564,closes #1565,closes #1566,closes #1567,closes #1568,closes #1569,closes #1570,closes #1571,closes #1572,closes #1573,closes #1574,closes #1575,closes #1576,closes #1577,closes #1578,closes #1579,closes #1580,closes #1581,closes #1582,closes #1583,closes #1584,closes #1585,closes #1586,closes #1587,closes #1588,closes #1589,closes #1590,closes #1591,closes #1592,closes #1593,closes #1594,closes #1595,closes #1596,closes #1597,closes #1598,closes #1599,closes #1600,closes #1601,closes #1602,closes #1603,closes #1604,closes #1605,closes #1606,closes #1607,closes #1608,closes #1609,closes #1610,closes #1611,closes #1612,closes #1613,closes #1614,closes #1615,closes #1616,closes #1617,closes #1618,closes #1619,closes #1620,closes #1621,closes #1622,closes #1623,closes #1624,closes #1625,closes #1626,closes #1627,closes #1628,closes #1629,closes #1630,closes #1631,closes #1632,closes #1633,closes #1634,closes #1635,closes #1636,closes #1637,closes #1638,closes #1639,closes #1640,closes #1641,closes #1642,closes #1643,closes #1644,closes #1645,closes #1646,closes #1647,closes #1648,closes #1649,closes #1650,closes #1651,closes #1652,closes #1653,closes #1654,closes #1655,closes #1656,closes #1657,closes #1658,closes #1659,closes #1660,closes #1661,closes #1662,closes #1663,closes #1664,closes #1665,closes #1666,closes #1667,closes #1668,closes #1669,closes #1670,closes #1671,closes #1672,closes #1673,closes #1674,closes #1675,closes #1676,closes #1677,closes #1678,closes #1679,closes #1680,closes #1681,closes #1682,closes #1683,closes #1684,closes #1685,closes #1686,closes #1687,closes #1688,closes #1689,closes #1690,closes #1691,closes #1692,closes #1693,closes #1694,closes #1695,closes #1696,closes #1697,closes #1698,closes #1699,closes #1700,closes #1701,closes #1702,closes #1703,closes #1704,closes #1705,closes #1706,closes #1707,closes #1708,closes #1709,closes #1710,closes #1711,closes #1712,closes #1713,closes #1714,closes #1715,closes #1716,closes #1717,closes #1718,closes #1719,closes #1720,closes #1721,closes #1722,closes #1723,closes #1724,closes #1725,closes #1726,closes #1727,closes #1728,closes #1729,closes #1730,closes #1731,closes #1732,closes #1733,closes #1734,closes #1735,closes #1736,closes #1737,closes #1738,closes #1739,closes #1740,closes #1741,closes #1742,closes #1743,closes #1744,closes #1745,closes #1746,closes #1747,closes #1748,closes #1749,closes #1750,closes #1751,closes #1752,closes #1753,closes #1754,closes #1755,closes #1756,closes #1757,closes #1758,closes #1759,closes #1760,closes #1761,closes #1762,closes #1763,closes #1764,closes #1765,closes #1766,closes #1767,closes #1768,closes #1769,closes #1770,closes #1771,closes #1772,closes #1773,closes #1774,closes #1775,closes #1776,closes #1777,closes #1778,closes #1779,closes #1780,closes #1781,closes #1782,closes #1783,closes #1784,closes #1785,closes #1786,closes #1787,closes #1788,closes #1789,closes #1790,closes #1791,closes #1792,closes #1793,closes #1794,closes #1795,closes #1796,closes #1797,closes #1798,closes #1799,closes #1800,closes #1801,closes #1802,closes #1803,closes #1804,closes #1805,closes #1806,closes #1807,closes #1808,closes #1809,closes #1810,closes #1811,closes #1812,closes #1813,closes #1814,closes #1815,closes #1816,closes #1817,closes #1818,closes #1819,closes #1820,closes #1821,closes #1822,closes #1823,closes #1824,closes #1825,closes #1826,closes #1827,closes #1828,closes #1829,closes #1830,closes #1831,closes #1832,closes #1833,closes #1834,closes #1835,closes #1836,closes #1837,closes #1838,closes #1839,closes #1840,closes #1841,closes #1842,closes #1843,closes #1844,closes #1845,closes #1846,closes #1847,closes #1848,closes #1849,closes #1850,closes #1851,closes #1852,closes #1853,closes #1854,closes #1855,closes #1856,closes #1857,closes #1858,closes #1859,closes #1860,closes #1861,closes #1862,closes #1863,closes #1864,closes #1865,closes #1866,closes #1867,closes #1868,closes #1869,closes #1870,closes #1871,closes #1872,closes #1873,closes #1874,closes #1875,closes #1876,closes #1877,closes #1878,closes #1879,closes #1880,closes #1881,closes #1882,closes #1883,closes #1884,closes #1885,closes #1886,closes #1887,closes #1888,closes #1889,closes #1890,closes #1891,closes #1892,closes #1893,closes #1894,closes #1895,closes #1896,closes #1897,closes #1898,closes #1899,closes #1900,closes #1901,closes #1902,closes #1903,closes #1904,closes #1905,closes #1906,closes #1907,closes #1908,closes #1909,closes #1910,closes #1911,closes #1912,closes #1913,closes #1914,closes #1915,closes #1916,closes #1917,closes #1918,closes #1919,closes #1920,closes #1921,closes #1922,closes #1923,closes #1924,closes #1925,closes #1926,closes #1927,closes #1928,closes #1929,closes #1930,closes #1931,closes #1932,closes #1933,closes #1934,closes #1935,closes #1936,closes #1937,closes #1938,closes #1939,closes #1940,closes #1941,closes #1942,closes #1943,closes #1944,closes #1945,closes #1946,closes #1947,closes #1948,closes #1949,closes #1950,closes #1951,closes #1952,closes #1953,closes #1954,closes #1955,closes #1956,closes #1957,closes #1958,closes #1959,closes #1960,closes #1961,closes #1962,closes #1963,closes #1964,closes #1965,closes #1966,closes #1967,closes #1968,closes #1969,closes #1970,closes #1971,closes #1972,closes #1973
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

9 participants