Regenerating Signature causes javascript error.

I am using signature-pad in a .NET 4/MVC 3 application. I have the control displaying properly and saving both the output and the output as an image (bytes) into a SQL database. My issue is when I try to regenerate the signature - I get the following javascript error:
SCRIPT1014: Invalid character
jquery.signaturepad.min.js, line 25 character 499
The line in the js file is when the output string is trying to be parsed.
Am I missing some type of conversion or encoding that needs to be done on the output string?
My output string (from the database) is :
[{"lx":14,"ly":27,"mx":14,"my":26},{"lx":15,"ly":26,"mx":14,"my":27},{"lx":17,"ly":26,"mx":15,"my":26},{"lx":18,"ly":26,"mx":17,"my":26},{"lx":19,"ly":26,"mx":18,"my":26},{"lx":21,"ly":26,"mx":19,"my":26},{"lx":24,"ly":26,"mx":21,"my":26},{"lx":28,"ly":26,"mx":24,"my":26},{"lx":30,"ly":24,"mx":28,"my":26},{"lx":32,"ly":23,"mx":30,"my":24},{"lx":34,"ly":22,"mx":32,"my":23},{"lx":35,"ly":20,"mx":34,"my":22},{"lx":35,"ly":19,"mx":35,"my":20},{"lx":37,"ly":18,"mx":35,"my":19},{"lx":37,"ly":17,"mx":37,"my":18},{"lx":37,"ly":19,"mx":37,"my":17},{"lx":37,"ly":22,"mx":37,"my":19},{"lx":37,"ly":24,"mx":37,"my":22},{"lx":36,"ly":28,"mx":37,"my":24},{"lx":35,"ly":35,"mx":36,"my":28},{"lx":34,"ly":38,"mx":35,"my":35},{"lx":33,"ly":42,"mx":34,"my":38},{"lx":33,"ly":45,"mx":33,"my":42},{"lx":33,"ly":46,"mx":33,"my":45},{"lx":33,"ly":47,"mx":33,"my":46},{"lx":33,"ly":44,"mx":33,"my":47},{"lx":33,"ly":41,"mx":33,"my":44},{"lx":33,"ly":39,"mx":33,"my":41},{"lx":33,"ly":34,"mx":33,"my":39},{"lx":34,"ly":31,"mx":33,"my":34},{"lx":34,"ly":28,"mx":34,"my":31},{"lx":35,"ly":27,"mx":34,"my":28},{"lx":35,"ly":25,"mx":35,"my":27},{"lx":36,"ly":24,"mx":35,"my":25},{"lx":37,"ly":23,"mx":36,"my":24},{"lx":37,"ly":21,"mx":37,"my":23},{"lx":38,"ly":20,"mx":37,"my":21},{"lx":39,"ly":18,"mx":38,"my":20},{"lx":41,"ly":18,"mx":39,"my":18},{"lx":43,"ly":18,"mx":41,"my":18},{"lx":44,"ly":18,"mx":43,"my":18},{"lx":45,"ly":19,"mx":44,"my":18},{"lx":46,"ly":20,"mx":45,"my":19},{"lx":47,"ly":21,"mx":46,"my":20},{"lx":48,"ly":23,"mx":47,"my":21},{"lx":48,"ly":24,"mx":48,"my":23},{"lx":48,"ly":25,"mx":48,"my":24},{"lx":48,"ly":27,"mx":48,"my":25},{"lx":48,"ly":30,"mx":48,"my":27},{"lx":46,"ly":31,"mx":48,"my":30},{"lx":43,"ly":32,"mx":46,"my":31},{"lx":41,"ly":33,"mx":43,"my":32},{"lx":40,"ly":34,"mx":41,"my":33},{"lx":39,"ly":34,"mx":40,"my":34},{"lx":39,"ly":35,"mx":39,"my":34},{"lx":39,"ly":36,"mx":39,"my":35},{"lx":40,"ly":36,"mx":39,"my":36},{"lx":41,"ly":36,"mx":40,"my":36},{"lx":42,"ly":36,"mx":41,"my":36},{"lx":44,"ly":37,"mx":42,"my":36},{"lx":45,"ly":38,"mx":44,"my":37},{"lx":47,"ly":38,"mx":45,"my":38},{"lx":47,"ly":39,"mx":47,"my":38},{"lx":48,"ly":40,"mx":47,"my":39},{"lx":48,"ly":41,"mx":48,"my":40},{"lx":48,"ly":42,"mx":48,"my":41},{"lx":46,"ly":42,"mx":48,"my":42},{"lx":45,"ly":42,"mx":46,"my":42},{"lx":43,"ly":42,"mx":45,"my":42},{"lx":41,"ly":43,"mx":43,"my":42},{"lx":39,"ly":43,"mx":41,"my":43},{"lx":38,"ly":43,"mx":39,"my":43},{"lx":65,"ly":18,"mx":65,"my":17},{"lx":66,"ly":17,"mx":65,"my":18},{"lx":67,"ly":19,"mx":66,"my":17},{"lx":69,"ly":21,"mx":67,"my":19},{"lx":72,"ly":25,"mx":69,"my":21},{"lx":74,"ly":27,"mx":72,"my":25},{"lx":77,"ly":29,"mx":74,"my":27},{"lx":79,"ly":31,"mx":77,"my":29},{"lx":81,"ly":33,"mx":79,"my":31},{"lx":82,"ly":34,"mx":81,"my":33},{"lx":83,"ly":35,"mx":82,"my":34},{"lx":84,"ly":36,"mx":83,"my":35},{"lx":84,"ly":37,"mx":84,"my":36},{"lx":85,"ly":38,"mx":84,"my":37},{"lx":85,"ly":39,"mx":85,"my":38},{"lx":85,"ly":40,"mx":85,"my":39},{"lx":85,"ly":41,"mx":85,"my":40},{"lx":84,"ly":42,"mx":85,"my":41},{"lx":84,"ly":43,"mx":84,"my":42},{"lx":82,"ly":44,"mx":84,"my":43},{"lx":81,"ly":46,"mx":82,"my":44},{"lx":79,"ly":46,"mx":81,"my":46},{"lx":77,"ly":47,"mx":79,"my":46},{"lx":76,"ly":47,"mx":77,"my":47},{"lx":75,"ly":47,"mx":76,"my":47},{"lx":74,"ly":46,"mx":75,"my":47},{"lx":58,"ly":22,"mx":58,"my":21},{"lx":59,"ly":21,"mx":58,"my":22},{"lx":60,"ly":21,"mx":59,"my":21},{"lx":63,"ly":21,"mx":60,"my":21},{"lx":67,"ly":21,"mx":63,"my":21},{"lx":70,"ly":21,"mx":67,"my":21},{"lx":76,"ly":20,"mx":70,"my":21},{"lx":80,"ly":19,"mx":76,"my":20},{"lx":84,"ly":17,"mx":80,"my":19},{"lx":89,"ly":16,"mx":84,"my":17},{"lx":92,"ly":14,"mx":89,"my":16},{"lx":94,"ly":14,"mx":92,"my":14},{"lx":96,"ly":12,"mx":94,"my":14},{"lx":106,"ly":34,"mx":106,"my":33},{"lx":105,"ly":32,"mx":106,"my":34},{"lx":104,"ly":32,"mx":105,"my":32},{"lx":103,"ly":32,"mx":104,"my":32},{"lx":101,"ly":32,"mx":103,"my":32},{"lx":100,"ly":32,"mx":101,"my":32},{"lx":98,"ly":33,"mx":100,"my":32},{"lx":96,"ly":33,"mx":98,"my":33},{"lx":95,"ly":34,"mx":96,"my":33},{"lx":93,"ly":36,"mx":95,"my":34},{"lx":93,"ly":37,"mx":93,"my":36},{"lx":92,"ly":38,"mx":93,"my":37},{"lx":92,"ly":39,"mx":92,"my":38},{"lx":93,"ly":39,"mx":92,"my":39},{"lx":94,"ly":39,"mx":93,"my":39},{"lx":96,"ly":39,"mx":94,"my":39},{"lx":98,"ly":39,"mx":96,"my":39},{"lx":100,"ly":39,"mx":98,"my":39},{"lx":103,"ly":39,"mx":100,"my":39},{"lx":105,"ly":39,"mx":103,"my":39},{"lx":106,"ly":39,"mx":105,"my":39},{"lx":107,"ly":38,"mx":106,"my":39},{"lx":108,"ly":37,"mx":107,"my":38},{"lx":108,"ly":36,"mx":108,"my":37},{"lx":108,"ly":35,"mx":108,"my":36},{"lx":108,"ly":34,"mx":108,"my":35},{"lx":108,"ly":33,"mx":108,"my":34},{"lx":108,"ly":34,"mx":108,"my":33},{"lx":108,"ly":36,"mx":108,"my":34},{"lx":108,"ly":39,"mx":108,"my":36},{"lx":108,"ly":40,"mx":108,"my":39},{"lx":108,"ly":42,"mx":108,"my":40},{"lx":108,"ly":43,"mx":108,"my":42},{"lx":109,"ly":43,"mx":108,"my":43},{"lx":110,"ly":43,"mx":109,"my":43},{"lx":111,"ly":44,"mx":110,"my":43},{"lx":112,"ly":44,"mx":111,"my":44},{"lx":113,"ly":44,"mx":112,"my":44},{"lx":116,"ly":44,"mx":113,"my":44},{"lx":117,"ly":43,"mx":116,"my":44},{"lx":119,"ly":40,"mx":117,"my":43},{"lx":119,"ly":38,"mx":119,"my":40},{"lx":121,"ly":36,"mx":119,"my":38},{"lx":122,"ly":34,"mx":121,"my":36},{"lx":123,"ly":31,"mx":122,"my":34},{"lx":123,"ly":30,"mx":123,"my":31},{"lx":123,"ly":28,"mx":123,"my":30},{"lx":124,"ly":27,"mx":123,"my":28},{"lx":124,"ly":26,"mx":124,"my":27},{"lx":125,"ly":25,"mx":124,"my":26},{"lx":126,"ly":25,"mx":125,"my":25},{"lx":127,"ly":25,"mx":126,"my":25},{"lx":128,"ly":25,"mx":127,"my":25},{"lx":129,"ly":26,"mx":128,"my":25},{"lx":130,"ly":27,"mx":129,"my":26},{"lx":129,"ly":27,"mx":130,"my":27},{"lx":129,"ly":29,"mx":129,"my":27},{"lx":128,"ly":29,"mx":129,"my":29},{"lx":128,"ly":30,"mx":128,"my":29},{"lx":128,"ly":31,"mx":128,"my":30},{"lx":128,"ly":33,"mx":128,"my":31},{"lx":128,"ly":34,"mx":128,"my":33},{"lx":129,"ly":35,"mx":128,"my":34},{"lx":130,"ly":38,"mx":129,"my":35},{"lx":131,"ly":38,"mx":130,"my":38},{"lx":132,"ly":38,"mx":131,"my":38},{"lx":134,"ly":39,"mx":132,"my":38},{"lx":137,"ly":39,"mx":134,"my":39},{"lx":138,"ly":39,"mx":137,"my":39},{"lx":139,"ly":39,"mx":138,"my":39},{"lx":142,"ly":37,"mx":139,"my":39},{"lx":142,"ly":36,"mx":142,"my":37},{"lx":143,"ly":35,"mx":142,"my":36},{"lx":144,"ly":33,"mx":143,"my":35},{"lx":145,"ly":31,"mx":144,"my":33},{"lx":146,"ly":31,"mx":145,"my":31},{"lx":147,"ly":31,"mx":146,"my":31},{"lx":148,"ly":31,"mx":147,"my":31},{"lx":149,"ly":31,"mx":148,"my":31},{"lx":147,"ly":32,"mx":149,"my":31},{"lx":147,"ly":33,"mx":147,"my":32},{"lx":146,"ly":35,"mx":147,"my":33},{"lx":145,"ly":36,"mx":146,"my":35},{"lx":145,"ly":37,"mx":145,"my":36},{"lx":145,"ly":39,"mx":145,"my":37},{"lx":145,"ly":40,"mx":145,"my":39},{"lx":145,"ly":41,"mx":145,"my":40},{"lx":145,"ly":42,"mx":145,"my":41},{"lx":145,"ly":43,"mx":145,"my":42},{"lx":146,"ly":44,"mx":145,"my":43},{"lx":147,"ly":44,"mx":146,"my":44},{"lx":149,"ly":44,"mx":147,"my":44},{"lx":150,"ly":42,"mx":149,"my":44},{"lx":150,"ly":40,"mx":150,"my":42},{"lx":150,"ly":39,"mx":150,"my":40},{"lx":150,"ly":38,"mx":150,"my":39},{"lx":150,"ly":36,"mx":150,"my":38},{"lx":150,"ly":35,"mx":150,"my":36},{"lx":149,"ly":33,"mx":150,"my":35},{"lx":149,"ly":31,"mx":149,"my":33},{"lx":148,"ly":31,"mx":149,"my":31},{"lx":148,"ly":30,"mx":148,"my":31},{"lx":148,"ly":29,"mx":148,"my":30},{"lx":148,"ly":28,"mx":148,"my":29},{"lx":148,"ly":26,"mx":148,"my":28},{"lx":148,"ly":24,"mx":148,"my":26},{"lx":148,"ly":22,"mx":148,"my":24},{"lx":148,"ly":20,"mx":148,"my":22},{"lx":148,"ly":17,"mx":148,"my":20},{"lx":148,"ly":16,"mx":148,"my":17},{"lx":148,"ly":15,"mx":148,"my":16},{"lx":149,"ly":16,"mx":148,"my":15},{"lx":150,"ly":19,"mx":149,"my":16},{"lx":152,"ly":23,"mx":150,"my":19},{"lx":153,"ly":29,"mx":152,"my":23},{"lx":154,"ly":31,"mx":153,"my":29},{"lx":156,"ly":34,"mx":154,"my":31},{"lx":158,"ly":38,"mx":156,"my":34},{"lx":159,"ly":41,"mx":158,"my":38},{"lx":162,"ly":43,"mx":159,"my":41},{"lx":164,"ly":47,"mx":162,"my":43},{"lx":166,"ly":49,"mx":164,"my":47},{"lx":167,"ly":51,"mx":166,"my":49},{"lx":169,"ly":52,"mx":167,"my":51},{"lx":169,"ly":53,"mx":169,"my":52},{"lx":171,"ly":54,"mx":169,"my":53},{"lx":172,"ly":54,"mx":171,"my":54},{"lx":172,"ly":53,"mx":172,"my":54},{"lx":172,"ly":51,"mx":172,"my":53},{"lx":172,"ly":46,"mx":172,"my":51},{"lx":172,"ly":44,"mx":172,"my":46},{"lx":172,"ly":43,"mx":172,"my":44},{"lx":171,"ly":41,"mx":172,"my":43},{"lx":170,"ly":40,"mx":171,"my":41},{"lx":170,"ly":39,"mx":170,"my":40},{"lx":169,"ly":39,"mx":170,"my":39},{"lx":169,"ly":38,"mx":169,"my":39},{"lx":170,"ly":38,"mx":169,"my":38},{"lx":173,"ly":39,"mx":170,"my":38},{"lx":176,"ly":39,"mx":173,"my":39},{"lx":178,"ly":39,"mx":176,"my":39},{"lx":181,"ly":39,"mx":178,"my":39},{"lx":184,"ly":39,"mx":181,"my":39},{"lx":185,"ly":39,"mx":184,"my":39},{"lx":186,"ly":38,"mx":185,"my":39},{"lx":187,"ly":37,"mx":186,"my":38},{"lx":188,"ly":36,"mx":187,"my":37},{"lx":188,"ly":35,"mx":188,"my":36},{"lx":188,"ly":34,"mx":188,"my":35},{"lx":189,"ly":36,"mx":188,"my":34},{"lx":191,"ly":38,"mx":189,"my":36},{"lx":193,"ly":41,"mx":191,"my":38},{"lx":194,"ly":42,"mx":193,"my":41},{"lx":196,"ly":43,"mx":194,"my":42},{"lx":197,"ly":44,"mx":196,"my":43},{"lx":197,"ly":45,"mx":197,"my":44},{"lx":197,"ly":46,"mx":197,"my":45},{"lx":195,"ly":46,"mx":197,"my":46},{"lx":194,"ly":46,"mx":195,"my":46},{"lx":193,"ly":46,"mx":194,"my":46},{"lx":194,"ly":46,"mx":193,"my":46},{"lx":195,"ly":46,"mx":194,"my":46},{"lx":197,"ly":46,"mx":195,"my":46},{"lx":198,"ly":46,"mx":197,"my":46},{"lx":199,"ly":46,"mx":198,"my":46},{"lx":199,"ly":45,"mx":199,"my":46},{"lx":219,"ly":21,"mx":219,"my":20},{"lx":220,"ly":21,"mx":219,"my":21},{"lx":220,"ly":22,"mx":220,"my":21},{"lx":220,"ly":24,"mx":220,"my":22},{"lx":220,"ly":25,"mx":220,"my":24},{"lx":220,"ly":27,"mx":220,"my":25},{"lx":220,"ly":28,"mx":220,"my":27},{"lx":219,"ly":29,"mx":220,"my":28},{"lx":218,"ly":30,"mx":219,"my":29},{"lx":217,"ly":31,"mx":218,"my":30},{"lx":214,"ly":31,"mx":217,"my":31},{"lx":212,"ly":31,"mx":214,"my":31},{"lx":211,"ly":31,"mx":212,"my":31},{"lx":208,"ly":30,"mx":211,"my":31},{"lx":206,"ly":29,"mx":208,"my":30},{"lx":205,"ly":27,"mx":206,"my":29},{"lx":202,"ly":24,"mx":205,"my":27},{"lx":202,"ly":22,"mx":202,"my":24},{"lx":202,"ly":21,"mx":202,"my":22},{"lx":202,"ly":20,"mx":202,"my":21},{"lx":202,"ly":18,"mx":202,"my":20},{"lx":202,"ly":17,"mx":202,"my":18},{"lx":204,"ly":16,"mx":202,"my":17},{"lx":207,"ly":16,"mx":204,"my":16},{"lx":209,"ly":16,"mx":207,"my":16},{"lx":210,"ly":16,"mx":209,"my":16},{"lx":213,"ly":16,"mx":210,"my":16},{"lx":216,"ly":16,"mx":213,"my":16},{"lx":218,"ly":16,"mx":216,"my":16},{"lx":221,"ly":16,"mx":218,"my":16},{"lx":224,"ly":16,"mx":221,"my":16},{"lx":226,"ly":17,"mx":224,"my":16},{"lx":227,"ly":17,"mx":226,"my":17},{"lx":229,"ly":17,"mx":227,"my":17},{"lx":230,"ly":17,"mx":229,"my":17},{"lx":231,"ly":19,"mx":230,"my":17},{"lx":232,"ly":20,"mx":231,"my":19},{"lx":233,"ly":22,"mx":232,"my":20},{"lx":233,"ly":24,"mx":233,"my":22},{"lx":233,"ly":27,"mx":233,"my":24},{"lx":234,"ly":33,"mx":233,"my":27},{"lx":234,"ly":36,"mx":234,"my":33},{"lx":234,"ly":41,"mx":234,"my":36},{"lx":234,"ly":44,"mx":234,"my":41},{"lx":234,"ly":46,"mx":234,"my":44},{"lx":234,"ly":47,"mx":234,"my":46},{"lx":240,"ly":45,"mx":240,"my":44},{"lx":242,"ly":44,"mx":240,"my":45},{"lx":243,"ly":44,"mx":242,"my":44},{"lx":246,"ly":44,"mx":243,"my":44},{"lx":248,"ly":43,"mx":246,"my":44},{"lx":250,"ly":42,"mx":248,"my":43},{"lx":251,"ly":42,"mx":250,"my":42},{"lx":253,"ly":40,"mx":251,"my":42},{"lx":255,"ly":39,"mx":253,"my":40},{"lx":255,"ly":38,"mx":255,"my":39},{"lx":255,"ly":36,"mx":255,"my":38},{"lx":255,"ly":35,"mx":255,"my":36},{"lx":255,"ly":34,"mx":255,"my":35},{"lx":255,"ly":33,"mx":255,"my":34},{"lx":255,"ly":32,"mx":255,"my":33},{"lx":255,"ly":31,"mx":255,"my":32},{"lx":254,"ly":31,"mx":255,"my":31},{"lx":253,"ly":31,"mx":254,"my":31},{"lx":252,"ly":32,"mx":253,"my":31},{"lx":252,"ly":34,"mx":252,"my":32},{"lx":252,"ly":36,"mx":252,"my":34},{"lx":252,"ly":37,"mx":252,"my":36},{"lx":252,"ly":38,"mx":252,"my":37},{"lx":252,"ly":40,"mx":252,"my":38},{"lx":253,"ly":41,"mx":252,"my":40},{"lx":255,"ly":43,"mx":253,"my":41},{"lx":256,"ly":44,"mx":255,"my":43},{"lx":260,"ly":45,"mx":256,"my":44},{"lx":263,"ly":46,"mx":260,"my":45},{"lx":265,"ly":46,"mx":263,"my":46},{"lx":268,"ly":46,"mx":265,"my":46},{"lx":271,"ly":46,"mx":268,"my":46},{"lx":273,"ly":45,"mx":271,"my":46},{"lx":274,"ly":44,"mx":273,"my":45},{"lx":275,"ly":42,"mx":274,"my":44},{"lx":276,"ly":40,"mx":275,"my":42},{"lx":277,"ly":39,"mx":276,"my":40},{"lx":278,"ly":37,"mx":277,"my":39},{"lx":278,"ly":34,"mx":278,"my":37},{"lx":279,"ly":33,"mx":278,"my":34},{"lx":280,"ly":32,"mx":279,"my":33},{"lx":281,"ly":31,"mx":280,"my":32},{"lx":282,"ly":31,"mx":281,"my":31},{"lx":283,"ly":32,"mx":282,"my":31},{"lx":285,"ly":34,"mx":283,"my":32},{"lx":288,"ly":36,"mx":285,"my":34},{"lx":291,"ly":40,"mx":288,"my":36},{"lx":293,"ly":42,"mx":291,"my":40},{"lx":294,"ly":43,"mx":293,"my":42},{"lx":295,"ly":44,"mx":294,"my":43},{"lx":295,"ly":45,"mx":295,"my":44},{"lx":295,"ly":46,"mx":295,"my":45},{"lx":294,"ly":46,"mx":295,"my":46},{"lx":291,"ly":46,"mx":294,"my":46},{"lx":289,"ly":46,"mx":291,"my":46},{"lx":286,"ly":46,"mx":289,"my":46},{"lx":284,"ly":46,"mx":286,"my":46},{"lx":283,"ly":46,"mx":284,"my":46},{"lx":282,"ly":46,"mx":283,"my":46},{"lx":284,"ly":46,"mx":282,"my":46},{"lx":285,"ly":46,"mx":284,"my":46},{"lx":286,"ly":46,"mx":285,"my":46},{"lx":287,"ly":46,"mx":286,"my":46},{"lx":289,"ly":46,"mx":287,"my":46},{"lx":290,"ly":44,"mx":289,"my":46},{"lx":292,"ly":43,"mx":290,"my":44},{"lx":293,"ly":40,"mx":292,"my":43},{"lx":296,"ly":38,"mx":293,"my":40},{"lx":298,"ly":35,"mx":296,"my":38},{"lx":300,"ly":30,"mx":298,"my":35},{"lx":302,"ly":25,"mx":300,"my":30},{"lx":304,"ly":22,"mx":302,"my":25},{"lx":304,"ly":19,"mx":304,"my":22},{"lx":305,"ly":16,"mx":304,"my":19},{"lx":306,"ly":14,"mx":305,"my":16},{"lx":307,"ly":13,"mx":306,"my":14},{"lx":307,"ly":16,"mx":307,"my":13},{"lx":307,"ly":26,"mx":307,"my":16},{"lx":307,"ly":29,"mx":307,"my":26},{"lx":307,"ly":32,"mx":307,"my":29},{"lx":307,"ly":35,"mx":307,"my":32},{"lx":308,"ly":39,"mx":307,"my":35},{"lx":310,"ly":40,"mx":308,"my":39},{"lx":311,"ly":42,"mx":310,"my":40},{"lx":314,"ly":44,"mx":311,"my":42},{"lx":317,"ly":46,"mx":314,"my":44},{"lx":320,"ly":47,"mx":317,"my":46},{"lx":323,"ly":48,"mx":320,"my":47},{"lx":326,"ly":50,"mx":323,"my":48},{"lx":330,"ly":50,"mx":326,"my":50},{"lx":333,"ly":50,"mx":330,"my":50},{"lx":333,"ly":49,"mx":333,"my":50},{"lx":333,"ly":48,"mx":333,"my":49},{"lx":333,"ly":46,"mx":333,"my":48},{"lx":332,"ly":45,"mx":333,"my":46},{"lx":332,"ly":44,"mx":332,"my":45},{"lx":294,"ly":29,"mx":294,"my":28},{"lx":295,"ly":28,"mx":294,"my":29},{"lx":296,"ly":28,"mx":295,"my":28},{"lx":299,"ly":28,"mx":296,"my":28},{"lx":302,"ly":28,"mx":299,"my":28},{"lx":307,"ly":28,"mx":302,"my":28},{"lx":312,"ly":28,"mx":307,"my":28},{"lx":317,"ly":28,"mx":312,"my":28},{"lx":320,"ly":28,"mx":317,"my":28},{"lx":322,"ly":26,"mx":320,"my":28},{"lx":322,"ly":25,"mx":322,"my":26},{"lx":323,"ly":25,"mx":322,"my":25},{"lx":324,"ly":25,"mx":323,"my":25}]

