test/dummy/tmp/cache/assets/test/sprockets/e05ff4f8801c918dc89fef1d37880568 in resque-web-0.0.4 vs test/dummy/tmp/cache/assets/test/sprockets/e05ff4f8801c918dc89fef1d37880568 in resque-web-0.0.5
- old
+ new
@@ -1,8 +1,8 @@
{I"
class:ETI"ProcessedAsset; FI"logical_path; TI"resque_web/application.js; FI"
pathname; TI"O/home/tony/src/resque_web/app/assets/javascripts/resque_web/application.js; FI"content_type; TI"application/javascript; TI"
-mtime; Tl+[ωRI"length; Ti¦I"digest; TI"%da75227652fe3b0212702402051c5341; FI"source; TI"¦// This is a manifest file that'll be compiled into application.js, which will include all the files
+mtime; Tl+ΟΕRI"length; TiJI"digest; TI"%ff85b5b91d5d2a6c673bfc1b6e6ae3df; FI"source; TI"J// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
//
@@ -14,116 +14,8 @@
//
-
-$(function() {
- var poll_interval = 2
-
- var relatizer = function(){
- var dt = $(this).text();
- $(this).relativeDate();
- var relatized = $(this).text();
-
- if ($(this).parents("a").length > 0 || $(this).is("a")) {
- $(this).relativeDate()
- if (!$(this).attr('title')) {
- $(this).attr('title', dt)
- }
- } else {
- $(this)
- .text('')
- .append( $('<a href="#" class="toggle_format" title="' + dt + '" />')
- .append('<span class="date_time">' + dt +
- '</span><span class="relatized_time">' +
- relatized + '</span>') )
- }
- };
-
- $('.time').each(relatizer);
-
- $('.time a.toggle_format .date_time').hide()
-
- var format_toggler = function(){
- $('.time a.toggle_format span').toggle()
- $(this).attr('title', $('span:hidden',this).text())
- return false
- };
-
- $('.time a.toggle_format').click(format_toggler);
-
- $('.backtrace').click(function() {
- $(this).next().toggle()
- return false
- })
-
- var poll_start = function(el) {
- var href = el.attr('href')
- el.parent().text('Starting...')
- $("#main").addClass('polling')
-
- setInterval(function() {
- $.ajax({dataType: 'text', type: 'get', url: href, success: function(data) {
- $('#main').html(data)
- $('#main .time').relativeDate()
- }})
- }, poll_interval * 1000)
-
- location.hash = '#poll'
-
- return false
- };
-
- if (location.hash == '#poll') poll_start($('a[rel=poll]'))
-
- $('a[rel=poll]').click(function() { return poll_start($(this)) })
-
- $('ul.failed li').hover(function() {
- $(this).addClass('hover');
- }, function() {
- $(this).removeClass('hover');
- })
-
- $('ul.failed a[rel=retry]').click(function() {
- var href = $(this).attr('href');
- $(this).text('Retrying...');
- var parent = $(this).parent();
- $.ajax({dataType: 'text', type: 'get', url: href, success: function(data) {
- parent.html('Retried <b><span class="time">' + data + '</span></b>');
- relatizer.apply($('.time', parent));
- $('.date_time', parent).hide();
- $('a.toggle_format span', parent).click(format_toggler);
- }});
- return false;
- })
-
- $('#clear-failed-jobs').click(function(){
- return confirm('Are you sure you want to clear ALL failed jobs?');
- })
-
- $('#retry-failed-jobs').click(function(){
- return confirm('Are you sure you want to retry ALL failed jobs?');
- })
-})
;
-; TI"dependency_digest; TI"%f0bd2f54e0be0639fa7d46f0624fc87c; FI"required_paths; T[I"e/home/tony/.rvm/gems/ruby-2.0.0-p195/gems/jquery-rails-3.0.4/vendor/assets/javascripts/jquery.js; FI"i/home/tony/.rvm/gems/ruby-2.0.0-p195/gems/jquery-rails-3.0.4/vendor/assets/javascripts/jquery_ujs.js; FI"/home/tony/.rvm/gems/ruby-2.0.0-p195/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-transition.js; FI"/home/tony/.rvm/gems/ruby-2.0.0-p195/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-alert.js; FI"/home/tony/.rvm/gems/ruby-2.0.0-p195/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-modal.js; FI"/home/tony/.rvm/gems/ruby-2.0.0-p195/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-dropdown.js; FI"/home/tony/.rvm/gems/ruby-2.0.0-p195/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-scrollspy.js; FI"/home/tony/.rvm/gems/ruby-2.0.0-p195/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-tab.js; FI"
/home/tony/.rvm/gems/ruby-2.0.0-p195/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-tooltip.js; FI"
/home/tony/.rvm/gems/ruby-2.0.0-p195/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-popover.js; FI"/home/tony/.rvm/gems/ruby-2.0.0-p195/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-button.js; FI"/home/tony/.rvm/gems/ruby-2.0.0-p195/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-collapse.js; FI"/home/tony/.rvm/gems/ruby-2.0.0-p195/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-carousel.js; FI"/home/tony/.rvm/gems/ruby-2.0.0-p195/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-typeahead.js; FI"/home/tony/.rvm/gems/ruby-2.0.0-p195/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-affix.js; FI"x/home/tony/.rvm/gems/ruby-2.0.0-p195/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap.js; FI"T/home/tony/src/resque_web/app/assets/javascripts/resque_web/bootstrap.js.coffee; FI"X/home/tony/src/resque_web/app/assets/javascripts/resque_web/jquery.relative-date.js; FI"O/home/tony/src/resque_web/app/assets/javascripts/resque_web/application.js; FI"dependency_paths; T[{I" path; TI"@/home/tony/src/resque_web/app/assets/javascripts/resque_web; FI"
-mtime; TI"2013-08-27T12:09:15-07:00; TI"digest; TI"%acaa67791aa1c16b5a14c186d61f7f7e; F{I" path; TI"O/home/tony/src/resque_web/app/assets/javascripts/resque_web/application.js; FI"
-mtime; TI"2013-08-27T12:09:15-07:00; TI"digest; TI"%c0bcc2b5cdbe591e2d0973eb8236b22e; F{I" path; TI"e/home/tony/.rvm/gems/ruby-2.0.0-p195/gems/jquery-rails-3.0.4/vendor/assets/javascripts/jquery.js; FI"
-mtime; TI"2013-07-15T22:29:49-07:00; TI"digest; TI"%607814ce8a7a12a3d81717e395573e32; F{I" path; TI"i/home/tony/.rvm/gems/ruby-2.0.0-p195/gems/jquery-rails-3.0.4/vendor/assets/javascripts/jquery_ujs.js; FI"
-mtime; TI"2013-07-15T22:29:49-07:00; TI"digest; TI"%34e8ce5cb012457317e17481269daa8f; F{I" path; TI"x/home/tony/.rvm/gems/ruby-2.0.0-p195/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap.js; FI"
-mtime; TI"2013-08-09T12:20:54-07:00; TI"digest; TI"%6cfb7932b0654a6ea8710d7b94101f1e; F{I" path; TI"/home/tony/.rvm/gems/ruby-2.0.0-p195/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-transition.js; FI"
-mtime; TI"2013-08-09T12:20:54-07:00; TI"digest; TI"%164421d5b872e991de5de45b7beab271; F{I" path; TI"/home/tony/.rvm/gems/ruby-2.0.0-p195/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-alert.js; FI"
-mtime; TI"2013-08-09T12:20:54-07:00; TI"digest; TI"%8382a9e4dbd1aec12b94f767a299b799; F{I" path; TI"/home/tony/.rvm/gems/ruby-2.0.0-p195/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-modal.js; FI"
-mtime; TI"2013-08-09T12:20:54-07:00; TI"digest; TI"%1fb142c464dcd8a711ed80b621aedd2c; F{I" path; TI"/home/tony/.rvm/gems/ruby-2.0.0-p195/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-dropdown.js; FI"
-mtime; TI"2013-08-09T12:20:54-07:00; TI"digest; TI"%943d02e7f9578640c9e62eac80c4a7a9; F{I" path; TI"/home/tony/.rvm/gems/ruby-2.0.0-p195/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-scrollspy.js; FI"
-mtime; TI"2013-08-09T12:20:54-07:00; TI"digest; TI"%8a95901ad8c019a8a9f09d88516f821e; F{I" path; TI"/home/tony/.rvm/gems/ruby-2.0.0-p195/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-tab.js; FI"
-mtime; TI"2013-08-09T12:20:54-07:00; TI"digest; TI"%070cc35dbb3ca9d89051afbef6f125f6; F{I" path; TI"
/home/tony/.rvm/gems/ruby-2.0.0-p195/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-tooltip.js; FI"
-mtime; TI"2013-08-09T12:20:54-07:00; TI"digest; TI"%f2ffee141d961d81db963919620e51a3; F{I" path; TI"
/home/tony/.rvm/gems/ruby-2.0.0-p195/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-popover.js; FI"
-mtime; TI"2013-08-09T12:20:54-07:00; TI"digest; TI"%d5b93e660d51e468a1c26c508e10575f; F{I" path; TI"/home/tony/.rvm/gems/ruby-2.0.0-p195/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-button.js; FI"
-mtime; TI"2013-08-09T12:20:54-07:00; TI"digest; TI"%6600fb1f7e130dff9b84ac6de213bfea; F{I" path; TI"/home/tony/.rvm/gems/ruby-2.0.0-p195/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-collapse.js; FI"
-mtime; TI"2013-08-09T12:20:54-07:00; TI"digest; TI"%c58eb1b1efc26edb39a3cafc36fca037; F{I" path; TI"/home/tony/.rvm/gems/ruby-2.0.0-p195/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-carousel.js; FI"
-mtime; TI"2013-08-09T12:20:54-07:00; TI"digest; TI"%06b2e4b22a35d45e85b92bb66b154fd1; F{I" path; TI"/home/tony/.rvm/gems/ruby-2.0.0-p195/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-typeahead.js; FI"
-mtime; TI"2013-08-09T12:20:54-07:00; TI"digest; TI"%7f3312616e68e8471b4b2b87fc836554; F{I" path; TI"/home/tony/.rvm/gems/ruby-2.0.0-p195/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-affix.js; FI"
-mtime; TI"2013-08-09T12:20:54-07:00; TI"digest; TI"%25eb34bafd5bcc76c2f6f31a4126198b; F{I" path; TI"T/home/tony/src/resque_web/app/assets/javascripts/resque_web/bootstrap.js.coffee; FI"
-mtime; TI"2013-08-06T18:22:29-07:00; TI"digest; TI"%bc119e0eaaa639391e2bd6677e288345; F{I" path; TI"X/home/tony/src/resque_web/app/assets/javascripts/resque_web/jquery.relative-date.js; FI"
-mtime; TI"2013-08-06T18:22:29-07:00; TI"digest; TI"%3d5742553099f81b08d547c73cd4b5f1; FI"
_version; TI"%ac1cd7cf9811f9938e2b8937c60a24e6; F
+; TI"dependency_digest; TI"%fec5c3b32da35c86cd87c6506fcd5059; FI"required_paths; T[I"`/home/tony/.rvm/gems/ruby-2.1.0/gems/jquery-rails-3.0.4/vendor/assets/javascripts/jquery.js; FI"d/home/tony/.rvm/gems/ruby-2.1.0/gems/jquery-rails-3.0.4/vendor/assets/javascripts/jquery_ujs.js; FI"/home/tony/.rvm/gems/ruby-2.1.0/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-transition.js; FI"~/home/tony/.rvm/gems/ruby-2.1.0/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-alert.js; FI"~/home/tony/.rvm/gems/ruby-2.1.0/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-modal.js; FI"/home/tony/.rvm/gems/ruby-2.1.0/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-dropdown.js; FI"/home/tony/.rvm/gems/ruby-2.1.0/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-scrollspy.js; FI"|/home/tony/.rvm/gems/ruby-2.1.0/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-tab.js; FI"/home/tony/.rvm/gems/ruby-2.1.0/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-tooltip.js; FI"/home/tony/.rvm/gems/ruby-2.1.0/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-popover.js; FI"/home/tony/.rvm/gems/ruby-2.1.0/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-button.js; FI"/home/tony/.rvm/gems/ruby-2.1.0/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-collapse.js; FI"/home/tony/.rvm/gems/ruby-2.1.0/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-carousel.js; FI"/home/tony/.rvm/gems/ruby-2.1.0/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-typeahead.js; FI"~/home/tony/.rvm/gems/ruby-2.1.0/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-affix.js; FI"s/home/tony/.rvm/gems/ruby-2.1.0/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap.js; FI"T/home/tony/src/resque_web/app/assets/javascripts/resque_web/bootstrap.js.coffee; FI"R/home/tony/src/resque_web/app/assets/javascripts/resque_web/failure.js.coffee; FI"X/home/tony/src/resque_web/app/assets/javascripts/resque_web/jquery.relative-date.js; FI"R/home/tony/src/resque_web/app/assets/javascripts/resque_web/polling.js.coffee; FI"X/home/tony/src/resque_web/app/assets/javascripts/resque_web/relative_date.js.coffee; FI"O/home/tony/src/resque_web/app/assets/javascripts/resque_web/application.js; FI"dependency_paths; T[{I" path; TI"@/home/tony/src/resque_web/app/assets/javascripts/resque_web; FI"
+mtime; TI"2014-01-03T05:44:06+09:00; TI"digest; TI"%d4249f29f0d197ad2fbf86309a655094; F{@2I"O/home/tony/src/resque_web/app/assets/javascripts/resque_web/application.js; F@4I"2014-01-03T05:44:06+09:00; T@6I"%03a2e61c986ca91306efd7a0fa1b6bea; F{@2I"`/home/tony/.rvm/gems/ruby-2.1.0/gems/jquery-rails-3.0.4/vendor/assets/javascripts/jquery.js; F@4I"2014-01-06T07:24:04+09:00; T@6I"%4e89300dd3ed3f22c3332b7f128ce721; F{@2I"d/home/tony/.rvm/gems/ruby-2.1.0/gems/jquery-rails-3.0.4/vendor/assets/javascripts/jquery_ujs.js; F@4I"2014-01-06T07:24:04+09:00; T@6I"%e461ec75de16350a2101b5135bc4a273; F{@2I"s/home/tony/.rvm/gems/ruby-2.1.0/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap.js; F@4I"2014-01-06T07:24:55+09:00; T@6I"%313850d4d937f6a9aff7bf15af65b942; F{@2I"/home/tony/.rvm/gems/ruby-2.1.0/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-transition.js; F@4I"2014-01-06T07:24:55+09:00; T@6I"%4f4b0ac60afc87ae52d8b7f81c0d90fd; F{@2I"~/home/tony/.rvm/gems/ruby-2.1.0/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-alert.js; F@4I"2014-01-06T07:24:55+09:00; T@6I"%8b77ece8562c25ef2b9dc4904823aaee; F{@2I"~/home/tony/.rvm/gems/ruby-2.1.0/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-modal.js; F@4I"2014-01-06T07:24:55+09:00; T@6I"%dcfa791f926eeadce2b8a3a1b9b852e6; F{@2I"/home/tony/.rvm/gems/ruby-2.1.0/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-dropdown.js; F@4I"2014-01-06T07:24:55+09:00; T@6I"%3b8d066b215af9b4622950bcab88466f; F{@2I"/home/tony/.rvm/gems/ruby-2.1.0/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-scrollspy.js; F@4I"2014-01-06T07:24:55+09:00; T@6I"%6c90fd5e1cc69b1f62292f1b5ecd22f6; F{@2I"|/home/tony/.rvm/gems/ruby-2.1.0/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-tab.js; F@4I"2014-01-06T07:24:55+09:00; T@6I"%0afddf3afdbe6fd07bbbb72367e0d211; F{@2I"/home/tony/.rvm/gems/ruby-2.1.0/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-tooltip.js; F@4I"2014-01-06T07:24:55+09:00; T@6I"%53052cb46c2ad8b213f10ef4ed1fa73a; F{@2I"/home/tony/.rvm/gems/ruby-2.1.0/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-popover.js; F@4I"2014-01-06T07:24:55+09:00; T@6I"%b1a69952c63e30108976378120b357b6; F{@2I"/home/tony/.rvm/gems/ruby-2.1.0/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-button.js; F@4I"2014-01-06T07:24:55+09:00; T@6I"%fc9b960110b8a27a9fb4dba765a6b188; F{@2I"/home/tony/.rvm/gems/ruby-2.1.0/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-collapse.js; F@4I"2014-01-06T07:24:55+09:00; T@6I"%68e3232e1fc9371ee211a9ec9f7de48b; F{@2I"/home/tony/.rvm/gems/ruby-2.1.0/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-carousel.js; F@4I"2014-01-06T07:24:55+09:00; T@6I"%570ea7788eaf47475fbaa825ea4814db; F{@2I"/home/tony/.rvm/gems/ruby-2.1.0/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-typeahead.js; F@4I"2014-01-06T07:24:55+09:00; T@6I"%298ebc9de690095b386f3327aeba0f80; F{@2I"~/home/tony/.rvm/gems/ruby-2.1.0/gems/twitter-bootstrap-rails-2.2.8/app/assets/javascripts/twitter/bootstrap/bootstrap-affix.js; F@4I"2014-01-06T07:24:55+09:00; T@6I"%bee72f2847053395e88d369d9084993a; F{@2I"T/home/tony/src/resque_web/app/assets/javascripts/resque_web/bootstrap.js.coffee; F@4I"2013-08-28T04:09:15+09:00; T@6I"%a7840f4f9b6b68f4a4175a19aee3e0de; F{@2I"R/home/tony/src/resque_web/app/assets/javascripts/resque_web/failure.js.coffee; F@4I"2014-01-03T05:44:06+09:00; T@6I"%7a994f393f273e996bc3b48c9cd305c1; F{@2I"X/home/tony/src/resque_web/app/assets/javascripts/resque_web/jquery.relative-date.js; F@4I"2013-08-28T04:09:15+09:00; T@6I"%74d8b6d9f8236e75cb021a2c2d7ad3e6; F{@2I"R/home/tony/src/resque_web/app/assets/javascripts/resque_web/polling.js.coffee; F@4I"2014-01-03T05:44:06+09:00; T@6I"%c3d5c22c10ddb03c383eb5c2ccbfe9dc; F{@2I"X/home/tony/src/resque_web/app/assets/javascripts/resque_web/relative_date.js.coffee; F@4I"2014-01-03T05:44:06+09:00; T@6I"%4c31a9157d74b9e935704a7dcd26f27f; FI"
_version; TI"%1005ed9f20e25fb0a0599a7017dd0e6b; F
\ No newline at end of file