{"url":"https://api.github.com/gists/3892919","forks_url":"https://api.github.com/gists/3892919/forks","commits_url":"https://api.github.com/gists/3892919/commits","id":"3892919","node_id":"MDQ6R2lzdDM4OTI5MTk=","git_pull_url":"https://gist.github.com/3892919.git","git_push_url":"https://gist.github.com/3892919.git","html_url":"https://gist.github.com/mbostock/3892919","files":{".block":{"filename":".block","type":"text/plain","language":null,"raw_url":"https://gist.githubusercontent.com/mbostock/3892919/raw/703d310b399098a243a76a50bc209167e924cfd2/.block","size":17,"truncated":false,"content":"license: gpl-3.0\n","encoding":"utf-8"},"README.md":{"filename":"README.md","type":"text/markdown","language":"Markdown","raw_url":"https://gist.githubusercontent.com/mbostock/3892919/raw/7d2e56b58dfeaad3c25778f22806c9786c6b2ed4/README.md","size":286,"truncated":false,"content":"An example of [d3.behavior.zoom](https://github.com/mbostock/d3/wiki/Zoom-Behavior) applied using *x*- and *y*-[scales](https://github.com/mbostock/d3/wiki/Quantitative-Scales). This example can be extended with [programmatic control](/mbostock/3892928) to animate between preset views.","encoding":"utf-8"},"index.html":{"filename":"index.html","type":"text/html","language":"HTML","raw_url":"https://gist.githubusercontent.com/mbostock/3892919/raw/11b25259e07e5fcc725e2044d1e757767d337e6c/index.html","size":1539,"truncated":false,"content":"<!DOCTYPE html>\n<meta charset=\"utf-8\">\n<title>Zoom + Pan</title>\n<style>\n\nsvg {\n  font: 10px sans-serif;\n  shape-rendering: crispEdges;\n}\n\nrect {\n  fill: #ddd;\n}\n\n.axis path,\n.axis line {\n  fill: none;\n  stroke: #fff;\n}\n\n</style>\n<body>\n<script src=\"//d3js.org/d3.v3.min.js\"></script>\n<script>\n\nvar margin = {top: 20, right: 20, bottom: 30, left: 40},\n    width = 960 - margin.left - margin.right,\n    height = 500 - margin.top - margin.bottom;\n\nvar x = d3.scale.linear()\n    .domain([-width / 2, width / 2])\n    .range([0, width]);\n\nvar y = d3.scale.linear()\n    .domain([-height / 2, height / 2])\n    .range([height, 0]);\n\nvar xAxis = d3.svg.axis()\n    .scale(x)\n    .orient(\"bottom\")\n    .tickSize(-height);\n\nvar yAxis = d3.svg.axis()\n    .scale(y)\n    .orient(\"left\")\n    .ticks(5)\n    .tickSize(-width);\n\nvar zoom = d3.behavior.zoom()\n    .x(x)\n    .y(y)\n    .scaleExtent([1, 32])\n    .on(\"zoom\", zoomed);\n\nvar svg = d3.select(\"body\").append(\"svg\")\n    .attr(\"width\", width + margin.left + margin.right)\n    .attr(\"height\", height + margin.top + margin.bottom)\n  .append(\"g\")\n    .attr(\"transform\", \"translate(\" + margin.left + \",\" + margin.top + \")\")\n    .call(zoom);\n\nsvg.append(\"rect\")\n    .attr(\"width\", width)\n    .attr(\"height\", height);\n\nsvg.append(\"g\")\n    .attr(\"class\", \"x axis\")\n    .attr(\"transform\", \"translate(0,\" + height + \")\")\n    .call(xAxis);\n\nsvg.append(\"g\")\n    .attr(\"class\", \"y axis\")\n    .call(yAxis);\n\nfunction zoomed() {\n  svg.select(\".x.axis\").call(xAxis);\n  svg.select(\".y.axis\").call(yAxis);\n}\n\n</script>\n","encoding":"utf-8"},"thumbnail.png":{"filename":"thumbnail.png","type":"image/png","language":null,"raw_url":"https://gist.githubusercontent.com/mbostock/3892919/raw/6b6f9226791dba2b85ba6c370581e729d9f2ab46/thumbnail.png","size":5067,"truncated":false,"content":"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\nT4sci3qL3imMKSFTCqY0Tnk1VX9q/NR1U9umfrW0s0yz3G15z0rJKsiqwKrZ\n6o21qTXbusr6ug3Vxs9miU2TzWtbM1uu7Tbb23Z0u+l2K+xa7b7YO9iL7A/Y\n9zvoOyQ4bHG45ajsGOZY6njRieDk5bTE6YTTR2d752znw85/uFi4pLrsdXk+\nzWgad9ruaY9ddV1Zrjtde9yYbgluO9x63HXcWe7V7o889Dw4Hns8nnmaeKZ4\n7vN85WXpJfI65vXe29l7kXeLD+bj71Ps0+mr5BvlW+n70E/XL9mv3m/Q385/\noX9LACEgOGBdwK1AzUB2YF3gYJBD0KKgc8GU4IjgyuBHIaYhopDm6ej0oOnr\np9+fYTBDMKMxFIQGhq4PfRBmFJYZ9stM4sywmVUzn4ZbheeHt0XQI+ZF7I14\nF+kVuSbyXpRxlDiqNVo+enZ0XfT7GJ+Yspie2Kmxi2Ivx6nH8eOa4knx0fF7\n4odm+c7aOKtvtt3sotk35xjNyZ3TPld9btrck/Pk57HmHUkgJMQk7E34zApl\nVbOGEgMTtyQOsr3Zm9gvOR6cDZx+riu3jPssyTWpLOl5smvy+uR+njuvnDfA\n9+ZX8l+nBKRsT3mfGppakzqSFpN2MF0mPSH9uEBJkCo4l6GVkZvRLTQTFgl7\nMp0zN2YOioJFe7KQrDlZTdnK8JLbITYW/yDuzXHLqcr5MD96/pFcxVxBbscC\n0wWrFjzL88v7aSG+kL2wNV8nf1l+7yLPRTsXI4sTF7cu0VtSuKRvqf/S2mXk\nZanLfi2wLCgr+HN5zPLmQs3CpYWPf/D/ob6IViQqurXCZcX2lfhK/srOVTar\nNq/6WswpvlRiWVJe8rmUXXrpR6sfK34cWZ20unON/Zpta4lrBWtvrnNfV1um\nWJZX9nj99PUNG5gbijf8uXHexvZy2/Ltm8ibxJt6KkIqmjbrb167+XMlr/JG\nlVfVwS0aW1Zteb+Vs/XqNo9tB7Zrbi/Z/mkHf8ftnf47G6oNq8t3EXfl7Hq6\nO3p320+OP9XtUd9TsudLjaCmpza89lydQ13dXo29a+rRenF9/77Z+7r2++xv\nOmBxYOdBxsGSQ+CQ+NCLnxN+vnk4+HDrEccjB44aHN1yjH6suAFpWNAw2Mhr\n7GmKa+o+HnS8tdml+dgvU36pOaFzouqkysk1p8inCk+NnM47PdQibBk4k3zm\nceu81ntnY89ePzfzXOf54PMXL/hdONvm2Xb6ouvFE+3O7ccvOV5qvGx/uaHD\nruPYr3a/Huu072y44nClqcupq7l7Wvepq+5Xz1zzuXbheuD1yzdm3Oi+GXXz\n9q3Zt3puc24/v5N25/XdnLvD95beJ9wvfqDwoPyhxsPq30x+O9hj33Oy16e3\n41HEo3uP2Y9fPsl68rmv8Cn1afkz7Wd1z62fn+j36+96MetF30vhy+GBot8V\nf9/yyvjV0T88/ugYjB3sey16PfKm9K3a25o/bf9sHQobevgu/d3w++IPah9q\nPzp+bPsU8+nZ8PzPpM8VX0y+NH8N/np/JH1kRMgSsaRXAQxWNCkJgDc1MG+J\ng3eHLgDItNHcSFqQ0XxOSuCfeDR/khZ7AGo8AIhaCkAIvKNsg9UAMgU+Jdf8\nSA+A2thM1LGSlWRjPWqLAjMAwoeRkbeaAJCaAfgiGhkZ3joy8gXmeNgdAFoy\nR3MySSHCe/wOmoTaO0uXfp8b/Qd5SGBft0bY6gAAAAZiS0dEAP8A/wD/oL2n\nkwAAAAlvRkZzAAAAJQAAAD0A56Nq9QAAAAlwSFlzAAAWJQAAFiUBSVIk8AAA\nB2dJREFUeNrt3e1vE9kZBfBz78zYTmKvSTDBbIwUhQ15qTahH5fuP1+pVdUu\nlXbLy5JCwaGQpomdF9tje8Yz9/YDJAIZqJ3ewc+U85MQUggng/HBnhvpoKy1\nFkQkip71BRDROBaTSCAWk0ggf5JPMsYgSZKJQ5VSyPLWlfnM/3/KD4IASqkP\nPjZRMYfDIY6Pjyf+QoVCAaPRKLM/fLFYRBzHmeQrpVAoFBBFUSbXrpRCEASI\n45j5M8jXWsP3fTH5WmvU63UEQfDBxycqprUWaZpOfHHGGKRpmlkx0zTNLF8p\ndZmfBaUUPM9j/idorS+fP1mw1l7+HUvJ/9jzmPeYRAKxmEQCjb2V7XU7aLVP\nobWC53vw/QLKC/Ozvk6ir8pYMQ8PDvD7P/wRpbk5RFGExkoDP9y/j0KhMHHo\nxY1sVveYQRBkeqqWZf7F4QbzZ5OvtYbneZlkXyVfaz12Igt8pJja97B+dwOB\n5wNKoVyuQOvpbmazPJwB3h4uGWMyO/zJ8vBBKQWtNfNnlC/t8OdTz+GxYq7d\nWcfanXXAWuBdk8Mw5Kmsw/w8n5ryVNZ9/nSnsh95eSWiL4OnskQCsZhEArGY\nRAKxmEQCsZhEArGYRAKxmEQCsZhEArGYRAKxmEQCsZhEArGYRAKxmEQCsZhE\nArGYRAKxmEQCsZhEArGYRAKxmEQCjY1xRcMhemGIwWAApRT8gLuyRF/aWDE7\nZyf46cFf0R9G6HS6aDS4K+tS3ndZ856f213Z6uIStre3cXjUhrWWu7IZ5Od5\nlzXv+dLmKyfelS0US1hdu4PVtTUA3JXNIj/Pu6/clXWfP+X/9sVdWaJZ4aks\nkUAsJpFALCaRQCwmkUAsJpFALCaRQCwmkUAsJpFALCaRQCwmkUAsJpFALCaR\nQCwmkUAsJpFALCaRQCwmkUAsJpFALCaRQCwmkUD+537x9KSNOElRXliY9XUS\nfVU+W8zHj5+gF/bxux9/5K6sI3nfZc17fm53Zd9Xr9cRDmLuyjrOz/Mua97z\npc1XTrwr+77v1tcBcFfWdX6ed1+5K+s+f8pdWSKaFRaTSCAWk0ggFpNIIBaT\nSCAWk0ggFpNIIBaTSCAWk0ggFpNIIBaTSCAWk0ggFpNIIBaTSCAWk0ggFpNI\nIBaTSCAWk0ggFpNIIBaTSKCxMa5oOEQvDDEYDKCUgh8UUF6Yn/V1En1VPihm\nFEX4x/NnaDb30R8O0el00Wg08MP9+9yVdSTvu6x5z8/lrqzv+1hZaWB+fh6H\nR21Ya1EuV7gr6zg/z7usec+XNl850a6s53moLi6iuriI1bU1AG+bzF1Zt/l5\n3n3lrqz7/Cl3ZRWIaDZ4KkskEItJJBCLSSQQi0kkEItJJBCLSSQQi0kkEItJ\nJBCLSSQQi0kkEItJJBCLSSQQi0kkEItJJBCLSSQQi0kkEItJJBCLSSQQi0kk\n0NiubK/bQat9Cq0VPN+D73NXluhL+6CYcRzh4S8P8WRvD6W5EqIoQmOFu7Iu\n5X2XNe/5Od2VDfBNtYL1jbsItA8oxV3ZDPLzvMua93xp85UT7cpqrfGb73cu\nfgeguCubRX6ed1+5K+s+f7pdWcVdWaJZ4akskUD+pJ84zdtGa+3ljyx8qfys\nMP+/Z2eZ//7Ps77+ie4xP8X3fVQqlYm+kFIavu+hVCpl8gArpeD7PorF4mf/\nYFLzL07tsr7+aU7Rp8m+uMd8e/0Wrp/f7z8+FhbIMj+Dx15rBa09JEkyUb7W\nGlqPv3FV1uHVxdEQT/f2EI9GMKmB0hr3du8hCCZ+Yf6ss3Ybj399Cr8QQCnA\n83zs7uzC990cf5+0jvHk1z14vvfue7gBdnd24Xlu3vF3z8/w+s0BBsMBkiRF\noVjEzvc70Nrd/XyrdYQXL5q4d++3KBQCZ7kAsP/yBQZRhLPzc1hrsbq6hlv1\nm06yrTV49LeH6IR9+J6CMRZ3vlvH8o2am3yT4peff8ZwlELBwhiD9bsbqF1f\ncvb4vHj+DGfdHkZxDGMMNja3sLR47UpZbhoDwKQpHj96hD/99BdUqzXEgxDf\nVKvY3NxyUsw0SdDc38fe0ydQQQkwCa5dW8Tm1raTYibJCHtP/469Z88wNzeH\naDDA0vUatre34XnF/zk/jiIcHBzizatXOA/7OD8/w43lm9ja2kbRYYHarTaa\nzVfY2NxyXsx+t4Pm63+h3W4hSS0qlaq7YhqLZvMlTrohtElhrMK1xSVnxTTW\n4vjfh3i+/wbl+RIMNGq1ZWfFTEcxHjz4M3qxQoAEVnm4Wb915WI6fcVMkgTd\nXhfdTg9Kaxhjcbux4uwVIex1cXR8DK19eJ4HY4HbjW8/+g3aqzg7PUGrfYog\nCOB5HiwUGivfOjugTpIE/TDE+XkHUBpKazRWbrkJf6cfhjhqtXH7dgOednu2\nNxz00e8P0OmGACyu12qolBecZFtj8LL5EkFQgDFvX0FrN5ZRXphzlv/69T8B\npS/zl5dvYn6+5Ozx6fW66HZ7iOMExhjUb9UxV7raP+pOi0lEbvDbJUQCsZhE\nArGYRAL9B+2/JPG0+by+AAAAAElFTkSuQmCC\n","encoding":"base64"}},"public":true,"created_at":"2012-10-15T14:56:04Z","updated_at":"2017-08-23T13:57:53Z","description":"Pan+Zoom","comments":0,"user":null,"comments_enabled":true,"comments_url":"https://api.github.com/gists/3892919/comments","owner":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"forks":[{"url":"https://api.github.com/gists/3892928","user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"Mike Bostock","company":"@observablehq ","blog":"https://observablehq.com/@mbostock","location":"San Francisco, CA","email":"mike@ocks.org","hireable":null,"bio":"Building a better computational medium. Co-founder @observablehq. Creator @d3. Former @nytgraphics. Pronounced BOSS-tock.","twitter_username":"mbostock","public_repos":88,"public_gists":1043,"followers":23362,"following":0,"created_at":"2010-03-25T22:02:56Z","updated_at":"2026-02-24T17:31:44Z"},"id":"3892928","created_at":"2012-10-15T14:56:59Z","updated_at":"2023-11-27T11:57:44Z"},{"url":"https://api.github.com/gists/5732011","user":{"login":"mhsmith","id":166954,"node_id":"MDQ6VXNlcjE2Njk1NA==","avatar_url":"https://avatars.githubusercontent.com/u/166954?v=4","gravatar_id":"","url":"https://api.github.com/users/mhsmith","html_url":"https://github.com/mhsmith","followers_url":"https://api.github.com/users/mhsmith/followers","following_url":"https://api.github.com/users/mhsmith/following{/other_user}","gists_url":"https://api.github.com/users/mhsmith/gists{/gist_id}","starred_url":"https://api.github.com/users/mhsmith/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mhsmith/subscriptions","organizations_url":"https://api.github.com/users/mhsmith/orgs","repos_url":"https://api.github.com/users/mhsmith/repos","events_url":"https://api.github.com/users/mhsmith/events{/privacy}","received_events_url":"https://api.github.com/users/mhsmith/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"Malcolm Smith","company":null,"blog":"https://chaquo.com/","location":null,"email":"smith@chaquo.com","hireable":null,"bio":null,"twitter_username":null,"public_repos":57,"public_gists":2,"followers":162,"following":0,"created_at":"2009-12-13T15:06:10Z","updated_at":"2025-11-30T19:51:26Z"},"id":"5732011","created_at":"2013-06-07T20:03:34Z","updated_at":"2018-02-26T17:33:27Z"},{"url":"https://api.github.com/gists/11280861","user":{"login":"garrilla","id":5795139,"node_id":"MDQ6VXNlcjU3OTUxMzk=","avatar_url":"https://avatars.githubusercontent.com/u/5795139?v=4","gravatar_id":"","url":"https://api.github.com/users/garrilla","html_url":"https://github.com/garrilla","followers_url":"https://api.github.com/users/garrilla/followers","following_url":"https://api.github.com/users/garrilla/following{/other_user}","gists_url":"https://api.github.com/users/garrilla/gists{/gist_id}","starred_url":"https://api.github.com/users/garrilla/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/garrilla/subscriptions","organizations_url":"https://api.github.com/users/garrilla/orgs","repos_url":"https://api.github.com/users/garrilla/repos","events_url":"https://api.github.com/users/garrilla/events{/privacy}","received_events_url":"https://api.github.com/users/garrilla/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"kingarrilla","company":null,"blog":"","location":null,"email":null,"hireable":null,"bio":null,"twitter_username":null,"public_repos":33,"public_gists":8,"followers":2,"following":0,"created_at":"2013-10-28T15:00:08Z","updated_at":"2023-05-17T10:33:16Z"},"id":"11280861","created_at":"2014-04-25T07:35:39Z","updated_at":"2016-02-11T07:47:36Z"},{"url":"https://api.github.com/gists/6296bb833067be275e0f","user":{"login":"jonboiser","id":10248067,"node_id":"MDQ6VXNlcjEwMjQ4MDY3","avatar_url":"https://avatars.githubusercontent.com/u/10248067?v=4","gravatar_id":"","url":"https://api.github.com/users/jonboiser","html_url":"https://github.com/jonboiser","followers_url":"https://api.github.com/users/jonboiser/followers","following_url":"https://api.github.com/users/jonboiser/following{/other_user}","gists_url":"https://api.github.com/users/jonboiser/gists{/gist_id}","starred_url":"https://api.github.com/users/jonboiser/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jonboiser/subscriptions","organizations_url":"https://api.github.com/users/jonboiser/orgs","repos_url":"https://api.github.com/users/jonboiser/repos","events_url":"https://api.github.com/users/jonboiser/events{/privacy}","received_events_url":"https://api.github.com/users/jonboiser/received_events","type":"User","user_view_type":"public","site_admin":false,"name":"Jonathan Boiser (JB)","company":null,"blog":"jonboiser.com","location":"San Diego, CA","email":null,"hireable":null,"bio":null,"twitter_username":null,"public_repos":83,"public_gists":22,"followers":23,"following":4,"created_at":"2014-12-19T22:06:09Z","updated_at":"2026-02-27T22:06:18Z"},"id":"6296bb833067be275e0f","created_at":"2016-01-22T16:44:48Z","updated_at":"2016-01-27T16:25:09Z"},{"url":"https://api.github.com/gists/eafc173031e98956f2c6ec90c838608a","user":{"login":"valorcurse","id":497540,"node_id":"MDQ6VXNlcjQ5NzU0MA==","avatar_url":"https://avatars.githubusercontent.com/u/497540?v=4","gravatar_id":"","url":"https://api.github.com/users/valorcurse","html_url":"https://github.com/valorcurse","followers_url":"https://api.github.com/users/valorcurse/followers","following_url":"https://api.github.com/users/valorcurse/following{/other_user}","gists_url":"https://api.github.com/users/valorcurse/gists{/gist_id}","starred_url":"https://api.github.com/users/valorcurse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/valorcurse/subscriptions","organizations_url":"https://api.github.com/users/valorcurse/orgs","repos_url":"https://api.github.com/users/valorcurse/repos","events_url":"https://api.github.com/users/valorcurse/events{/privacy}","received_events_url":"https://api.github.com/users/valorcurse/received_events","type":"User","user_view_type":"public","site_admin":false,"name":null,"company":null,"blog":"","location":null,"email":null,"hireable":null,"bio":null,"twitter_username":null,"public_repos":15,"public_gists":8,"followers":4,"following":2,"created_at":"2010-11-26T08:12:47Z","updated_at":"2026-01-19T08:17:02Z"},"id":"eafc173031e98956f2c6ec90c838608a","created_at":"2016-08-10T12:32:12Z","updated_at":"2016-08-10T12:32:42Z"}],"history":[{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"1af7a9e223cf9313bad9a301d5ed620a65204f1f","committed_at":"2016-02-09T01:41:20Z","change_status":{"total":1,"additions":1,"deletions":0},"url":"https://api.github.com/gists/3892919/1af7a9e223cf9313bad9a301d5ed620a65204f1f"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"51f955b9749aa3c9ea87d9fcfead3dc04b3a53ca","committed_at":"2015-10-31T01:10:27Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/3892919/51f955b9749aa3c9ea87d9fcfead3dc04b3a53ca"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"fbc158cf833bdaa961fd1580ec376fe9fc9103b3","committed_at":"2015-06-11T19:32:54Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/3892919/fbc158cf833bdaa961fd1580ec376fe9fc9103b3"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"8951b409020feb256444452333e9ff3fd1d0ede7","committed_at":"2014-12-07T16:15:56Z","change_status":{"total":5,"additions":3,"deletions":2},"url":"https://api.github.com/gists/3892919/8951b409020feb256444452333e9ff3fd1d0ede7"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"c2f77279c6b3eac5552d23af5c383a07e6500cf5","committed_at":"2013-07-07T23:58:39Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/3892919/c2f77279c6b3eac5552d23af5c383a07e6500cf5"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"e81fd7cf25817da3efa2234d1c9624a495e09ba9","committed_at":"2013-07-07T23:58:01Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/3892919/e81fd7cf25817da3efa2234d1c9624a495e09ba9"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"fe3770e16e0884247c645d33044f0337cc23d11b","committed_at":"2013-07-07T23:56:51Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/3892919/fe3770e16e0884247c645d33044f0337cc23d11b"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"c9e260e092f8077d9217db31d3f4962ab23d36f6","committed_at":"2013-07-07T23:56:43Z","change_status":{"total":1,"additions":1,"deletions":0},"url":"https://api.github.com/gists/3892919/c9e260e092f8077d9217db31d3f4962ab23d36f6"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"941e5bb3ff11c65c8b9ff9dbb4f1ec3697bab128","committed_at":"2012-10-25T17:26:41Z","change_status":{"total":0,"additions":0,"deletions":0},"url":"https://api.github.com/gists/3892919/941e5bb3ff11c65c8b9ff9dbb4f1ec3697bab128"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"7f1d6680230683b9cc4f90becfdf8579087823a7","committed_at":"2012-10-15T14:56:42Z","change_status":{"total":2,"additions":1,"deletions":1},"url":"https://api.github.com/gists/3892919/7f1d6680230683b9cc4f90becfdf8579087823a7"},{"user":{"login":"mbostock","id":230541,"node_id":"MDQ6VXNlcjIzMDU0MQ==","avatar_url":"https://avatars.githubusercontent.com/u/230541?v=4","gravatar_id":"","url":"https://api.github.com/users/mbostock","html_url":"https://github.com/mbostock","followers_url":"https://api.github.com/users/mbostock/followers","following_url":"https://api.github.com/users/mbostock/following{/other_user}","gists_url":"https://api.github.com/users/mbostock/gists{/gist_id}","starred_url":"https://api.github.com/users/mbostock/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbostock/subscriptions","organizations_url":"https://api.github.com/users/mbostock/orgs","repos_url":"https://api.github.com/users/mbostock/repos","events_url":"https://api.github.com/users/mbostock/events{/privacy}","received_events_url":"https://api.github.com/users/mbostock/received_events","type":"User","user_view_type":"public","site_admin":false},"version":"68ed9b91d9e60c26817f265f1f70bbf6edfae58e","committed_at":"2012-10-15T14:56:04Z","change_status":{},"url":"https://api.github.com/gists/3892919/68ed9b91d9e60c26817f265f1f70bbf6edfae58e"}],"truncated":false}