I'm not sure, without seeing more.
From what I can tell the output you've supplied looks correct.
How are you passing it in to regenerate()?
On 2011-11-29, at 5:27 PM, webworx wrote:

I am using signature-pad in a .NET 4/MVC 3 application. I have the control displaying properly and saving both the output and the output as an image (bytes) into a SQL database. My issue is when I try to regenerate the signature - I get the following javascript error:
SCRIPT1014: Invalid character
jquery.signaturepad.min.js, line 25 character 499
The line in the js file is when the output string is trying to be parsed.
Am I missing some type of conversion or encoding that needs to be done on the output string?
My output string (from the database) is :
[{"lx":14,"ly":27,"mx":14,"my":26},{"lx":15,"ly":26,"mx":14,"my":27},{"lx":17,"ly":26,"mx":15,"my":26},{"lx":18,"ly":26,"mx":17,"my":26},{"lx":19,"ly":26,"mx":18,"my":26},{"lx":21,"ly":26,"mx":19,"my":26},{"lx":24,"ly":26,"mx":21,"my":26},{"lx":28,"ly":26,"mx":24,"my":26},{"lx":30,"ly":24,"mx":28,"my":26},{"lx":32,"ly":23,"mx":30,"my":24},{"lx":34,"ly":22,"mx":32,"my":23},{"lx":35,"ly":20,"mx":34,"my":22},{"lx":35,"ly":19,"mx":35,"my":20},{"lx":37,"ly":18,"mx":35,"my":19},{"lx":37,"ly":17,"mx":37,"my":18},{"lx":37,"ly":19,"mx":37,"my":17},{"lx":37,"ly":22,"mx":37,"my":19},{"lx":37,"ly":24,"mx":37,"my":22},{"lx":36,"ly":28,"mx":37,"my":24},{"lx":35,"ly":35,"mx":36,"my":28},{"lx":34,"ly":38,"mx":35,"my":35},{"lx":33,"ly":42,"mx":34,"my":38},{"lx":33,"ly":45,"mx":33,"my":42},{"lx":33,"ly":46,"mx":33,"my":45},{"lx":33,"ly":47,"mx":33,"my":46},{"lx":33,"ly":44,"mx":33,"my":47},{"lx":33,"ly":41,"mx":33,"my":44},{"lx":33,"ly":39,"mx":33,"my":41},{"lx":33,"ly":34,"mx":33,"my":39},{"l
x":34,"ly":31,"mx":33,"my":34},{"lx":34,"ly":28,"mx":34,"my":31},{"lx":35,"ly":27,"mx":34,"my":28},{"lx":35,"ly":25,"mx":35,"my":27},{"lx":36,"ly":24,"mx":35,"my":25},{"lx":37,"ly":23,"mx":36,"my":24},{"lx":37,"ly":21,"mx":37,"my":23},{"lx":38,"ly":20,"mx":37,"my":21},{"lx":39,"ly":18,"mx":38,"my":20},{"lx":41,"ly":18,"mx":39,"my":18},{"lx":43,"ly":18,"mx":41,"my":18},{"lx":44,"ly":18,"mx":43,"my":18},{"lx":45,"ly":19,"mx":44,"my":18},{"lx":46,"ly":20,"mx":45,"my":19},{"lx":47,"ly":21,"mx":46,"my":20},{"lx":48,"ly":23,"mx":47,"my":21},{"lx":48,"ly":24,"mx":48,"my":23},{"lx":48,"ly":25,"mx":48,"my":24},{"lx":48,"ly":27,"mx":48,"my":25},{"lx":48,"ly":30,"mx":48,"my":27},{"lx":46,"ly":31,"mx":48,"my":30},{"lx":43,"ly":32,"mx":46,"my":31},{"lx":41,"ly":33,"mx":43,"my":32},{"lx":40,"ly":34,"mx":41,"my":33},{"lx":39,"ly":34,"mx":40,"my":34},{"lx":39,"ly":35,"mx":39,"my":34},{"lx":39,"ly":36,"mx":39,"my":35},{"lx":40,"ly":36,"mx":39,"my":36},{"lx":41,"ly":36,"mx":40,"my":36},{"lx":
42,"ly":36,"mx":41,"my":36},{"lx":44,"ly":37,"mx":42,"my":36},{"lx":45,"ly":38,"mx":44,"my":37},{"lx":47,"ly":38,"mx":45,"my":38},{"lx":47,"ly":39,"mx":47,"my":38},{"lx":48,"ly":40,"mx":47,"my":39},{"lx":48,"ly":41,"mx":48,"my":40},{"lx":48,"ly":42,"mx":48,"my":41},{"lx":46,"ly":42,"mx":48,"my":42},{"lx":45,"ly":42,"mx":46,"my":42},{"lx":43,"ly":42,"mx":45,"my":42},{"lx":41,"ly":43,"mx":43,"my":42},{"lx":39,"ly":43,"mx":41,"my":43},{"lx":38,"ly":43,"mx":39,"my":43},{"lx":65,"ly":18,"mx":65,"my":17},{"lx":66,"ly":17,"mx":65,"my":18},{"lx":67,"ly":19,"mx":66,"my":17},{"lx":69,"ly":21,"mx":67,"my":19},{"lx":72,"ly":25,"mx":69,"my":21},{"lx":74,"ly":27,"mx":72,"my":25},{"lx":77,"ly":29,"mx":74,"my":27},{"lx":79,"ly":31,"mx":77,"my":29},{"lx":81,"ly":33,"mx":79,"my":31},{"lx":82,"ly":34,"mx":81,"my":33},{"lx":83,"ly":35,"mx":82,"my":34},{"lx":84,"ly":36,"mx":83,"my":35},{"lx":84,"ly":37,"mx":84,"my":36},{"lx":85,"ly":38,"mx":84,"my":37},{"lx":85,"ly":39,"mx":85,"my":38},{"lx":85,
"ly":40,"mx":85,"my":39},{"lx":85,"ly":41,"mx":85,"my":40},{"lx":84,"ly":42,"mx":85,"my":41},{"lx":84,"ly":43,"mx":84,"my":42},{"lx":82,"ly":44,"mx":84,"my":43},{"lx":81,"ly":46,"mx":82,"my":44},{"lx":79,"ly":46,"mx":81,"my":46},{"lx":77,"ly":47,"mx":79,"my":46},{"lx":76,"ly":47,"mx":77,"my":47},{"lx":75,"ly":47,"mx":76,"my":47},{"lx":74,"ly":46,"mx":75,"my":47},{"lx":58,"ly":22,"mx":58,"my":21},{"lx":59,"ly":21,"mx":58,"my":22},{"lx":60,"ly":21,"mx":59,"my":21},{"lx":63,"ly":21,"mx":60,"my":21},{"lx":67,"ly":21,"mx":63,"my":21},{"lx":70,"ly":21,"mx":67,"my":21},{"lx":76,"ly":20,"mx":70,"my":21},{"lx":80,"ly":19,"mx":76,"my":20},{"lx":84,"ly":17,"mx":80,"my":19},{"lx":89,"ly":16,"mx":84,"my":17},{"lx":92,"ly":14,"mx":89,"my":16},{"lx":94,"ly":14,"mx":92,"my":14},{"lx":96,"ly":12,"mx":94,"my":14},{"lx":106,"ly":34,"mx":106,"my":33},{"lx":105,"ly":32,"mx":106,"my":34},{"lx":104,"ly":32,"mx":105,"my":32},{"lx":103,"ly":32,"mx":104,"my":32},{"lx":101,"ly":32,"mx":103,"my":32},{"
lx":100,"ly":32,"mx":101,"my":32},{"lx":98,"ly":33,"mx":100,"my":32},{"lx":96,"ly":33,"mx":98,"my":33},{"lx":95,"ly":34,"mx":96,"my":33},{"lx":93,"ly":36,"mx":95,"my":34},{"lx":93,"ly":37,"mx":93,"my":36},{"lx":92,"ly":38,"mx":93,"my":37},{"lx":92,"ly":39,"mx":92,"my":38},{"lx":93,"ly":39,"mx":92,"my":39},{"lx":94,"ly":39,"mx":93,"my":39},{"lx":96,"ly":39,"mx":94,"my":39},{"lx":98,"ly":39,"mx":96,"my":39},{"lx":100,"ly":39,"mx":98,"my":39},{"lx":103,"ly":39,"mx":100,"my":39},{"lx":105,"ly":39,"mx":103,"my":39},{"lx":106,"ly":39,"mx":105,"my":39},{"lx":107,"ly":38,"mx":106,"my":39},{"lx":108,"ly":37,"mx":107,"my":38},{"lx":108,"ly":36,"mx":108,"my":37},{"lx":108,"ly":35,"mx":108,"my":36},{"lx":108,"ly":34,"mx":108,"my":35},{"lx":108,"ly":33,"mx":108,"my":34},{"lx":108,"ly":34,"mx":108,"my":33},{"lx":108,"ly":36,"mx":108,"my":34},{"lx":108,"ly":39,"mx":108,"my":36},{"lx":108,"ly":40,"mx":108,"my":39},{"lx":108,"ly":42,"mx":108,"my":40},{"lx":108,"ly":43,"mx":108,"my":42},{"lx"
:109,"ly":43,"mx":108,"my":43},{"lx":110,"ly":43,"mx":109,"my":43},{"lx":111,"ly":44,"mx":110,"my":43},{"lx":112,"ly":44,"mx":111,"my":44},{"lx":113,"ly":44,"mx":112,"my":44},{"lx":116,"ly":44,"mx":113,"my":44},{"lx":117,"ly":43,"mx":116,"my":44},{"lx":119,"ly":40,"mx":117,"my":43},{"lx":119,"ly":38,"mx":119,"my":40},{"lx":121,"ly":36,"mx":119,"my":38},{"lx":122,"ly":34,"mx":121,"my":36},{"lx":123,"ly":31,"mx":122,"my":34},{"lx":123,"ly":30,"mx":123,"my":31},{"lx":123,"ly":28,"mx":123,"my":30},{"lx":124,"ly":27,"mx":123,"my":28},{"lx":124,"ly":26,"mx":124,"my":27},{"lx":125,"ly":25,"mx":124,"my":26},{"lx":126,"ly":25,"mx":125,"my":25},{"lx":127,"ly":25,"mx":126,"my":25},{"lx":128,"ly":25,"mx":127,"my":25},{"lx":129,"ly":26,"mx":128,"my":25},{"lx":130,"ly":27,"mx":129,"my":26},{"lx":129,"ly":27,"mx":130,"my":27},{"lx":129,"ly":29,"mx":129,"my":27},{"lx":128,"ly":29,"mx":129,"my":29},{"lx":128,"ly":30,"mx":128,"my":29},{"lx":128,"ly":31,"mx":128,"my":30},{"lx":128,"ly":33,"mx"
:128,"my":31},{"lx":128,"ly":34,"mx":128,"my":33},{"lx":129,"ly":35,"mx":128,"my":34},{"lx":130,"ly":38,"mx":129,"my":35},{"lx":131,"ly":38,"mx":130,"my":38},{"lx":132,"ly":38,"mx":131,"my":38},{"lx":134,"ly":39,"mx":132,"my":38},{"lx":137,"ly":39,"mx":134,"my":39},{"lx":138,"ly":39,"mx":137,"my":39},{"lx":139,"ly":39,"mx":138,"my":39},{"lx":142,"ly":37,"mx":139,"my":39},{"lx":142,"ly":36,"mx":142,"my":37},{"lx":143,"ly":35,"mx":142,"my":36},{"lx":144,"ly":33,"mx":143,"my":35},{"lx":145,"ly":31,"mx":144,"my":33},{"lx":146,"ly":31,"mx":145,"my":31},{"lx":147,"ly":31,"mx":146,"my":31},{"lx":148,"ly":31,"mx":147,"my":31},{"lx":149,"ly":31,"mx":148,"my":31},{"lx":147,"ly":32,"mx":149,"my":31},{"lx":147,"ly":33,"mx":147,"my":32},{"lx":146,"ly":35,"mx":147,"my":33},{"lx":145,"ly":36,"mx":146,"my":35},{"lx":145,"ly":37,"mx":145,"my":36},{"lx":145,"ly":39,"mx":145,"my":37},{"lx":145,"ly":40,"mx":145,"my":39},{"lx":145,"ly":41,"mx":145,"my":40},{"lx":145,"ly":42,"mx":145,"my":41},{"l
x":145,"ly":43,"mx":145,"my":42},{"lx":146,"ly":44,"mx":145,"my":43},{"lx":147,"ly":44,"mx":146,"my":44},{"lx":149,"ly":44,"mx":147,"my":44},{"lx":150,"ly":42,"mx":149,"my":44},{"lx":150,"ly":40,"mx":150,"my":42},{"lx":150,"ly":39,"mx":150,"my":40},{"lx":150,"ly":38,"mx":150,"my":39},{"lx":150,"ly":36,"mx":150,"my":38},{"lx":150,"ly":35,"mx":150,"my":36},{"lx":149,"ly":33,"mx":150,"my":35},{"lx":149,"ly":31,"mx":149,"my":33},{"lx":148,"ly":31,"mx":149,"my":31},{"lx":148,"ly":30,"mx":148,"my":31},{"lx":148,"ly":29,"mx":148,"my":30},{"lx":148,"ly":28,"mx":148,"my":29},{"lx":148,"ly":26,"mx":148,"my":28},{"lx":148,"ly":24,"mx":148,"my":26},{"lx":148,"ly":22,"mx":148,"my":24},{"lx":148,"ly":20,"mx":148,"my":22},{"lx":148,"ly":17,"mx":148,"my":20},{"lx":148,"ly":16,"mx":148,"my":17},{"lx":148,"ly":15,"mx":148,"my":16},{"lx":149,"ly":16,"mx":148,"my":15},{"lx":150,"ly":19,"mx":149,"my":16},{"lx":152,"ly":23,"mx":150,"my":19},{"lx":153,"ly":29,"mx":152,"my":23},{"lx":154,"ly":31,"m
x":153,"my":29},{"lx":156,"ly":34,"mx":154,"my":31},{"lx":158,"ly":38,"mx":156,"my":34},{"lx":159,"ly":41,"mx":158,"my":38},{"lx":162,"ly":43,"mx":159,"my":41},{"lx":164,"ly":47,"mx":162,"my":43},{"lx":166,"ly":49,"mx":164,"my":47},{"lx":167,"ly":51,"mx":166,"my":49},{"lx":169,"ly":52,"mx":167,"my":51},{"lx":169,"ly":53,"mx":169,"my":52},{"lx":171,"ly":54,"mx":169,"my":53},{"lx":172,"ly":54,"mx":171,"my":54},{"lx":172,"ly":53,"mx":172,"my":54},{"lx":172,"ly":51,"mx":172,"my":53},{"lx":172,"ly":46,"mx":172,"my":51},{"lx":172,"ly":44,"mx":172,"my":46},{"lx":172,"ly":43,"mx":172,"my":44},{"lx":171,"ly":41,"mx":172,"my":43},{"lx":170,"ly":40,"mx":171,"my":41},{"lx":170,"ly":39,"mx":170,"my":40},{"lx":169,"ly":39,"mx":170,"my":39},{"lx":169,"ly":38,"mx":169,"my":39},{"lx":170,"ly":38,"mx":169,"my":38},{"lx":173,"ly":39,"mx":170,"my":38},{"lx":176,"ly":39,"mx":173,"my":39},{"lx":178,"ly":39,"mx":176,"my":39},{"lx":181,"ly":39,"mx":178,"my":39},{"lx":184,"ly":39,"mx":181,"my":39},{
"lx":185,"ly":39,"mx":184,"my":39},{"lx":186,"ly":38,"mx":185,"my":39},{"lx":187,"ly":37,"mx":186,"my":38},{"lx":188,"ly":36,"mx":187,"my":37},{"lx":188,"ly":35,"mx":188,"my":36},{"lx":188,"ly":34,"mx":188,"my":35},{"lx":189,"ly":36,"mx":188,"my":34},{"lx":191,"ly":38,"mx":189,"my":36},{"lx":193,"ly":41,"mx":191,"my":38},{"lx":194,"ly":42,"mx":193,"my":41},{"lx":196,"ly":43,"mx":194,"my":42},{"lx":197,"ly":44,"mx":196,"my":43},{"lx":197,"ly":45,"mx":197,"my":44},{"lx":197,"ly":46,"mx":197,"my":45},{"lx":195,"ly":46,"mx":197,"my":46},{"lx":194,"ly":46,"mx":195,"my":46},{"lx":193,"ly":46,"mx":194,"my":46},{"lx":194,"ly":46,"mx":193,"my":46},{"lx":195,"ly":46,"mx":194,"my":46},{"lx":197,"ly":46,"mx":195,"my":46},{"lx":198,"ly":46,"mx":197,"my":46},{"lx":199,"ly":46,"mx":198,"my":46},{"lx":199,"ly":45,"mx":199,"my":46},{"lx":219,"ly":21,"mx":219,"my":20},{"lx":220,"ly":21,"mx":219,"my":21},{"lx":220,"ly":22,"mx":220,"my":21},{"lx":220,"ly":24,"mx":220,"my":22},{"lx":220,"ly":25,
"mx":220,"my":24},{"lx":220,"ly":27,"mx":220,"my":25},{"lx":220,"ly":28,"mx":220,"my":27},{"lx":219,"ly":29,"mx":220,"my":28},{"lx":218,"ly":30,"mx":219,"my":29},{"lx":217,"ly":31,"mx":218,"my":30},{"lx":214,"ly":31,"mx":217,"my":31},{"lx":212,"ly":31,"mx":214,"my":31},{"lx":211,"ly":31,"mx":212,"my":31},{"lx":208,"ly":30,"mx":211,"my":31},{"lx":206,"ly":29,"mx":208,"my":30},{"lx":205,"ly":27,"mx":206,"my":29},{"lx":202,"ly":24,"mx":205,"my":27},{"lx":202,"ly":22,"mx":202,"my":24},{"lx":202,"ly":21,"mx":202,"my":22},{"lx":202,"ly":20,"mx":202,"my":21},{"lx":202,"ly":18,"mx":202,"my":20},{"lx":202,"ly":17,"mx":202,"my":18},{"lx":204,"ly":16,"mx":202,"my":17},{"lx":207,"ly":16,"mx":204,"my":16},{"lx":209,"ly":16,"mx":207,"my":16},{"lx":210,"ly":16,"mx":209,"my":16},{"lx":213,"ly":16,"mx":210,"my":16},{"lx":216,"ly":16,"mx":213,"my":16},{"lx":218,"ly":16,"mx":216,"my":16},{"lx":221,"ly":16,"mx":218,"my":16},{"lx":224,"ly":16,"mx":221,"my":16},{"lx":226,"ly":17,"mx":224,"my":16}
,{"lx":227,"ly":17,"mx":226,"my":17},{"lx":229,"ly":17,"mx":227,"my":17},{"lx":230,"ly":17,"mx":229,"my":17},{"lx":231,"ly":19,"mx":230,"my":17},{"lx":232,"ly":20,"mx":231,"my":19},{"lx":233,"ly":22,"mx":232,"my":20},{"lx":233,"ly":24,"mx":233,"my":22},{"lx":233,"ly":27,"mx":233,"my":24},{"lx":234,"ly":33,"mx":233,"my":27},{"lx":234,"ly":36,"mx":234,"my":33},{"lx":234,"ly":41,"mx":234,"my":36},{"lx":234,"ly":44,"mx":234,"my":41},{"lx":234,"ly":46,"mx":234,"my":44},{"lx":234,"ly":47,"mx":234,"my":46},{"lx":240,"ly":45,"mx":240,"my":44},{"lx":242,"ly":44,"mx":240,"my":45},{"lx":243,"ly":44,"mx":242,"my":44},{"lx":246,"ly":44,"mx":243,"my":44},{"lx":248,"ly":43,"mx":246,"my":44},{"lx":250,"ly":42,"mx":248,"my":43},{"lx":251,"ly":42,"mx":250,"my":42},{"lx":253,"ly":40,"mx":251,"my":42},{"lx":255,"ly":39,"mx":253,"my":40},{"lx":255,"ly":38,"mx":255,"my":39},{"lx":255,"ly":36,"mx":255,"my":38},{"lx":255,"ly":35,"mx":255,"my":36},{"lx":255,"ly":34,"mx":255,"my":35},{"lx":255,"ly":3
3,"mx":255,"my":34},{"lx":255,"ly":32,"mx":255,"my":33},{"lx":255,"ly":31,"mx":255,"my":32},{"lx":254,"ly":31,"mx":255,"my":31},{"lx":253,"ly":31,"mx":254,"my":31},{"lx":252,"ly":32,"mx":253,"my":31},{"lx":252,"ly":34,"mx":252,"my":32},{"lx":252,"ly":36,"mx":252,"my":34},{"lx":252,"ly":37,"mx":252,"my":36},{"lx":252,"ly":38,"mx":252,"my":37},{"lx":252,"ly":40,"mx":252,"my":38},{"lx":253,"ly":41,"mx":252,"my":40},{"lx":255,"ly":43,"mx":253,"my":41},{"lx":256,"ly":44,"mx":255,"my":43},{"lx":260,"ly":45,"mx":256,"my":44},{"lx":263,"ly":46,"mx":260,"my":45},{"lx":265,"ly":46,"mx":263,"my":46},{"lx":268,"ly":46,"mx":265,"my":46},{"lx":271,"ly":46,"mx":268,"my":46},{"lx":273,"ly":45,"mx":271,"my":46},{"lx":274,"ly":44,"mx":273,"my":45},{"lx":275,"ly":42,"mx":274,"my":44},{"lx":276,"ly":40,"mx":275,"my":42},{"lx":277,"ly":39,"mx":276,"my":40},{"lx":278,"ly":37,"mx":277,"my":39},{"lx":278,"ly":34,"mx":278,"my":37},{"lx":279,"ly":33,"mx":278,"my":34},{"lx":280,"ly":32,"mx":279,"my":3
3},{"lx":281,"ly":31,"mx":280,"my":32},{"lx":282,"ly":31,"mx":281,"my":31},{"lx":283,"ly":32,"mx":282,"my":31},{"lx":285,"ly":34,"mx":283,"my":32},{"lx":288,"ly":36,"mx":285,"my":34},{"lx":291,"ly":40,"mx":288,"my":36},{"lx":293,"ly":42,"mx":291,"my":40},{"lx":294,"ly":43,"mx":293,"my":42},{"lx":295,"ly":44,"mx":294,"my":43},{"lx":295,"ly":45,"mx":295,"my":44},{"lx":295,"ly":46,"mx":295,"my":45},{"lx":294,"ly":46,"mx":295,"my":46},{"lx":291,"ly":46,"mx":294,"my":46},{"lx":289,"ly":46,"mx":291,"my":46},{"lx":286,"ly":46,"mx":289,"my":46},{"lx":284,"ly":46,"mx":286,"my":46},{"lx":283,"ly":46,"mx":284,"my":46},{"lx":282,"ly":46,"mx":283,"my":46},{"lx":284,"ly":46,"mx":282,"my":46},{"lx":285,"ly":46,"mx":284,"my":46},{"lx":286,"ly":46,"mx":285,"my":46},{"lx":287,"ly":46,"mx":286,"my":46},{"lx":289,"ly":46,"mx":287,"my":46},{"lx":290,"ly":44,"mx":289,"my":46},{"lx":292,"ly":43,"mx":290,"my":44},{"lx":293,"ly":40,"mx":292,"my":43},{"lx":296,"ly":38,"mx":293,"my":40},{"lx":298,"ly"
:35,"mx":296,"my":38},{"lx":300,"ly":30,"mx":298,"my":35},{"lx":302,"ly":25,"mx":300,"my":30},{"lx":304,"ly":22,"mx":302,"my":25},{"lx":304,"ly":19,"mx":304,"my":22},{"lx":305,"ly":16,"mx":304,"my":19},{"lx":306,"ly":14,"mx":305,"my":16},{"lx":307,"ly":13,"mx":306,"my":14},{"lx":307,"ly":16,"mx":307,"my":13},{"lx":307,"ly":26,"mx":307,"my":16},{"lx":307,"ly":29,"mx":307,"my":26},{"lx":307,"ly":32,"mx":307,"my":29},{"lx":307,"ly":35,"mx":307,"my":32},{"lx":308,"ly":39,"mx":307,"my":35},{"lx":310,"ly":40,"mx":308,"my":39},{"lx":311,"ly":42,"mx":310,"my":40},{"lx":314,"ly":44,"mx":311,"my":42},{"lx":317,"ly":46,"mx":314,"my":44},{"lx":320,"ly":47,"mx":317,"my":46},{"lx":323,"ly":48,"mx":320,"my":47},{"lx":326,"ly":50,"mx":323,"my":48},{"lx":330,"ly":50,"mx":326,"my":50},{"lx":333,"ly":50,"mx":330,"my":50},{"lx":333,"ly":49,"mx":333,"my":50},{"lx":333,"ly":48,"mx":333,"my":49},{"lx":333,"ly":46,"mx":333,"my":48},{"lx":332,"ly":45,"mx":333,"my":46},{"lx":332,"ly":44,"mx":332,"my"
:45},{"lx":294,"ly":29,"mx":294,"my":28},{"lx":295,"ly":28,"mx":294,"my":29},{"lx":296,"ly":28,"mx":295,"my":28},{"lx":299,"ly":28,"mx":296,"my":28},{"lx":302,"ly":28,"mx":299,"my":28},{"lx":307,"ly":28,"mx":302,"my":28},{"lx":312,"ly":28,"mx":307,"my":28},{"lx":317,"ly":28,"mx":312,"my":28},{"lx":320,"ly":28,"mx":317,"my":28},{"lx":322,"ly":26,"mx":320,"my":28},{"lx":322,"ly":25,"mx":322,"my":26},{"lx":323,"ly":25,"mx":322,"my":25},{"lx":324,"ly":25,"mx":323,"my":25}]

Reply to this email directly or view it on GitHub:
https://github.com/thomasjbradley/signature-pad/issues/22

The issue was definately due to jquery encoding the string that was pass in. I was trying to just pass the value directly into jquery using the @Model.VarName. But after trying to several methods to keep the string decoded I ended up putting a new hidden input field on the form with the value set to the view model variable and then referencing the hidden field in the regenerate code. Works fine now.


Intl.NumberFormat(locale, {currency: string}) has no type for locale/currency

TypeScript Version:  3.8.3
Search Terms: Intl, NumberFormat, CurrencyCode, LocaleCode
Expected behavior: Intelisense on fill locale and currency in Intl.NumberFormat
Actual behavior: Both locale and currency (if string.length !== 3 throw RangerError) accept string
Related Issues:
Code
/*
  The problem
  In Intl.NumberFormat, the first parameter (locale) and options.currency has "string" as type. But both has
  codes to work as expect, with wrong string/code.
  If options.currency has code different of the acceptable codes, then throw RangeError. So, I suggest to type this
  parameter with the acceptable codes
*/

/*
  It's not a problem, only an improvement to work with .NumberFormat.
  Locale and currency are string, but:
    - locale I cannot find an official list, but this gist: https://gist.github.com/ndbroadbent/588fefab8e0f1b459fcec8181b41b39c
    has many items for locale
    - currency has a list for acceptable formats: https://www.currency-iso.org/dam/downloads/lists/list_one.xml
*/

const locale: string = "pt-BR"; // we can type locale with the items in gist
const currency: string = "BRL"; // we can type currency with the acceptable formats in currency-iso.org xml

/*
  Intl.NumberFormat declaration
  var NumberFormat: {
        new(locales?: string | string[], options?: NumberFormatOptions): NumberFormat;
        (locales?: string | string[], options?: NumberFormatOptions): NumberFormat;
        supportedLocalesOf(locales: string | string[], options?: NumberFormatOptions): string[];
  };

  and the options (second parameter)
  interface NumberFormatOptions {
        localeMatcher?: string;
        style?: string;
        currency?: string; // here the "problem", currency has the acceptable codes, but here is string
        currencyDisplay?: string;
        useGrouping?: boolean;
        minimumIntegerDigits?: number;
        minimumFractionDigits?: number;
        maximumFractionDigits?: number;
        minimumSignificantDigits?: number;
        maximumSignificantDigits?: number;
    }
*/

// good, that's work
let fmt = new Intl.NumberFormat(locale, { style: "currency", currency: "BRL" });
console.log(fmt.format(5000))

// works, but is not know code on acceptable currency codes
fmt = new Intl.NumberFormat(locale, { style: "currency", currency: "BRA" });
console.log(fmt.format(5000))

// ops...RangeError
fmt = new Intl.NumberFormat(locale, { style: "currency", currency: "SOME" });
console.log(fmt.format(5000))

/*
  Suggestion
  The rule of currency is: 3 characters. If the code in acceptable codes, then format by according rule. If not, then
  format is: XXX 5.000,00
  Maybe this parameter is not type intentionally, but with correct codes in type, we can prevent spelling errors on
  use Intl.NumberFormat
*/

Output
"use strict";
const locale = "pt-BR";
const currency = "BRL";
let fmt = new Intl.NumberFormat(locale, { style: "currency", currency: "BRL" });
console.log(fmt.format(5000));
fmt = new Intl.NumberFormat(locale, { style: "currency", currency: "BRA" });
console.log(fmt.format(5000));
fmt = new Intl.NumberFormat(locale, { style: "currency", currency: "SOME" });
console.log(fmt.format(5000));

Compiler Options
{
  "compilerOptions": {
    "noImplicitAny": true,
    "strictNullChecks": true,
    "strictFunctionTypes": true,
    "strictPropertyInitialization": true,
    "strictBindCallApply": true,
    "noImplicitThis": true,
    "noImplicitReturns": true,
    "useDefineForClassFields": true,
    "alwaysStrict": true,
    "allowUnreachableCode": false,
    "allowUnusedLabels": false,
    "downlevelIteration": false,
    "noEmitHelpers": false,
    "noLib": false,
    "noStrictGenericChecks": false,
    "noUnusedLocals": false,
    "noUnusedParameters": false,
    "esModuleInterop": true,
    "preserveConstEnums": false,
    "removeComments": true,
    "skipLibCheck": false,
    "checkJs": false,
    "allowJs": false,
    "declaration": true,
    "experimentalDecorators": false,
    "emitDecoratorMetadata": false,
    "target": "ES2017",
    "jsx": "Preserve",
    "module": "ESNext"
  }
}

Playground Link: Provided

TS currently has no way to type "3-character strings only" and I don't think this is a compelling-enough use case to start adding something like that.


TypeError: mod.require is not a function

App threw an error during load
TypeError: mod.require is not a function

It's a duplicate, please see https://github.com/getsentry/sentry-electron/issues/92
there are some workarounds explained in there.


Can't get content-type of the final request after redirect

Reproduction
Use this url: https://cite.case.law/pdf/5713742/Blanks v. West Point Wholesale Grocery Co., 225 Ala. 74, 142 So. 49 (1932).pdf
Exctract headers with response.headers.get('content-type')
The result returns 'text/html; charset=utf-8'
Expected behavior
The result should be 'application/pdf'
I tried setting the redirect option since request is being redirected to both "follow" or "manual" but none of them gave the expected result.
The url is being redirected as far as i can tell because the status code of the response is 302, but i need the actual final response that gives me the content-type of the link (application/pdf in this case)
Is there a different way to get the content-type of the final request?
Your Environment

software
version

node-fetch
2.6.1

node
14.0.0

npm
6.14.4

Operating System
Ubuntu 20.04

If you try to fetch the document with curl, such as through
curl -L -v 'https://cite.case.law/pdf/5713742/Blanks%20v.%20West%20Point%20Wholesale%20Grocery%20Co.,%20225%20Ala.%2074,%20142%20So.%2049%20(1932).pdf'

you see that the result is an actual HTML page containing some JavaScript code that appears to redirect the user, as well as a <meta http-equiv=Refresh> redirect. Node-fetch only handles traditional HTTP 3XX redirects and does not attempt to interpret HTTP responses in any way, so it will not pick up these refreshes. It's up to you to handle these type of redirects yourself.

Sorry about that.
I thought it was a normal 3xx redirect since i got a status code of 302 from node-fetch when doing the request.


travis: send emails iff commit caused the build to start failing

This setting should ensure that email notifications are sent
only when the commit caused the build to start failing.  That
is, no more "the build is still failing" spam.
As an alternative we could consider disabling email
notifications outright and possibly enable IRC notifications
instead.
I believe this fixes https://github.com/NixOS/nixpkgs/issues/23887

Let's give it a try.

Is someone actively working on making it useful again? This seems like it'll shut things up, but it still looks really bad to have a red badge and all our commits fail (I just had a friend ask me why we were always merging red builds)


Allow outline attribute

Currently outline is the implicit default, but one cannot explicitly use outline as an attribute on heroicons like so: <Heroicons.photo outline />

Closed in https://github.com/mveytsman/heroicons_elixir/commit/679ca4cfcb21d31108f20aae3209a252b959d9e5


Issue during implemantation

Android:
conflicts by google_play.jar: solved by copying of jar file from ti.map to our module
iOS:
conflicts by double using of same libraries: solved by removing of obsolete ti.ga

Common:
The container must be deployed, in other case the app crashes.

@AppWerft what versión of Titanium SDK are you using?

The 1st error is probably the same issue as here: https://github.com/Sitata/titanium_google_plus/issues/12
I fixed it there and I can send you a pull request here too.

@AppWerft @manumaticx can you give some more details how to fix this issue? I changed the jar files and recompiled the module, but it still didn't work.

@AppWerft Hi how you solve for GA? because I had another module which utilising libGoogleAnalyticsServices.a and this module has same library, when compiling it wont compile due to duplicate library (iOS)


no-response workflow is not working currently

I think lee-dohm/no-response@* pattern should be allowed. GitHub docs

I've addressed this issue by explicitly adding an allowance for it within the Settings > Actions > Allow specified actions and reusable workflows config.

Sorry, I just got back from vacation!


Cursor misalignment

Anybody else seeing this:

It's probably a misalignment in the custom font you're loading, not something Bootstrap can take care of.

yes i think you're right..just checked.
weird since its avenir from myfonts.com with no modification.


RestKit doesnt build in version 0.26

Maybe this is my problem, as I would assume its working for some people.
I have updated to 0.26 today, I am using use_frameworks! in my Podfile (cocoapods 0.39)
It fails in CoreData.h on #import <RestKit/CoreData/RKEntityMapping.h> with file not found
I have tried cleaning, removing Pods/, no luck getting this to build.

Can you try the current development branch?

Same for me

Same here. Seems to be related to CocoaPods 0.39.
Older versions of CocoaPods (pod _0.38.2_ install) work fine.

@segiddins I tried installing from development (pod 'RestKit', :git => 'https://github.com/RestKit/RestKit.git', :branch => 'development'), same problem
.../Pods/RestKit/Code/CoreData.h:22:9: 'RestKit/CoreData/RKEntityMapping.h' file not found

@frane I was having problems with everything with CocoaPods 0.39 until I started using use_frameworks!, now I have a problem again, but only with RestKit 0.26

@mcfedr I'm not using use_frameworks!, but when I tried, I had the same experience as you did.

Me too.
@mcfedr I managed to fix the problem removing use_frameworks! flag from podfile

@MarcoBrescianini fun! so version 0.26 seems to break use_frameworks! but also fix when its not there, version 0.25 doesn't work without use_frameworks!

Ah, well, I take that back slight, the development version works without use_framework! but 0.26 doesnt.

If development works, I'll release a new patch version. If not, please share a project I can use to debug or submit a PR with a fix. Thanks!

I'm not really sure where to start with a pull request, but I have made a project that shows this bug
https://github.com/mcfedr/TestRestKit

RestKit 0.26.0 doesn't work with CocoaPods 0.39.0, because it does not include CocoaPods#4267.
The changes made in #2310 assume, that the paths in the header_mappings_dir are preserved.
Cocoapods 0.39.0 does not do that and places the header at RestKit/RKEntityMapping.h instead of RestKit/CoreData/RKEntityMapping.h.
When using the current CocoaPods master, there are three different issues however:

lcl_RK.h file not found. See #2360

_SYSTEMCONFIGURATION_H not defined in AFHTTPClient.h
Same issue exists with RestKit 0.25.0. Bisected this down to CocoaPods#4267 as well.
Not sure what exactly the reason for this is, but I assume that the way headers are integrated now leads to the prefix header not being applied properly.
For me the first build after a clean doesn't work. I have to build two times in a row, because otherwise the headers are not found. RestKit development, CocoaPods master, Xcode 7.1

When specifying use_frameworks! in the Podfile, I can't get RestKit development integrated without additional workarounds, regardless of CocoaPods version.
Tested with:
Xcode 6.4, 7.0.1 and 7.1
CocoaPods 0.38.1, 0.38.2, 0.39 and master
https://travis-ci.org/timbodeit/RestKitTest/builds/93243450

Feel free to make PRs fixing it and I'd be happy to ship a patch release.

@segiddins Could you give me some input on @2360 please?

I'm wondering why you see the headers copied "flat" - with cocoa pods 0.39 I get the headers copied to subfolders and then compilation is broken as the sub-paths are not added to the search directory settings.
        pod 'RestKit', '~> 0.26', :inhibit_warnings => true

results in a public header dir containing:
         CoreData/
         Network/
         ObjectMapping/
         RestKit.h@
         Support.h@
         Testing.h@
         CoreData.h@
         Network.h@
         ObjectMapping.h@
         Support/
         Testing/

When will this can be fixed?

The fix for this appears to be in Cocoa Pods 1.0 beta according to https://github.com/CocoaPods/CocoaPods/pull/4267 - I haven't test it yet, but it should fix this.

@mcfedr I use cocoapods 1.0.0-beta2 + ReskKit 0.26 + use_frameworks!
not work

@jlampa @segiddins I still get missing headers in the Support folder. E.g. it says RestKit/Support/lcl_RK.h missing when referenced from RestKit/Support/lcl_RK.m.
Related? Should those be included as well in this fix?

This issue is far from closed...
I have been doing some experimenting.
First I reverted the changes to use 'framework' style headers. I cannot see the sense of this, as its trying to use the RestKit frameworks headers before the framework is built.
Using this branch gets RestKit to build and work with CocoaPods 0.39
https://github.com/RestKit/RestKit/compare/development...mcfedr:no-frameworks
Unfortunately it fails when using CocoaPods 1.0 (beta 4). But a further adjustment using relative header paths seems to solve this problem. This branch doesnt work with 0.39.
https://github.com/RestKit/RestKit/compare/development...mcfedr:relative
Furthermore the SystemConfiguration includes get all difficult with CocoaPods 1.0. Both AFNetworking and RestKit (and my project) include and link with SystemConfiguration. But for some reason when the
AFNetworking headers are included in RestKit,, SystemConfiguration is not visible to the headers and I get build errors unless I edit AFHTTPClient and include SystemConfiguration explicitly.
So I'm not sure I have a proper solution at this point. But I feel close...

Why is this ticket closed? This is still not working properly, even with the latest dev branch.

@falkobuttler Can you try with either of my branches, I would be really interested in what works for you, I'm trying to prepare a pull request to fix this.

@mcfedr I tried several versions of CocoaPods and RestKit. I ended up going back to CocoaPods 0.38.1.
My scenario is that we want to enable use_frameworks! since we want to start using Swift pods. I could use either CocoaPods 0.38.1 or 0.39. The 1.0.0.beta.x builds are just too buggy right now.

@mcfedr I tried your relative branch with both CocoaPods 0.38.1 and 0.39.0 and it didn't work - I get different kinds of include not found errors.

@falkobuttler the name no_frameworks refers to how the internal headers are found. I also use it with use_frameworks!.
The relative branch works with 1.0 but I haven't yet managed to make a single version that works with both

@mcfedr While I now got the no_frameworks version to compile and to use it within my application target, I can't use RestKit in any other pods.
My scenario:

App target
Shared library using RestKit
RestKit a dependency of above shared library

I agree that this issue should be re-opened, as some build errors are still happening.
@mcfedr I gave a try to your fork, at its relative branch on my example project:
https://github.com/ezescaruli/CocoaPodsExample/tree/mcfedr-relative
and using CocoaPods at its master branch.
I got the same as you: it works, except for SystemConfiguration not being found on AFHTTPClient.h when building the RestKit framework. Tried importing it on my Project prefix header, as https://github.com/AFNetworking/AFNetworking/issues/577 says, but no luck.
It's weird that AFNetworking's prefix header includes it:
https://github.com/ezescaruli/CocoaPodsExample/blob/mcfedr-relative/Pods/Target Support Files/AFNetworking/AFNetworking-prefix.pch#L8
But for some reason, the RestKit framework is not including that header.

Has anyone figured this out?  This is a big problem.  I have a "normal project".  Include RestKit as a dependency, try to implement RKEntityMapping as a class method in a category on a NSManagedObject subclass.  First file in the list to compile.  Fails.

The workaround I mentioned above still woks for me. However, I don't use the frameworks variant..

@tengelmeier your line of code: if target.name == "Pods-Foo" or target.name == "Pods-Bar" made me think it's not just a simple copy-paste solution... what should that be?

https://github.com/RestKit/RestKit/pull/2397 solves this problem by changing import paths.

@jlampa Looks like your PR got closed without being merged. Did you try using RestKit within another Pod module?

No - it' still open. Though the Travis check did fail.

What's the status here? Is this resolved? I see this issue is closed although many are still reporting issues. I cannot compile using RestKit 2.6 & use_frameworks!.
Tried with Cocoapods .39 and 1.0.0.beta.5...

@mcfedr Does your workaround still work? Im having issues getting it running with the post_install configuration.

@mcfedr attempting to get it to run with https://github.com/RestKit/RestKit/compare/development...mcfedr:no-frameworks but have no luck. Tried both with and without the post_install instructions in the podfile but still no luck. am i missing something?

@waltermvp I am actually coming back to this again this afternoon, I think my 'fix' probably still has some issues.

@mcfedr thanks for the quick reply, been struggling with this the past week. My project  is now "blocked" due to this. Let me know if I can help in any way when you do work on this, thanks!

@waltermvp I am successfully building using no-frameworks branch using cocoapods 0.39. Using cocoapods 1-beta there are problems that are linked to AFNetworking as well.

@mcfedr let me try that again and let you know

Tell me what errors you have, I dont have any post-install hooks so I cannot test that.

Ok just gave it works. Had some errors but those were related to using older AFNetworking API . I commented out the offending reachability code and it compiles!! thank you very much, now all i have to do is replace the reachability code with a separate API.

@mcfedr just realized that the errors i had were caused by not having a definition for _SYSTEMCONFIGURATION_H. I have it imported in my PCH file and its also a linked framework for the target. Any ideas how to turn it on? FYI its a swift/obj mixed target

I have the same problems, cannot seem to find a way around it, I might also make a fork of AFNetworking 1.3 that requires SystemConfiguration.
The problem seems to be since using use_frameworks! each one is built separately, so it has its own PCH file, that means that when AFNetworking was built, it didn't see SystemConfiguration because it didn't require it.
This actually causes everything to fail again with Cocoapods 1, which I am hoping a patch to AFNetworking will fix.

@mcfedr  jsut found this and giving it a try.http://www.jontolof.com/cocoa/cocoapods-and-swift-compiler-warning/
Baiscally adding the imports to the bridging header. Not working at first try but ill keep hacking for a lil

I also tried added to the bridge file, didn't have any luck, as I said, I am fairly sure that each framework is being built completely by itself and so this wont help. The problem with Cocoapods 1 is that RestKit is seeing _SYSTEMCONFIGURATION_H but AFNetworking isnt so RestKit tries to use symbols that are not defined.

@mcfedr makes sense, guess the way forward is to use a separate pod for reachability

ah, wait, both RestKit and AFNetworking add #import <SystemConfiguration/SystemConfiguration.h> to their PCH files in the podspec.

Right so it should work

Fun times, the warning from both sides of the #ifdef

I have made branches of both RestKit and AFNetworking that solve these problems
pod 'RestKit', :git => 'https://github.com/mcfedr/RestKit.git', :branch => 'reachability'
pod 'AFNetworking', :git => 'https://github.com/mcfedr/AFNetworking.git', :branch => 'reachability'

I have just removed the conditions for #ifdef _SYSTEMCONFIGURATION_H and everything works just fine.

Opened a pull request to AFNetworking for this https://github.com/AFNetworking/AFNetworking/pull/3400

hi @mcfedr, i have installed your version and seems to work. Is your version going to be patched on the official release of Restkit 0.26.0? Thanks

Well AFNetworking have responded and said they won't do a patch release for 1.x
RestKit hasn't made any comment on my pull request.
So for the moment I am sticking to my branches.

From rest kit pod spec ln 19-24:
Add Core Data to the PCH if the Core Data subspec is imported. This enables conditional compilation to kick in.
s.prefix_header_contents = <<-EOS
#if __has_include(<RestKit/CoreData.h>)
#import <CoreData/CoreData.h>
#endif
EOS
I've always done like you suggested and commented the ifdefs out to make this work but wouldn't this work for sysconfig conditionals in AFNetworking?
Add SystemConfiguration to the PCH if SystemConfiguration is imported. This enables conditional compilation to kick in.
s.prefix_header_contents = <<-EOS
#if __has_include(<SystemConfiguration/SystemConfiguration.h>)
#import <SystemConfiguration/SystemConfiguration.h>
#endif
EOS

I think the problems start because with use_frameworks there is no longer a single shared PCH file

What is with the plans to upgrade RestKit to use AFNetworking 3.x? The first step to make it work using frameworks but the work doesn't really stop there...

Curious about the answer to @falkobuttler, The AFNetworking dependency has been in the 1.x for ages now....

@mcfedr I think this issue should be marked as "Open"

@jkoehl As far as I am concered its certainly not closed

None of the solutions seems to work for me. I'm using use_frameworks!, cocoapods 0.39.0, and RestKit 0.26.0. It's frustrating because I need to use a swift pod and cannot get rid of RestKit easily because it is a big project. @mcfedr your no_frameworks branch compiles but when I try to run the app it crashes inside RestKit, could I be doing something wrong?

@sarpsolakoglu Maybe you can give more details of the crash

@mcfedr It crashes on line 131 of RKRequestOperation.m with EXC_BAD_ACCESS. Maybe this is because of some other changes made on the development branch.
- (void)objectRequestOperationDidStart:(NSNotification *)notification
{
    RKObjectRequestOperation *objectRequestOperation = [notification object];

    //crashes here because objectRequestOperation is nil
    objc_setAssociatedObject(objectRequestOperation, RKOperationStartDate, [NSDate date], OBJC_ASSOCIATION_RETAIN_NONATOMIC);

    NSURLRequest *request = objectRequestOperation.HTTPRequestOperation.request;
    RKLogInfo(@"%@ '%@'", request.HTTPMethod, request.URL.absoluteString);
    RKLogDebug(@"request.headers=%@", request.allHTTPHeaderFields);
    if (request.HTTPBody && RKLogIsTrace()) {
        RKLogTrace(@"request.body=%@", RKLogTruncateString([[NSString alloc] initWithData:request.HTTPBody encoding:NSUTF8StringEncoding]));
    }
}

For what it's worth, @mcfedr's solution above worked great for me when it comes to this issue.  I was able to compile and all of my tests ran successfully.  Thank you.

@mcfedr's solution works – can we just merge it and cut a new release? A lot of people has been having this problem and it's been a problem for 6 months now.

Sorry, I never saw that PR come in! It must've happened while I was on vacation

CocoaPods 1.0 is out and it seems dev or master branch still don't support it.

@falkobuttler no one has made a PR adding support yet

@segiddins can you give a summary of what still needs to be fixed for RestKit to compile with CocoaPods 1.0 and use_frameworks!?
Trying to figure out where to begin helping out with a patch, but there is so much outdated information in this issue thread that I'm not sure what still applies to 0.26.0 and CocoaPods 1.0 stable.

@erikackermann ¯_(ツ)_/¯ I don't know, I haven't actually used RestKit in > 2 years, I've just been doing my best to merge PRs

fyi @segiddins @erikackermann: without use_frameworks! the workaround from @tengelmeier still worked for me yesterday (thanks btw!!!). workaround meaning:
post_install do |installer|
      installer.pods_project.targets.each do |target|
       if target.name == "Pods-Foo" or target.name == "Pods-Bar"
                puts "Updating #{target.name} HEADER_SEARCH_PATHS"
                target.build_configurations.each do |config|
                    xcconfig_path = config.base_configuration_reference.real_path
                xcconfig = File.read(xcconfig_path)
                    new_xcconfig = xcconfig.sub('HEADER_SEARCH_PATHS = $(inherited)', 'HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public/RestKit/CoreData" "${PODS_ROOT}/Headers/Public/RestKit/Network"  "${PODS_ROOT}/Headers/Public/RestKit/ObjectMapping" "${PODS_ROOT}/Headers/Public/RestKit/Support"')
                    File.open(xcconfig_path, "w") { |file| file << new_xcconfig }
                end
            end
      end
    end

My fork, https://github.com/mcfedr/RestKit/tree/pods1 works with cocoapods v1.
pod 'RestKit', :git => 'https://github.com/mcfedr/RestKit', :branch => 'pods1'

@mcfedr do you want to submit a PR from your pods1 branch -> master on the main fork?  Is there any reason this isn't ready for release?

@mcfedr I am using your pods branch, and this AFNetworking dependency:
pod 'AFNetworking', :git => 'https://github.com/mcfedr/AFNetworking.git', :branch => 'reachability'

But I get 'RKValueTransformers/RKValueTransformers.h' file not found on L21 in ObjectMapping.h.  Are you also explicitly including RKValueTransformers as a dependency?

@erichedstrom No its not in my pod file. I did have to clean everything, including the derived data after updating to cocoapods 1. otherwise I have the same setup as you.

@mcfedr I am not able to get this to compile with your branch (installing 0.26.0 release) and cocoapods 1.0.

@erikackermann It works for me with RestKit pods1 branch + AFNetworking reachability branch. Before that, with RestKit reachability branch I was getting 'RestKit/RKEntityMapping.h' file not found error. Thank you @mcfedr 😉

It seems to me that the RestKit development branch is ok, but there's an issue with AFNetworking Reachability.
@mcfedr solution removes the defines from AFNetworking literally not constraining that enum anymore.
I have found out that
#if __IPHONE_OS_VERSION_MIN_REQUIRED
  #import <SystemConfiguration/SystemConfiguration.h>
  #import <MobileCoreServices/MobileCoreServices.h>
  #import <Security/Security.h>
#else
  #import <SystemConfiguration/SystemConfiguration.h>
  #import <CoreServices/CoreServices.h>
  #import <Security/Security.h>
#endif

it's correctly present in the AFNetworking-prefix.pch file as it should, but for some reason (using frameworks) the prefix file is ignored.
If we try add the above to the umbrella header AFNetworking-umbrella.h, it magically compiles.
Perhaps cocoapods when generating the umbrella header should include the content of the prefix file? @segiddins

@valeriomazzeo the right solution is to move away from prefix headers entirely

@segiddins what about existing pods compatibility? I think somehow we should ensure it's possible to install RestKit with Cocoapods 1.0

@valeriomazzeo My understand is how thats it because of how the frameworks are built as separate bundles of code, they dont see each others prefix headers so that kind of conditional compilation does work.

@mcfedr I agree and that's how it should work. This code though:
#if __IPHONE_OS_VERSION_MIN_REQUIRED
  #import <SystemConfiguration/SystemConfiguration.h>
  #import <MobileCoreServices/MobileCoreServices.h>
  #import <Security/Security.h>
#else
  #import <SystemConfiguration/SystemConfiguration.h>
  #import <CoreServices/CoreServices.h>
  #import <Security/Security.h>
#endif

It's inside the AFNetworking prefix header generated by cocoapods, though, so in theory is part of AFNetworking not of RestKit.

@valeriomazzeo the prefix is used when it builds the framework AFNetworking, but its not visible when you import the headers from the built framework. The binary has the functions for Reachability, you can see them if you inspect the binary file.
But the header files in the .framework don't include the prefix, and your prefix isnt added to them. So the headers don't skip Reachability.
The errors/warnings are confusing because the same files are compiled in different contexts

correct, that's why without modifying any file either for RestKit or AFNetworking, adding those in the umbrella header fixes it, but cocoapods doesn't do it.

Surely for us to change the umbrella file for AFNetworking that would also require a fork? Or does adding to RestKit fix the AFNetworking headers?

I think the easier thing to do at the moment it would be to add a cocoapods post install script to the pod file that modifies the umbrella header when installing restkit.
This way we don't depend from external branches / fork and we have a full working installation hoping that we either remove the whole AFNetworking dependency one day, or cocoapods fix it somehow.
I have created an issue: https://github.com/CocoaPods/CocoaPods/issues/5390

I use cocoapods 1.0.0 + ReskKit 0.26 + use_frameworks!
Dont work, When this issue will be fixed?

If anyone is having problems with RestKit 0.26.0 and Cocoapods 1.0.1, hopefully this will help!
This solution worked at least on 2016-06-03, but since it uses specific git branches maybe these will be merged, so if this does not work for you please check if this git branches have been merged/moved/deleted.
Clean up before everything
Quit Xcode
rm -rf Pods
rm -rf MyApp.xcworkspace
rm -rf ~/Library/Caches/CocoaPods
rm -rf ~/Library/Developer/Xcode/DerivedData

Use mcfedr's RestKit fork
Must be used together with "reachablility" branch of AFNetworking
pod 'AFNetworking', :git => 'https://github.com/mcfedr/AFNetworking.git', :branch => 'reachability'
pod 'RestKit', :git => 'https://github.com/mcfedr/RestKit.git', :branch => 'pods1'

Use module import syntax in Bridging Header
@import RestKit;

Now it should work!

@Sajjon thanks for putting all of this together in one comment.  Your steps worked for me.  Now let's get this merged into the main fork!

What needs to happen for this to get this released?
I'm happy to do some work on it over the weekend if that helps.
--
Pozdrawiam,
JL

Please read my post above. Not sure what's @segiddins' idea about this.

Why is this closed? Is this being tracked elsewhere? @Sajjon Seems to have a solution that can be absorbed and released to the public so we don't have to use a fork. I understand this may require coordination with AFNetworking team. Just curious as RestKit is used by so many and everyone has been dealing with this issue for some time now. Thank you all for you efforts to resolve. :)

RESTKit is great framework, I use it mostly, I m desperately waiting for this issue to be fixed. How long will it take to merge fork into RESTKit ?

has anyone tried what I mentioned? https://github.com/RestKit/RestKit/issues/2356#issuecomment-221093537
it's a very easy fix and it should work until we remove the AFNetworking dependency.

@Sajjon can you elaborate on "Use module import syntax in Bridging Header"?
I'm not sure where this line should go:
@import RestKit;

@kraftydevil are you using Swift?
If you are, you have to import RestKit in you Bridging header, but usually this is done using:
#import <RestKit/RestKit....h>

You should use **@**import, notice "@"

@Sajjon - Not using Swift so maybe that's what's throwing me off. I noticed talk of Bridging Headers when referencing Objective-C code, but I wasn't sure if Bridging Headers were unique to Swift.
Sounds like I can ignore it since my project isn't using Swift at all.

@kraftydevil yeah ignore that step then :)
Is it working?

I got a different, unrelated, error now so I'd say, yes :)

@Sajjon I had this in the .pch for my tests target:
#import <RestKit/Testing.h>

and <RestKit/RestKit.h> in my main target's precompile header.  What should I do to fix this import in my test target?

@erikackermann Is this a ObjC project? Have you tried changing to Module import syntax in the .pch file?

@kraftydevil what's the new error you got? did you manage to solve that? :)

@Sajjon yes, I switched to @import RestKit; in my main target's .pch.  But the testing target's .pch had #import <RestKit/Testing.h>.
I can't figure out a way to include the Testing.h header when importing RestKit as a module for my unit test target.  Additionally, when I do @import RestKit;, I get duplicate symbols error.

@Sajjon - the error I eventually solved was unrelated to our topics but thanks for asking.

@erikackermann hmm tricky question, have you tried just:
@import Testing;

? 😬

See https://github.com/RestKit/RestKit/pull/2434

Hi @Sajjon
I am fairly new to xcode and I am taking over an objective c project from a few developers. I am trying to follow your documentation, but when I run the github instructions I get "No such file or directory". I am originally getting the 'RKObjectMapping.h file not found'. What am I doing wrong?! Many thanks in advance.

@carlosriver24 are you using Xcode 7 or 8? Which pods version? I have only tested pods 1.0.1 and with Xcode 7.3 something.

RestKit 0.27.0 is compatible with Cocoapods 1.0.1.
Please refer to #2434

@Sajjon I am using Xcode 7.3, but not sure how to check the version of RestKit I have. Any thoughts?

Yes try 0.27 then hopefully everything will work out :)

Then you don't need my solution as valeriomazzeo wrote

So can we !use_frameworks for RestKit now?

@nezhyborets yes, please refer to #2434

Thanks, all! I just needed to upgrade.


Support "latest-1" (and maybe -2?) browser version

We already have support for the latest version of a browser.
Some folks have been asking for a long time for n-1 or n-x version support and perhaps we can provide it while waiting for SauceLabs to implement it.

Love this idea. This is a cool way to have a sweeping window of tiers without having to maintain any specific versioning at all.

SauceLabs now supports this natively: http://sauceio.com/index.php/2016/03/new-browser-version-shortcuts
We can also unwind https://github.com/TestArmada/guacamole/pull/7 and just delegate to the native supported version.


Fixed 8n-1 issue, added tests

I'm using your library for my work, where I need to send USSD codes. Some of devices require AT+CUSD command to have the USSD code encoded with 7-bit PDU, so this is where I use your project. It looks like this one:
AT+CUSD=1,"AA58ACA6B28D1A",15\r
In simple words, I use GSM.encode() to encode my USSD code, i put it into AT command above, then I get response encoded with PDU which I decode obviously with GSM.decode()
I had issue with sending command *115*5#, because I wasn't getting any response from GSM modems. It was strange, because all the other commands encoded with your library were all right.
After some search I found out that PDU algorithm requires special treatment for strings 8n-1 chars long (n=1,2,3...). In general, they require to be padded with  char before you start encoding. More info you can find in specification, on page 17. In simple words, command *115*5# was encoded wrong because it was (8*1-1=7) chars long.
You can notice issue when you try to decode and encode the same string, like in this examples:
>>> from smspdu.codecs import GSM
>>> GSM.decode(GSM.encode('1234567'))
'1234567@'
>>> GSM.decode(GSM.encode('0123456789ABCDE'))
'0123456789ABCDE@'

All the tests strings have this thing in common: if you add 1 to their actual length, you'll get number dividable by 8.
You can compare results from your library with SMSTools3 PDU Converter. You can put your string to encode into Text field, then you will see encoded string in USSD Entry/Display field. Then you can convert it back with the appropriate Convert> button. When you press it, you'll see decoded string with annotation (Had padding which is removed). Results from function GSM.encode are almost every time equal to these generated at online converter, with except of these specific-length ones. For example:
>>> GSM.encode('*115*5#')
'AA58ACA6AA8D00'
             ||
-AA58ACA6B28D1A- <-- this one was encoded at SMSTools3 PDU Converter

When I put latter encoded USSD code, my GSM modem process the command correctly. I'd like to say that I didn't create pull request only because of my specific hardware. I suppose that there can be more devices which works with the specification I linked above. For this reason one day somebody could open an issue with the same problem that I had. I hope my solution would help those people.

Hi @kurzacz ,
Thank you for spotting this issue!
I believe we can safely use \r as padding character instead of @ when encoding 2n-1 characters.
However, I'm not so sure about the next steps for a fix.
First issue
How do we handle the case when you really need to send a  as 8th character? The specification suggests to append another .
Second issue
Also, I wonder if the implementation for SMS shouldn't be different: according to the GSM 03.40 specification, the content length is specified in the TP-UDL field (page 52), this is why this padding issue is not happening when sending and receiving SMS messages.
The excess padding character is simply stripped based on content length.
Do you believe you can make changes to take into account these two issues?

Also, I believe the“ 2n-1 length test” should be on the chars variable, which is different from the length of data, in case of extended alphabet usage.

Hello, thank you for your answer. It's good to see you still take care of that project :-)
I will need a bit more time to analyze your questions and code. I'm not used to Python's one-liners, but I'm gonna take a closer look at your solutions. It's my first activity on Github, so I don't know if it's okay to post that kind of information in main thread, but I just wanted to say I've read your answer and don't neglect it :-)

Hello,
Well, after some time spent on your questions, I suppose that maybe my solution fix just the small issue with USSD codes, but isn't applicable for the whole your library.

Hi @kurzacz!
Been a long time… Do you think there is something to be done or should we close this issue?
@comic31 could you please take a look at this? Maybe you can think of a solution that works both for the whole library and for the specific needs mentioned by @kurzacz.

@comic31  up

@kurzacz  @Asmox this issue has been fixed now.
In order to take padding into account, you can now use GSM.encode('…', with_padding=True) and GSM.decode('…', strip_padding=True).
Padding is still not used by default for backwards-compatibility and for use cases with full SMS-DELIVER / SMS-SUBMIT PDUs (because the message length is specified, so there is no need for a padding).
Hope that helps!

Thank you very much :-) I don't develop the app I used your lib with anymore. But if only I'm asked by my last employer to patch it, I'll try your updated version for sure.


bug: callback handlers for langchain adapter doesn't work for LLMs without async support

Scenario
Building a simple langchain service with llama.cpp: https://python.langchain.com/docs/integrations/llms/llamacpp
Actual result
Token streaming fails due to the following error:
/usr/local/Caskroom/miniconda/base/envs/llamacpp/lib/python3.11/site-packages/langchain/llms/llamacpp.py:352: RuntimeWarning: coroutine 'AsyncCallbackManagerForLLMRun.on_llm_new_token' was never awaited
  run_manager.on_llm_new_token(
RuntimeWarning: Enable tracemalloc to get the object allocation traceback

Expected result
Lanarky should work for LLMs without async support by langchain.
Acceptance criteria

[ ] add/update callback handlers to work with sync-only LLMs
[ ] test changes with llama.cpp LLM

Contribute

[X] Yes, I can fix this bug and open a PR

temporary solution available here: https://github.com/ajndkr/lanarky/discussions/165


OpenAI response can be longer than Discord's maximum message length

Error prompt:
"write me a business plan for a company called Benders that has massage therapists and card games."
After a long wait, the container crashed, and this was logged:
/usr/src/app/node_modules/@discordjs/rest/dist/index.js:640
      throw new DiscordAPIError(data, "code" in data ? data.code : data.error, status, method, url, requestData);
            ^

DiscordAPIError[50035]: Invalid Form Body
content[BASE_TYPE_MAX_LENGTH]: Must be 2000 or fewer in length.

Potential solution:
If OpenAI response length is over the limit, find a good way to break it up, like splitting the response into a response array on a delimiter like \n\n.
Full puke in next comment.

2023-04-24T15:17:03.540Z - INFO - Startup config (secrets excluded):
2023-04-24T15:17:03.540Z - INFO - BOT_LOG_DEBUG = disabled
2023-04-24T15:17:03.540Z - INFO - BOT_THREAD_MODE = channel
2023-04-24T15:17:03.540Z - INFO - BOT_THREAD_RETAIN_SEC = 600
2023-04-24T15:17:03.540Z - INFO - OPENAI_MAX_RETRIES = 5
2023-04-24T15:17:03.541Z - INFO - OPENAI_PARAM_MAX_TOKENS = 500
2023-04-24T15:17:03.541Z - INFO - OPENAI_PARAM_MODEL = gpt-3.5-turbo
2023-04-24T15:17:03.541Z - INFO - OPENAI_PARAM_SYSTEM_PROMPT = You are a helpful cat that is employed as a chat bot.   When Crowtenzz or Gorgathor talk to you, use a British dialect and slang, like 'm8', 'innit', 'chips', etc.
2023-04-24T15:17:03.541Z - INFO - OPENAI_PARAM_TEMPERATURE = 0.6
2023-04-24T15:17:03.541Z - INFO - Logged in as Ol' Bootsie#1453
2023-04-24T15:17:03.541Z - INFO - discord-bot-ol-bootsie:0.4.24 ready!
/usr/src/app/node_modules/@discordjs/rest/dist/index.js:640
      throw new DiscordAPIError(data, "code" in data ? data.code : data.error, status, method, url, requestData);
            ^

DiscordAPIError[50035]: Invalid Form Body
content[BASE_TYPE_MAX_LENGTH]: Must be 2000 or fewer in length.
    at handleErrors (/usr/src/app/node_modules/@discordjs/rest/dist/index.js:640:13)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async SequentialHandler.runRequest (/usr/src/app/node_modules/@discordjs/rest/dist/index.js:1021:23)
    at async SequentialHandler.queueRequest (/usr/src/app/node_modules/@discordjs/rest/dist/index.js:862:14)
    at async REST.request (/usr/src/app/node_modules/@discordjs/rest/dist/index.js:1387:22)
    at async TextChannel.send (/usr/src/app/node_modules/discord.js/src/structures/interfaces/TextBasedChannel.js:157:15) {
  requestBody: {
    files: [],
    json: {
      content: "Sure, here's a sample business plan for Benders:\n" +
        '\n' +
        'Executive Summary:\n' +
        'Benders is a unique company that combines the relaxation of massage therapy with the fun of card games. Our mission is to provide a comfortable and entertaining atmosphere where customers can unwind and socialize. Our services include professional massage therapy and a variety of card games for all levels of players. We aim to become the go-to destination for people who want to relax and have fun.\n' +
        '\n' +
        'Market Analysis:\n' +
        'The market for massage therapy and card games is growing rapidly. According to the American Massage Therapy Association, the massage industry is worth over $18 billion per year. Additionally, the global card games market is expected to reach $21.5 billion by 2026. Benders aims to tap into this growing market by providing a unique and innovative service.\n' +
        '\n' +
        'Services:\n' +
        'Benders offers a range of massage therapy services, including Swedish, deep tissue, and hot stone massages. Our licensed massage therapists are highly skilled and experienced, ensuring that customers receive the best possible treatment. In addition to massage therapy, we also offer a variety of card games, including poker, blackjack, and bridge. Customers can choose to play with friends or join a game with other customers.\n' +
        '\n' +
        'Marketing Strategy:\n' +
        'Benders will primarily market its services through social media and word of mouth. We will create a strong online presence through Facebook, Instagram, and Twitter, and will use targeted advertising to reach potential customers. We will also offer promotions and discounts to encourage repeat business and referrals.\n' +
        '\n' +
        'Financial Plan:\n' +
        'Benders will require an initial investment of $100,000 to cover start-up costs, including equipment, rent, and marketing expenses. We anticipate that our revenue will come primarily from massage therapy services, with card games providing additional income. We project that our revenue will reach $500,000 within the first year, with a net profit of $100,000.\n' +
        '\n' +
        'Conclusion:\n' +
        'Benders is a unique and innovative company that combines the relaxation of massage therapy with the fun of card games. Our mission is to provide a comfortable and entertaining atmosphere where customers can unwind and socialize. With a growing market and a strong marketing strategy, we are confident that Benders will become the go-to destination for people who want to relax and have fun.',
      tts: false,
      nonce: undefined,
      embeds: undefined,
      components: undefined,
      username: undefined,
      avatar_url: undefined,
      allowed_mentions: undefined,
      flags: undefined,
      message_reference: undefined,
      attachments: undefined,
      sticker_ids: undefined,
      thread_name: undefined
    }
  },
  rawError: {
    code: 50035,
    errors: {
      content: {
        _errors: [
          {
            code: 'BASE_TYPE_MAX_LENGTH',
            message: 'Must be 2000 or fewer in length.'
          }
        ]
      }
    },
    message: 'Invalid Form Body'
  },
  code: 50035,
  status: 400,
  method: 'POST',
  url: 'https://discord.com/api/v10/channels/935008760022335488/messages'
}

Node.js v18.16.0

I ran into this again with a long response that didn't use \n\n to break paragraphs, but a single \n. Reopening to address.
2023-05-24T21:23:45.493Z - ERROR - DiscordAPIError[50035]: Invalid Form Body
content[BASE_TYPE_MAX_LENGTH]: Must be 2000 or fewer in length.
    at handleErrors (/usr/src/app/node_modules/@discordjs/rest/dist/index.js:640:13)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async SequentialHandler.runRequest (/usr/src/app/node_modules/@discordjs/rest/dist/index.js:1021:23)
    at async SequentialHandler.queueRequest (/usr/src/app/node_modules/@discordjs/rest/dist/index.js:862:14)
    at async REST.request (/usr/src/app/node_modules/@discordjs/rest/dist/index.js:1387:22)
    at async DMChannel.send (/usr/src/app/node_modules/discord.js/src/structures/interfaces/TextBasedChannel.js:157:15)
    at async /usr/src/app/app.js:83:11 {
  requestBody: {
    files: [],
    json: {
      content: `Avery's dad in "Avery's Gift" and Ellison's dad in "Chicken of the Sea Is So Wacky--Of Course It Was Created by Kids" are both supportive and encouraging fathers who inspire their children to pursue their passions.\n` +
        `In "Avery's Gift," Avery's dad is a professional composer who encourages Avery to create an original piano piece as a gift for her exceptional teacher, Mrs. Vadakin. He transcribes the piece for her, and note by note, chord by chord, Avery plays her piece repeatedly while he writes out the notes. This evidence shows that Avery's dad recognises her talent and encourages her to pursue her passion. He provides the necessary guidance and support to help her achieve her goal, which is to create an original composition for her teacher. This supports my controlling idea that Avery's dad is a supportive and encouraging father who inspires his daughter to pursue her passion.\n` +
        `Similarly, in "Chicken of the Sea Is So Wacky--Of Course It Was Created by Kids," Ellison's dad, Viet Nguyen, helps his son Ellison with the story of his book, "Chicken of the Sea." He encourages Ellison to tap into the playfulness inside him and the child's capacity to think beyond the conventions that adults have absorbed. He affirms the importance of tapping into the child's imagination and encourages his son to think creatively. This evidence shows that Ellison's dad recognises his son's talent and encourages him to pursue his passion. He provides the necessary guidance and support to help his son achieve his goal, which is to write and illustrate his own book. This supports my controlling idea that Ellison's dad is a supportive and encouraging father who inspires his son to pursue his passion.\n` +
        "Both dads are supportive and encouraging of their children's passions. They recognise their children's talents and provide the necessary guidance and support to help them achieve their goals.  These actions demonstrate the dads' support and encouragement of their children's passions and talents.\n" +
        `In conclusion, the evidence from the selections supports my controlling idea that Avery's dad in "Avery's Gift" and Ellison's dad in "Chicken of the Sea Is So Wacky--Of Course It Was Created by Kids" are both supportive and encouraging fathers who inspire their children to pursue their passions. They recognise their children's talents and provide the necessary guidance`,
      tts: false,
      nonce: undefined,
      embeds: undefined,
      components: undefined,
      username: undefined,
      avatar_url: undefined,
      allowed_mentions: undefined,
      flags: undefined,
      message_reference: undefined,
      attachments: undefined,
      sticker_ids: undefined,
      thread_name: undefined
    }
  },
  rawError: {
    code: 50035,
    errors: {
      content: {
        _errors: [
          {
            code: 'BASE_TYPE_MAX_LENGTH',
            message: 'Must be 2000 or fewer in length.'
          }
        ]
      }
    },
    message: 'Invalid Form Body'
  },
  code: 50035,
  status: 400,
  method: 'POST',
  url: 'https://discord.com/api/v10/channels/1100876908499046531/messages'
}

Tested with a single \n delimiter which works correctly.


TextField can't handle writing in both RTL and LTR

Problem Description
When the app directionality is RTL and writing text that is both RTL and LTR the TextField is going crazy and can't handle spaces and alignments.
I have found out a few things while testing this behaviour:

If I write in a RTL language and the directionality of the app is also RTL, the textfield is working fine. However, if I write in a LTR language and the directionality of the app is RTL - the issue come up.
The issue also persists the other way around - Writing in RTL when the app the directionality of the app is LTR.
Once the issue comes up - the TextField will not go back to the normal behaviour, even if I write in RTL.
If I set maxLines to null in the constructor of the textField, the issue seems to go away.

Flutter doctor -v
[✓] Flutter (Channel master, 1.24.0-4.0.pre.138, on Mac OS X 10.15.7 19H2
    darwin-x64, locale en-IL)
    • Flutter version 1.24.0-4.0.pre.138 at /Users/naamapps/flutter
    • Framework revision 13896b3bd1 (7 hours ago), 2020-10-28 19:43:19 -0700
    • Engine revision 073263e39d
    • Dart version 2.11.0 (build 2.11.0-260.0.dev)
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
• Android SDK at /Users/naamapps/Library/Android/sdk
• Platform android-29, build-tools 29.0.3
• Java binary at: /Applications/Android
Studio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build
1.8.0_242-release-1644-b3-6222593)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 12.1)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 12.1, Build version 12A7403
• CocoaPods version 1.9.1
[✓] Android Studio (version 4.1)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build
1.8.0_242-release-1644-b3-6222593)
[✓] VS Code (version 1.50.1)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.15.1
[✓] Connected device (1 available)
• SM N985F (mobile) • R58N75RG9NJ • android-arm64 • Android 10 (API 29)
• No issues found!

Sample code
Material App widget:
import 'package:flutter/material.dart';
import 'package:test_project/test_widget.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home:
          Directionality(textDirection: TextDirection.rtl, child: TestWidget()),
    );
  }
}

The TextField widget:
import 'package:flutter/material.dart';

class TestWidget extends StatefulWidget {
  TestWidget({Key key}) : super(key: key);

  @override
  _TestWidgetState createState() => _TestWidgetState();
}

class _TestWidgetState extends State<TestWidget> {
  final TextEditingController _textEditingController = TextEditingController();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      resizeToAvoidBottomInset: false,
      body: Center(
        child: Container(
          margin: EdgeInsets.fromLTRB(
            20,
            0,
            20,
            MediaQuery.of(context).viewInsets.bottom,
          ),
          decoration: BoxDecoration(
            borderRadius: BorderRadius.circular(8),
            color: Colors.grey[200],
          ),
          padding: EdgeInsets.only(left: 16, right: 8),
          child: ConstrainedBox(
            constraints: BoxConstraints(minHeight: kToolbarHeight),
            child: Row(
              children: [
                CircleAvatar(
                  radius: 20,
                  backgroundImage: NetworkImage(
                      'https://cdn.pixabay.com/photo/2020/10/01/09/35/bee-5618012_1280.jpg'),
                ),
                Expanded(
                  child: Padding(
                    padding: const EdgeInsets.only(left: 16, right: 8),
                    child: TextField(
                      maxLines: 1, // Set this to null to make the issue go away!
                      textInputAction: TextInputAction.send,
                      keyboardType: TextInputType.text,
                      controller: _textEditingController,
                      decoration: InputDecoration(
                          hintText: 'הגב', border: InputBorder.none),
                    ),
                  ),
                ),
                InkWell(
                  onTap: () {},
                  child: Container(
                    padding:
                        const EdgeInsets.symmetric(vertical: 8, horizontal: 8),
                    child: Text(
                      'שלח',
                      style: TextStyle(color: Colors.blue[300]),
                    ),
                  ),
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }

  @override
  void dispose() {
    _textEditingController.dispose();
    super.dispose();
  }
}

@naamapps Can you elaborate on if I write in a LTR language and the directionality of the app is RTL - the issue come up.

@darshankawar Sorry I forgot to upload the video I recorded for the issue.
Here it is
RTL issue.mp4.zip
Hope it's clearer now

flutter doctor -v
[✓] Flutter (Channel master, 1.24.0-4.0.pre.82, on Mac OS X 10.15.4 19E2269
    darwin-x64, locale en-IN)
    • Flutter version 1.24.0-4.0.pre.82 at
      /Users/dhs/documents/Fluttersdk/flutter
    • Framework revision e5814756a2 (2 days ago), 2020-10-27 01:47:03 -0700
    • Engine revision<PHONE_NUMBER>
    • Dart version 2.11.0 (build 2.11.0-260.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.0)
    • Android SDK at /Users/dhs/Library/Android/sdk
    • Platform android-30, build-tools 30.0.0
    • Java binary at: /Applications/Android
      Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.0.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.0.1, Build version 12A7300
    • CocoaPods version 1.9.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 46.0.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build
      1.8.0_242-release-1644-b3-6222593)

[✓] VS Code (version 1.50.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.15.1

[✓] Connected device (3 available)
    • macOS (desktop)  • macos      • darwin-x64     • Mac OS X 10.15.4 19E2269
      darwin-x64
    • Web Server (web) • web-server • web-javascript • Flutter Tools
    • Chrome (web)     • chrome     • web-javascript • Google Chrome
      86.0.4240.111

• No issues found!

69288_mast.mp4.zip

@darshankawar Although you already put those tags, I'm afraid the video you sent shows a different (and still relevant) bug (the one where you can't delete spaces).
To see the bug I've talked about you need to write in both RTL and LTR languages at same time.
You only have written in English, which does have a bug as well with RTL directionality, bug not the bug I showed in my video.
Please try again, and this time write in Hebrew (or any other RTL language) and English.
Thank you

I'm planning to fix this in https://github.com/flutter/flutter/pull/68166.

Hi @LongCatIsLooong
I was curious to ask if there is any progress on this?
Thank you very much

Ah I thought the problem was _WhitespaceDirectionalityFormatter not being applied but it seems the problem is with _WhitespaceDirectionalityFormatter itself.
@GaryQian could you take a look?

Hey!
Any updates on this?


Added NodeJS 12 support

Coverage remained the same at 99.855% when pulling 90256b9db3a642167e438fb2adb65f22273f5653 on gnought:patch-3 into 144bba912edad3708aa3004ab01374c949ac4684 on dashersw:master.


smart start pos has glitches woth speed portals

I'm not a gd dev, but I know that mega hack also had that issue. It's impossible to fix AFAIK, because of multiple paths that can have different speeds.


Some Demos broken after new cs2 update "Missing CSoundEventPathCornerEntity"

Research

[X] I've already searched and I could not find an existing issue or discussion about this issue.

Description
Hi, it seems we have another error with parsing after the new cs2 update, its an error that dosnt happen often occoured in 4 out of 40 demos.
error is:
CSoundEventPathCornerEntity
from another project i have a stack trace too:
Logs: 27/05/2024 - 21.08.34 - Error at HandleAbove25Demos System.Exception: Attempted to create unknown entity: CSoundEventPathCornerEntity
at DemoFile.DemoParser.<>c__DisplayClass115_0.b__1(EntityContext context)
at DemoFile.DemoParser.OnPacketEntities(CSVCMsg_PacketEntities msg)
at DemoFile.PacketEvents.ParseNetMessage(Int32 msgType, ReadOnlySpan1 buf)    at DemoFile.DemoParser.OnDemoPacket(CDemoPacket msg)    at DemoFile.DemoEvents.ReadDemoCommandCore[T](Action1 callback, MessageParser1 parser, ReadOnlySpan1 buffer, Boolean isCompressed)
at DemoFile.DemoEvents.ReadDemoCommand(EDemoCommands msgType, ReadOnlySpan1 buffer, Boolean isCompressed)    at DemoFile.DemoParser.MoveNextCoreAsync(EDemoCommands msgType, Boolean isCompressed, Int32 size, CancellationToken cancellationToken)    at DemoFile.DemoParser.ReadAllAsync(Stream stream, CancellationToken cancellationToken)    at PowerLigaStats.DemoParsing.DemoHandler.ProcessCS2DemoRewrite(String demoFilePath, Int32 season, String division, DateTime dateTime, Boolean playoff) in C:\Users\Patri\Documents\Kode\Full-stack\PowerLigaStats\PowerLigaStats\DemoParsing\DemoHandler.cs:line 915    at PowerLigaStats.DemoParsing.DemoHandler.ProcessCS2DemoRewrite(String demoFilePath, Int32 season, String division, DateTime dateTime, Boolean playoff) in C:\Users\Patri\Documents\Kode\Full-stack\PowerLigaStats\PowerLigaStats\DemoParsing\DemoHandler.cs:line 1046    at PowerLigaStats.DemoParsing.DemoHandler.ProcessDemoFileAbove24(String demoFilePath, Int32 season, String division, DateTime dateTime, Boolean playoff) in C:\Users\Patri\Documents\Kode\Full-stack\PowerLigaStats\PowerLigaStats\DemoParsing\DemoHandler.cs:line 57    at PowerLigaStats.DemoParsing.DemoManager.HandleDemosByDivision(Int32 season, String division, List1 allResults) in C:\Users\Patri\Documents\Kode\Full-stack\PowerLigaStats\PowerLigaStats\DemoParsing\DemoManager.cs:line 271
at PowerLigaStats.DemoParsing.DemoManager.Start(Int32 season) in C:\Users\Patri\Documents\Kode\Full-stack\PowerLigaStats\PowerLigaStats\DemoParsing\DemoManager.cs:line 720
Code to reproduce
public static class Program
{
    //public static string flashNoWork = "C:\\Users\\xguys\\Desktop\\Flash issues\\crystal_vulture.dem";
    public static string flashWork = "C:\\Users\\xguys\\Desktop\\Demos To test\\661577c94c197423489bd882_0_1716836561580.dem";

    public static async Task Main(string[] args)
    {
        try
        {
            Stopwatch stopwatch3 = new Stopwatch();
            stopwatch3.Start();
            MemoryStream _fileStream;
            byte[] _demoBytes;
            //_demoBytes = File.ReadAllBytes(demoFilePath);
            _demoBytes = await File.ReadAllBytesAsync(flashWork);
            _fileStream = new MemoryStream(_demoBytes);

            Stopwatch stopwatch = new Stopwatch();
            stopwatch.Start();
            var demo = new DemoParser();

            demo.Source1GameEvents.BombExploded += e =>
            {
                Console.WriteLine("Bomb exploded");
            };

            demo.Source1GameEvents.PlayerBlind += e =>
            {
                Console.WriteLine("Player blind");

            };

            demo.Source1GameEvents.TrPlayerFlashbanged += e =>
            {
                Console.WriteLine("Player flashbanged");
            };

            //demo.Source1GameEvents.FlashbangDetonate += e =>
            //{
            //    Console.WriteLine("Flashbang detonate");
            //};

            demo.Source1GameEvents.RoundStart += e =>
            {

                if (!demo.GameRules.HasMatchStarted)
                {
                    //PowerLigaManager.Log("ROund end called but we have an issue, it seems match was not started yet");
                    return;
                }
                Console.WriteLine("Round start called at round ct:" + demo.TeamCounterTerrorist.Score + " and t:" + demo.TeamTerrorist.Score);
                Debug.WriteLine("Round start called at round ct:" + demo.TeamCounterTerrorist.Score + " and t:" + demo.TeamTerrorist.Score);
            };

            demo.Source1GameEvents.CsWinPanelMatch += e =>
            {
                Console.WriteLine("WIn match has ended");
            };
            await demo.ReadAllAsync(_fileStream);
            stopwatch3.Stop();

            stopwatch.Stop();
            Console.WriteLine("Time elapsed after file data: {0}", stopwatch.Elapsed);
            Console.WriteLine("Time elapsed: {0}", stopwatch3.Elapsed);
            Console.WriteLine("\nFinished!");
        } catch (Exception e)
        {
            Console.WriteLine("Exception: " + e.Message.ToString());
        }

        Console.ReadKey();
    }

Affected demos
https://drive.google.com/file/d/1ks0sX_5EVK-Cy7BT66bpXorhmJUrVAqp/view?usp=sharing

Thanks for reporting. The fix will be released as v0.15.1


Pandas FutureWarning

Using the latest version (8ebc14) with pandas>=0.24.0 in python 2.7 the following FutureWarning shows up:
~/.virtualenvs/aiidapy/local/lib/python2.7/site-packages/pyiast/isotherms.py:434: FutureWarning: Sorting because non-concatenation axis is not aligned. A future version
of pandas will change to not sort by default.

To accept the future behavior, pass 'sort=False'.

To retain the current behavior and silence the warning, pass 'sort=True'.

  }, index=[0]), df

Can you please update to solve the issue?
Thanks!

I think this is b/c you have an irrelevant column in your dataframe you're passing in:
import pandas as pd

df1 = pd.DataFrame()
df1["P"] = [1.0, 2.0]
df1["n"] = [3.0, 4.0]
#  df1["irrelevant column"] = [30.0, 40.0]

df2 = pd.DataFrame()
df2["P"] = [3.0, 4.0]
df2["n"] = [5.0, 6.0]

df = pd.concat([df1, df2]) # gives warning only if line above is not commented out

It wants us to pass sort=True or sort=False, which determines whether or not to sort the column names when joining (an outer join). I don't think it matters. Agree @ltalirz?
Another option is to do instead df = pd.concat([df1, df2], join="inner") which will destroy the extraneous columns you are providing when joining the zero pressure point. (extraneous = columns not pertaining to pressure_key or loading_key)

It's probably not important - as the warning says, simply pass sort=True and to retain the current behavior and silence the warning.
@danieleongari set up a PR?